share facebook facebook2 twitter menu hatena pocket slack

2014.06.19 THU

INVENTORYを作る

sebastian

WRITTEN BYsebastian

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以外で指定して使用する際に使うためのもの

元記事は、こちら

sebastian

sebastian