ansible-playbook模板化(jinja2)

1. ansible-playbook模板化(jinja2)條件與循環
  1.1) jinja使用結構圖web

  

2. 編寫jinja2的循環
  2.1) 編寫jinja2模板shell

 1 [root@test-1 jinja2]# vim /ansible/jinja2/test.yaml 
 2 [root@test-1 jinja2]# cat /ansible/jinja2/test.yaml 
 3 ---
 4 - hosts: web1
 5   vars:
 6     hello: ansible
 7 
 8 
 9   tasks:
10     - template: src=f.j2 dest=/tmp/f.j2

  2.2) 編寫f.j2的jinja2的條件循環文件vim

1 [root@test-1 jinja2]# vim /ansible/jinja2/f.j2 
2 [root@test-1 jinja2]# cat /ansible/jinja2/f.j2 
3 {% set list=['one','two','three'] %}
4 {% for i in list %}
5   {{i}}
6 {% endfor %}

  2.3) 語法檢測spa

1 [root@test-1 jinja2]# ansible-playbook --syntax-check test.yaml 
2 
3 playbook: test.yaml

  2.4) 執行jinja2的執行文件test.yamlcode

 1 [root@test-1 jinja2]# ansible-playbook test.yaml 
 2 
 3 PLAY [web1] *************************************************************************************************************************************************************
 4 
 5 TASK [Gathering Facts] **************************************************************************************************************************************************
 6 ok: [192.168.200.133]
 7 ok: [192.168.200.132]
 8 
 9 TASK [template] *********************************************************************************************************************************************************
10 changed: [192.168.200.133]
11 changed: [192.168.200.132]
12 
13 PLAY RECAP **************************************************************************************************************************************************************
14 192.168.200.132            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
15 192.168.200.133            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

  2.5) 驗證是否建立成功blog

 1 [root@test-1 jinja2]# ansible web1 -m shell -a "ls /tmp/f.j2"
 2 192.168.200.133 | CHANGED | rc=0 >>
 3 /tmp/f.j2
 4 
 5 192.168.200.132 | CHANGED | rc=0 >>
 6 /tmp/f.j2
 7 
 8 [root@test-1 jinja2]# ansible web1 -m shell -a "cat /tmp/f.j2"
 9 192.168.200.133 | CHANGED | rc=0 >>
10   one
11   two
12   three
13 
14 192.168.200.132 | CHANGED | rc=0 >>
15   one
16   two
17   three

3. 編寫jinja2的循環加if判斷
  3.1) 編寫配置文件three

 1 [root@test-1 jinja2]# vim /ansible/jinja2/test.yaml 
 2 [root@test-1 jinja2]# cat /ansible/jinja2/test.yaml 
 3 ---
 4 - hosts: web1
 5   vars:
 6     hello: ansible
 7 
 8 
 9   tasks:
10     - template: src=f.j2 dest=/tmp/f.j2

3.2) 編寫f.j2的jinja2的條件循環加if判斷文件ip

1 [root@test-1 jinja2]# vim  /ansible/jinja2/f.j2 
2 [root@test-1 jinja2]# cat  /ansible/jinja2/f.j2 
3 {% set list=['one','two','three'] %}
4 {% for i in list %}
5    {% if  i == 'two' %}
6       -> two
7    {% endif  %}
8 {% endfor %}

3.3) 語法檢測模板

1 [root@test-1 jinja2]# ansible-playbook --syntax-check test.yaml 
2 
3 playbook: test.yaml

3.4) 執行配置文件class

 1 [root@test-1 jinja2]# ansible-playbook test.yaml 
 2 
 3 PLAY [web1] *************************************************************************************************************************************************************
 4 
 5 TASK [Gathering Facts] **************************************************************************************************************************************************
 6 ok: [192.168.200.133]
 7 ok: [192.168.200.132]
 8 
 9 TASK [template] *********************************************************************************************************************************************************
10 changed: [192.168.200.132]
11 changed: [192.168.200.133]
12 
13 PLAY RECAP **************************************************************************************************************************************************************
14 192.168.200.132            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
15 192.168.200.133            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

3.5) 驗證是否建立成功

1 [root@test-1 jinja2]# ansible web1 -m shell  -a "cat /tmp/f.j2"
2 192.168.200.132 | CHANGED | rc=0 >>
3             -> two
4       
5 192.168.200.133 | CHANGED | rc=0 >>
6             -> two

4. 編寫jinja2的循環加多分支if判斷
  4.1) 編寫配置文件

 1 [root@test-1 jinja2]# vim /ansible/jinja2/test.yaml 
 2 [root@test-1 jinja2]# cat /ansible/jinja2/test.yaml 
 3 ---
 4 - hosts: web1
 5   vars:
 6     hello: ansible
 7 
 8 
 9   tasks:
10     - template: src=f.j2 dest=/tmp/f.j2

  4.2) 編寫f.j2的jinja2的條件循環加,多分支if判斷文件

 1 [root@test-1 jinja2]# vim /ansible/jinja2/f.j2 
 2 [root@test-1 jinja2]# cat /ansible/jinja2/f.j2 
 3 {% set list=['one','two','three'] %}
 4 {% for i in list %}
 5    {% if  i == 'two' %}
 6       -> 2
 7    {% elif i == 'three' %}
 8       -> 3
 9    {% endif  %}
10 {% endfor %}

  4.3) 語法檢測

1 [root@test-1 jinja2]# ansible-playbook --syntax-check test.yaml 
2 
3 playbook: test.yaml

  4.4) 執行配置文件

 1 [root@test-1 jinja2]# ansible-playbook test.yaml 
 2 
 3 PLAY [web1] *************************************************************************************************************************************************************
 4 
 5 TASK [Gathering Facts] **************************************************************************************************************************************************
 6 ok: [192.168.200.133]
 7 ok: [192.168.200.132]
 8 
 9 TASK [template] *********************************************************************************************************************************************************
10 changed: [192.168.200.132]
11 changed: [192.168.200.133]
12 
13 PLAY RECAP **************************************************************************************************************************************************************
14 192.168.200.132            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
15 192.168.200.133            : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  

4.5) 驗證建立是否成功

1 [root@test-1 jinja2]# ansible web1 -m shell  -a "cat /tmp/f.j2"
2 192.168.200.133 | CHANGED | rc=0 >>
3             -> 2
4             -> 3
5    
6 192.168.200.132 | CHANGED | rc=0 >>
7             -> 2
8             -> 3
相關文章
相關標籤/搜索