博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ansible-playbook模板化(jinja2)
阅读量:4961 次
发布时间:2019-06-12

本文共 6101 字,大约阅读时间需要 20 分钟。

1. ansible-playbook模板化(jinja2)条件与循环

  1.1) jinja使用结构图

  

2. 编写jinja2的循环

  2.1) 编写jinja2模板

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的条件循环文件

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) 语法检测

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

  2.4) 执行jinja2的执行文件test.yaml

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) 验证是否创建成功

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   one11   two12   three13 14 192.168.200.132 | CHANGED | rc=0 >>15   one16   two17   three

3. 编写jinja2的循环加if判断

  3.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

3.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       -> two7    {% endif  %}8 {% endfor %}

3.3) 语法检测

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

3.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

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             -> two4       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             -> 24             -> 35    6 192.168.200.132 | CHANGED | rc=0 >>7             -> 28             -> 3

 

转载于:https://www.cnblogs.com/scajy/p/11561496.html

你可能感兴趣的文章
NGUI 减少drawcall规则
查看>>
三元表达,匿名函数
查看>>
前端笔记-基础笔记
查看>>
【LeetCode & 剑指offer刷题】查找与排序题6:33. Search in Rotated Sorted Array(系列)
查看>>
GNU/Linux超级本ZaReason Ultralap 440体验
查看>>
将github上托管的代码 在我的域名下运行
查看>>
【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
查看>>
【codeforces 767A】Snacktower
查看>>
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>
我对应用软件——美团的看法
查看>>
我最喜欢的 5 个 Gedit 插件
查看>>
OOoLatex:在 OpenOffice.org 中拔出 Latex 公式
查看>>
linu学习第二天:文件系统相关操作
查看>>
执行了的程序,才是你的程序.
查看>>
在AxureRP8中实现广告文字滚动效果
查看>>
jQuery获取CSS样式中的颜色值的问题
查看>>
struts2.x + Tiles2.x读取多个xml 配置文件
查看>>
Sqlite文件在ubunut的查看
查看>>
表单校验之datatype
查看>>