Ansible

ansibleでshellやcommandを使う時の注意点

More than 5 years have passed since last update.


  1. shell

    shellはリモートノードのシェル(/bin/sh)を通して実行される。
    次の文字を使用できる。


    $HOME, "<", ">", "|", "&"


  2. command

    commandは次の文字を使用できない。


    $HOME, "<", ">", "|", "&"


  3. 環境変数の読み込み

    ansibleではtask毎にシェルを起動して実行している(みたい。)

    つまり前のtaskで次のように環境変数を読み込み、次のtaskで利用する…ということができない。

export   KEY=VALUE

or
source ~/perl5/perlbrew/etc/bashrc (perlbrewの場合)

perlbrewのインストール手順で、source ~/perl5/perlbrew/etc/bashrcなどがあるが、上記のため、そのままでは使用できない。

そこで、bashの読み込み順に着目して、使用する。

~/.bashrc  シェル起動毎に読み込む  

~/.bash_profile システム起動時に読み込む

つまり、次のtaskでも使用したい場合は、~/.bashrcに環境変数の読み込みなどを定義しておく。

ただし、本来はシステム起動時に読みこめばいいので、最後のTaskなどで削除して~/bash_profileで指定したほうがいいかも。