ansible 設定ファイルの作成
毎回 -i オプションをつけるというのは
間違いやすいので
設定ファイルを作成し、指定せず実行できるようにします
vim ansible.cfg
でファイルを作ります
[defaults] hostfile = ./hosts
として保存します
前回は
ansible all -i hosts -m command -a "uptime"
としましたが、
今回は -i hosts を省略して実行してみます
ansible all -m command -a "uptime"
これで実行しても同じ結果になります
これで簡単にできるようになったので
次は playbook と呼ばれる処理を記述したものを作成
これを実行するようにします
今回はコマンドを実行しましたが
Ansible の場合
コマンドではなく
モジュールとよばれる動作をまとめたものを使えます
そして、このモジュールは
task
というモジュールに引数をまとめた設定として作成できます
playbook とは
このtask つまり行う処理をまとめたものです
コマンドをまとめていろいろ行う
シェルスクリプトのようなものです
この playbook は YAML 形式で書きます
YAML の書き方の詳細については
プログラマーのための YAML 入門 (初級編)
が参考になります
書き方メモとしては
行頭に – を書くとシーケンスという配列になり
空白2つぐらいでインデントによるデータ階層構造になります
インデントにtab は使えないので注意
あとはマッピングといって半角スペースでインデントすると
キーと値のペアのハッシュになります
コメントアウトは # になりますので
このあたりはシェルスクリプトに似てます
playbook の項目としては
hosts: 対象ホスト名
sudo: 管理者権限について yes no を指定
必要なら yes
remote_user
実行ユーザ名
vars:
変数の指定
tasks: モジュールの指定
ここへ -name: をつけることで task の名前を指定できます
どちらかというと git のコメントのようなものです
モジュールについては
公式ドキュメントを見ます
http://docs.ansible.com/ansible/modules_by_category.html
この中からやりたいことに対応したモジュールを使います
のように git をインストールしたいのなら
を使用します
今回の場合
apt: pkg=
は
パッケージのビルド依存関係をインストール
となります
とりあえず git のインストールをしてみます
vim git.yml
として
内容を
--- - hosts: develop user: snowpool tasks: - name: "apt-get install git" apt: pkg=git sudo: yes
として保存します
playbook を実行するには
ansible-playbook コマンドを使います
ansible-playbook git.yml -K
とすると
作成した git.yml を実行します
このとき -K をオプションでつけると
sudoのパスワードを要求するようになります
このKは大文字です
これを忘れると、そのまま止まったままになってしまうので
注意が必要です
なお、ansible.cfg で hosts ファイルを指定しているので
インベントリファイルの指定は必要ありません