Ansibleプレイブック(タスク、役割、テンプレート、カラーチェンジャー、)

 

 

 

プレイブックのプロフィール:

 

[ルート@のansible〜]#のvimのは/ etc / ansible /ホスト

[TEST01]
192.168200.114 [TEST02] 192.168200.115
[ルート@ ansible〜]#のvimのは/ etc / ansible / test.yaml


 --- 
- ホスト:TEST01の
  REMOTE_USER:ルート
  タスク:
     - 名前:adduserのの
      ユーザー:名 = user2の状態= Pの再送
      田下:
         - testaaa
     - 名前:addgroupとの
      グループ:名 =根系= yesの
      タグ:
         - testbbb
 - ホスト:TEST02の
  REMOTE_USER:ルート
  タスク:
     - 名前:XXX 
      コピー:SRC = / etc / passwdファイルDEST = / ホーム
      タグ:
         - testccc

使用法:

      タスク・ハンドブック・ファイルが必要なコマンドは、次のようansible-ハンドブックコマンドの使用は、nasible-ハンドブックによって呼び出されて実行され、定義されています。

用法:ansible-脚本[オプション] /PATH/TO/PLAYBOOK.yaml

テストケース:

1:構文をチェックしてください:

[ルート@ ansible〜]#ansible-脚本--syntaxチェックの/ etc / ansible / test.yml 脚本:

 /etc/ansible/test.yml

2:予備試験:

[root@ansible ~]# ansible-playbook -C /etc/ansible/test.yml 

PLAY [test01] ***************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************
ok: [192.168.200.114]

TASK [adduser] **************************************************************************************************************************
changed: [192.168.200.114]

TASK [addgroup] *************************************************************************************************************************
ok: [192.168.200.114]

PLAY [test02] ***************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************
ok: [192.168.200.115]

TASK [xxx] ******************************************************************************************************************************
changed: [192.168.200.115]

PLAY RECAP ******************************************************************************************************************************
192.168.200.114            : ok=3    changed=1    unreachable=0    failed=0   
192.168.200.115            : ok=2    changed=1    unreachable=0    failed=0   

3:列出主机:

[root@ansible ~]# ansible-playbook --list-hosts /etc/ansible/test.yml 

playbook: /etc/ansible/test.yml

  play #1 (test01): test01    TAGS: []
    pattern: [u'test01']
    hosts (1):
      192.168.200.114

  play #2 (test02): test02    TAGS: []
    pattern: [u'test02']
    hosts (1):
      192.168.200.115

4:列出任务:

[root@ansible ~]# ansible-playbook --list-tasks /etc/ansible/test.yml 

playbook: /etc/ansible/test.yml

  play #1 (test01): test01    TAGS: []
    tasks:
      adduser    TAGS: [testaaa]
      addgroup    TAGS: [testbbb]

  play #2 (test02): test02    TAGS: []
    tasks:
      xxx    TAGS: [testccc]

5:列出标签:

[root@ansible ~]# ansible-playbook --list-tags /etc/ansible/test.yml 

playbook: /etc/ansible/test.yml

  play #1 (test01): test01    TAGS: []
      TASK TAGS: [testaaa, testbbb]

  play #2 (test02): test02    TAGS: []
      TASK TAGS: [testccc]

6:执行任务:

[root@ansible ~]# ansible-playbook /etc/ansible/test.yml 

PLAY [test01] ***************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************
ok: [192.168.200.114]

TASK [adduser] **************************************************************************************************************************
ok: [192.168.200.114]

TASK [addgroup] *************************************************************************************************************************
ok: [192.168.200.114]

PLAY [test02] ***************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************
ok: [192.168.200.115]

TASK [xxx] ******************************************************************************************************************************
ok: [192.168.200.115]

PLAY RECAP ******************************************************************************************************************************
192.168.200.114            : ok=3    changed=0    unreachable=0    failed=0   
192.168.200.115            : ok=2    changed=0    unreachable=0    failed=0   

7:测试查看:

[root@ansible ~]# ansible test01 -m shell -a "tail -l /etc/passwd"
192.168.200.114 | SUCCESS | rc=0 >>
user2:x:1001:1001::/home/user2:/bin/bash

[root@ansible ~]# ansible test02 -m command -a "ls -l /home"
192.168.200.115 | SUCCESS | rc=0 >>
总用量 4
drwx------. 3 crushlinx crushlinx 78 10月 28 09:53 crushlinx
-rw-r--r--. 1 root root 2304 10月 28 16:57 passwd
drwx------. 3 room room 78 4月 11 2018 room

8:执行输出:

我们在用playbook进行ansible模块操作的时候,并没有命令的执行结果输出,默认被隐藏了,可以通过refister模块追加命令输出的结果

[root@ansible ~]# vim /etc/ansible/test.yml

---
- hosts: test01
  remote_user: root
  tasks:
    - name: adduser
      user: name=user2 state=present
      register: print_result
      tags:
        - testaaa
    - debug: var=print_result
    - name: addgroup
      group: name=root system=yes
      tags:
        - testbbb

    - debug: var=print_result
- hosts: test02
  remote_user: root
  tasks:
    - name: xxx
      copy: src=/etc/passwd dest=/home
      tags:
        - testccc
...
[root@ansible ~]# ansible-playbook /etc/ansible/test.yml 

PLAY [test01] ***************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************
ok: [192.168.200.114]

TASK [adduser] **************************************************************************************************************************
ok: [192.168.200.114]

TASK [debug] ****************************************************************************************************************************
ok: [192.168.200.114] => {
    "print_result": {
        "append": false, 
        "changed": false, 
        "comment": "", 
        "failed": false, 
        "group": 1001, 
        "home": "/home/user2", 
        "move_home": false, 
        "name": "user2", 
        "shell": "/bin/bash", 
        "state": "present", 
        "uid": 1001
    }
}

TASK [addgroup] *************************************************************************************************************************
ok: [192.168.200.114]

TASK [debug] ****************************************************************************************************************************
ok: [192.168.200.114] => {
    "print_result": {
        "append": false, 
        "changed": false, 
        "comment": "", 
        "failed": false, 
        "group": 1001, 
        "home": "/home/user2", 
        "move_home": false, 
        "name": "user2", 
        "shell": "/bin/bash", 
        "state": "present", 
        "uid": 1001
    }
}

PLAY [test02] ***************************************************************************************************************************

TASK [Gathering Facts] ******************************************************************************************************************
ok: [192.168.200.115]

TASK [xxx] ******************************************************************************************************************************
ok: [192.168.200.115]

PLAY RECAP ******************************************************************************************************************************
192.168.200.114            : ok=5    changed=0    unreachable=0    failed=0   
192.168.200.115            : ok=2    changed=0    unreachable=0    failed=0  

2:触发器:

hanglers触发器的使用示例如下:

 

おすすめ

転載: www.cnblogs.com/CMX_Shmily/p/11754648.html