23 May 2014

Yosuke OTA

ひっかかりまくり

apt-get upgradeするとkernelパニクったり、locale変更しようとしても全くいじれなかったり…。

AnsibleのModuleについて

  • 言語について

Moduleの作成はサーバ上で実行できる言語ならなんでもいいようです。

ただし、以下の入出力のフォーマットは守る必要があります。

入力: 引数名1=値1 引数名2=値2 ...
出力: 基本的にJSON
      Shell向けに以下の内容も許可されています。
      key=value rc=0 changed=true favcolor=green

** 注意点

出力は 必ず 上記のものである必要があります。

そのためshell等で開発する際には以下のように $CMD の出力は /dev/null に投げましょう。 $CMD > /dev/null 2>&1 if [ $? -eq 0 ]; then echo “changed=True” exit 0 else echo “changed=False” exit 1 fi

  • Module 置き場

AnsibleではModuleを以下の場所から検索します。

ansible.cfg の library で指定されたディレクトリ
環境変数 ANSIBLE_LIBRARY で指定されたディレクトリ
コマンドラインで --module-path で指定されたディレクトリ
実行ディレクトリ直下にある library という名前のディレクトリ

お手軽に試したい場合は、実行ディレクトリ直下に library/ を作成するのが良さそうです。

  • 簡単なpingモジュールを書いてみた


blog comments powered by Disqus