プレイブックのプロフィール:
[ルート@のansible〜]#のvimのは/ etc / ansible /ホスト
[TEST01] 192.168。200.114 [TEST02] 192.168。200.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触发器的使用示例如下: