Inventoryの内容
公式サイトのThe Ansible Configuration Fileによるとhostfileは接続先サーバーの一覧を保存するhostsファイルの場所のようです。
hostsファイルの設定方法はIventoryに記載されています。
Iventoryを細かく読んでいくと
単純にホスト名を指定するパターン
www.foo.com
SSHのポート番号を指定
www.foo.com ansible_ssh_port=2222
つなぎ方を指定
localhost ansible_connection=local www.foo.com ansible_connection=ssh ansible_ssh_port=2222
サーバーをグルーピングする
[foobar] www.foo.com www.bar.com
グループに変数を指定する
[foobar:vars] ansible_connection=ssh ansible_ssh_port=2222
更にはグループをグループにしたりすることも出来る。
どうやら、対象をグループで纏めて実行するなんて事も出来るみたいだ
後はSplitting Out Host and Group Specific Dataを見ると
If the host is named ‘foosball’, and in groups ‘raleigh’ and ‘webservers’, variables in YAML files at the following locations will be made available to the host:
とあり、グループ単位、ホスト単位で変数を別に分けたりも可能らしい
hostsに以下のように作っておいて
[foobar] www.foo.com www.bar.com
/etc/ansible/group_vars/foobarに対して変数を指定できるみたいだ
List of Behavioral Inventory Parametersに指定できる変数の一覧があるのでざっと見てみると
ansible_ssh_host
接続先ホストのエイリアス名
ansible_ssh_port
SSHのポート番号。無指定だと22が指定される
ansible_ssh_user
SSHのユーザー名
ansible_ssh_pass
SSHのパスワード
※公式としてはお勧めしておらず入力を促すかSSH keysを使用するように薦めてる
ansible_sudo_pass
sudoコマンドのパスワード
※公式としてはお勧めしておらず入力を促すように薦めてる
ansible_connection
ホストへのコネクションの種別を指定。
local / ssh / paramikoで指定する。
ansible 1.2以前はparamikoがデフォルトで指定されている。
ansible_ssh_private_key_file
SSHのprivate keyファイルを指定します
ansible_shell_type
コマンドshellを指定します
デフォルトはsh
cshとfishも指定できるらしい
ansible_python_interpreter
接続先ホストのpythonのpathを指定
ansible_*_interpreter
これはansible_python_interpreterのように
ansible_perl_interpreterやansible_ruby_interpreterのように書いてpathを指定して
インタプリタをpython以外で指定して使用する際に使うためのもの
元記事は、こちら