【发布时间】:2020-11-18 12:02:31
【问题描述】:
我正在尝试获取一个剧本来将一组不同的文件复制到服务器,这取决于它在 ansible 清单中所属的组上设置的标志。
代码如下
- name: check if they exist already
stat:
path: /home/me/set1files
register: st
- name: copy pre-prod if they don't
copy:
src: /home/me/set1files
dest: /home/me
owner: me
group: me
mode: "0644"
when: (st.stat.exists==false) and (is_emms_pp==true)
- name: check if prod files exist
stat:
path: /home/me/set2files
register: stprod
- name: copy prod files
copy:
src: /home/me/set2files
dest: /home/me
owner: me
group: me
mode: "0644"
when: (stprod.stat.exists==false) and (is_emms_pp==false)
在库存文件中
[PPEMMS]
emmspp1
emmspp2
emmspp3
[PPEMMS:vars]
is_emms_pp = true
[PRODEMMS]
emms1
emms2
emms3
[PRODEMMS:vars]
is_emms_pp = false
[EMMS:children]
PPEMMS
PRODEMMS
当我在新的 PP 机器上运行脚本时,一切似乎都可以正常工作,但是当我在新的 Prod 机器上运行它时,它仍然会复制 PP 文件并跳过 Prod 机器的步骤。
这是一个有效的测试还是我有什么问题?
我的一个想法是,因为我将脚本限制为一台机器,而不是组,所以它没有选择 group_var?
我将脚本用作
ansible-playbook -i inventory/hosts -l emms1 install_emms.yml --ask-vault-pass --extra-vars '@passwd.yml'
对于每台机器。
【问题讨论】:
标签: ansible