playbookに記述したvarsの変数ですが、
別ファイルから読み込むことができるそうなので
試してみました。
ファイル構成とファイルの内容は以下。
[root@localhost work]# tree --charset=x . |-- addusers.yml `-- conf `-- sample.yml 1 directory, 2 files [root@localhost work]# cat addusers.yml - hosts: all remote_user: root vars_files: - conf/sample.yml tasks: - name: ユーザを追加 user: name={{username}} group={{group}} shell=/bin/bash [root@localhost work]# [root@localhost work]# cat conf/sample.yml username: testuser group: vagrant [root@localhost work]#
ちなみに、はじめ"adduers.yml"で以下のように定義していたら
vars_files: conf/sample.yml
以下のようにERRORになりました。
[root@localhost work]# ansible-playbook addusers.yml ERROR: vars_files must be a list [root@localhost work]# どこがリストになるのかとか良くわからないですね。。。 で、実行した結果は以下。 エラーにならず実行できたようです。 [root@localhost work]# ansible-playbook addusers.yml PLAY [all] ******************************************************************** GATHERING FACTS *************************************************************** ok: [192.168.2.220] TASK: [ユーザを追加] **************************************************** changed: [192.168.2.220] PLAY RECAP ******************************************************************** 192.168.2.220 : ok=2 changed=1 unreachable=0 failed=0 [root@localhost work]# ノード側で確認すると "conf/sample.yml"に書いたtestuserが作成されていました。 >|| [root@localhost ~]# cat /etc/passwd |grep test testuser:x:503:501::/home/testuser:/bin/bash [root@localhost ~]#