我有一个ansible playbook,它将配置文件推送到服务器并重新加载守护进程。
- name: change configuration
become: yes
become_user: root
template:
src: templates/default.j2
dest: /etc/varnish/default.vcl
- name: Change varnish demon
become: yes
become_user: root
shell: |
sed -e '/ExecStart/ s/^#*/#/' -i /lib/systemd/system/varnish.service
sed -i '10iExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -p feature=+esi_ignore_https -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m' /lib/systemd/system/varnish.service
systemctl daemon-reload
notify: Restart varnish
我将此角色称为另一个角色,包括此
- include_role:
name: varnish
vars:
CidrBlock: "{{ my_stack.ansible_facts.cloudformation[stack_name].stack_outputs.CidrBlock }}"
此var输出类似10.1.0.0/16,我将此var传递给模板,所有内容都已部署。但我想将var传递给没有/ 16的模板,这意味着我只想将10.1.0.0传递给模板。我怎么解决这个问题?
答案 0 :(得分:0)
从云形成本身解决这个问题,从云形成中操纵输出并收集输出并传递到ansible模板,因为我无法找到在ansible端进行此操作的方法。
"CidrBlock2":{
"Value":{
"Fn::Join" : [ ".", [ "10", {"Ref": "ClassB"}, "0","0" ] ]
}
}