AKAI TSUKI

System development or Technical something

try ansible:add user with setting file.

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 ~]#