ansible template 基于一个模板生成多个文件,并注入模板变量

模板/tmp/tpl.j2

{{ item.var1 }}
{{ item.var2}}

 

ansible-playbook

- hosts:
    - "127.0.0.1"        
  tasks:
    - name: loop
      shell: "echo {{ item.var1 }}{{ item.var2 }}"
      loop:
        - { var1: "zz", var2: "cc" }
        - { var1: "zz1", var2: "cc" }
        - { var1: "zz2", var2: "cc" }
    - name: template multi files
      template:
        src: "/tmp/tpl.j2"
        dest: "/tmp/{{ item.var1 }}.{{ item.var2 }}"
      loop: 
        - { var1: "zz", var2: "cc" }
        - { var1: "zz1", var2: "cc" }
        - { var1: "zz2", var2: "cc" }

执行效果

root@yeqiang-PC:/tmp# ansible-playbook -vv loop.yml 
ansible-playbook 2.7.7
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 3.7.3 (default, Apr  2 2021, 05:20:44) [GCC 8.3.0]
Using /etc/ansible/ansible.cfg as config file
/etc/ansible/hosts did not meet host_list requirements, check plugin documentation if this is unexpected
/etc/ansible/hosts did not meet script requirements, check plugin documentation if this is unexpected

PLAYBOOK: loop.yml *************************************************************************************************************************************************************************************************************************************************************************
1 plays in loop.yml

PLAY [127.0.0.1] ************************************************************************************************************************************************************************************************************************************************************************

TASK [Gathering Facts] *********************************************************************************************************************************************************************************************************************************************************************
task path: /tmp/loop.yml:1
ok: [127.0.0.1]
META: ran handlers

TASK [loop] ********************************************************************************************************************************************************************************************************************************************************************************
task path: /tmp/loop.yml:4
changed: [127.0.0.1] => (item={'var1': 'zz', 'var2': 'cc'}) => {"changed": true, "cmd": "echo zzcc", "delta": "0:00:00.001115", "end": "2021-06-07 16:47:32.799161", "item": {"var1": "zz", "var2": "cc"}, "rc": 0, "start": "2021-06-07 16:47:32.798046", "stderr": "", "stderr_lines": [], "stdout": "zzcc", "stdout_lines": ["zzcc"]}                                                                                                                                                                                                                                             
changed: [127.0.0.1] => (item={'var1': 'zz1', 'var2': 'cc'}) => {"changed": true, "cmd": "echo zz1cc", "delta": "0:00:00.000982", "end": "2021-06-07 16:47:32.890318", "item": {"var1": "zz1", "var2": "cc"}, "rc": 0, "start": "2021-06-07 16:47:32.889336", "stderr": "", "stderr_lines": [], "stdout": "zz1cc", "stdout_lines": ["zz1cc"]}                                                                                                                                                                                                                                        
changed: [127.0.0.1] => (item={'var1': 'zz2', 'var2': 'cc'}) => {"changed": true, "cmd": "echo zz2cc", "delta": "0:00:00.000997", "end": "2021-06-07 16:47:32.979034", "item": {"var1": "zz2", "var2": "cc"}, "rc": 0, "start": "2021-06-07 16:47:32.978037", "stderr": "", "stderr_lines": [], "stdout": "zz2cc", "stdout_lines": ["zz2cc"]}                                                                                                                                                                                                                                        

TASK [template multi files] ****************************************************************************************************************************************************************************************************************************************************************
task path: /tmp/loop.yml:10
changed: [127.0.0.1] => (item={'var1': 'zz', 'var2': 'cc'}) => {"changed": true, "checksum": "634b523cbe46cc68046cdf8128e3f90b8c88e900", "dest": "/tmp/zz.cc", "gid": 0, "group": "root", "item": {"var1": "zz", "var2": "cc"}, "md5sum": "f0b91adfa31e3cbd9a3b45bbfea6a21a", "mode": "0644", "owner": "root", "size": 6, "src": "/root/.ansible/tmp/ansible-tmp-1623055653.0152853-157260989696332/source", "state": "file", "uid": 0}                                                                                                                                              
changed: [127.0.0.1] => (item={'var1': 'zz1', 'var2': 'cc'}) => {"changed": true, "checksum": "3b095f6ca5fcb7341254ebed95c0c9c4c334177b", "dest": "/tmp/zz1.cc", "gid": 0, "group": "root", "item": {"var1": "zz1", "var2": "cc"}, "md5sum": "659d492237d99194471c9e5e20c15117", "mode": "0644", "owner": "root", "size": 7, "src": "/root/.ansible/tmp/ansible-tmp-1623055653.2693186-19476235127423/source", "state": "file", "uid": 0}                                                                                                                                            
changed: [127.0.0.1] => (item={'var1': 'zz2', 'var2': 'cc'}) => {"changed": true, "checksum": "b896d3281b8ba20d6fe5b5d210bb4adb7d3169bd", "dest": "/tmp/zz2.cc", "gid": 0, "group": "root", "item": {"var1": "zz2", "var2": "cc"}, "md5sum": "ee7137fc169b861aeac65672170ebd59", "mode": "0644", "owner": "root", "size": 7, "src": "/root/.ansible/tmp/ansible-tmp-1623055653.437552-197242916962305/source", "state": "file", "uid": 0}                                                                                                                                            
META: ran handlers
META: ran handlers

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

root@yeqiang-PC:/tmp# cat /tmp/zz
zz1.cc  zz2.cc  zz.cc   
root@yeqiang-PC:/tmp# cat /tmp/zz.cc 
zz
cc
root@yeqiang-PC:/tmp# cat /tmp/zz1.cc 
zz1
cc

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值