Ansible:当条件与_项
我的剧本中有这样一部分,效果很好:Ansible:当条件与_项,ansible,Ansible,我的剧本中有这样一部分,效果很好: - name: "Copy solrconfig.xml" copy: src: "{{role_path}}/files/{{item.path}}" dest: "{{solr_jmx_config}}/solrconfig.xml" with_items: - path: solrconfig_master.xml when: inventory_hostname == "{{ solr_master }}" be
- name: "Copy solrconfig.xml"
copy:
src: "{{role_path}}/files/{{item.path}}"
dest: "{{solr_jmx_config}}/solrconfig.xml"
with_items:
- path: solrconfig_master.xml
when: inventory_hostname == "{{ solr_master }}"
become: yes
become_user: solr
- name: "Copy solrconfig.xml"
copy:
src: "{{role_path}}/files/{{item.path}}"
dest: "{{solr_jmx_config}}/solrconfig.xml"
with_items:
- path: solrconfig_slave.xml
when: inventory_hostname != "{{ solr_master }}"
become: yes
become_user: solr
但是,我希望它看起来更好,并做类似的事情:
- name: "Copy solrconfig.xml"
copy:
src: "{{role_path}}/files/{{item.path}}"
dest: "{{solr_jmx_config}}/solrconfig.xml"
with_items:
- path: solrconfig_master.xml -> when: inventory_hostname == "{{ solr_master }}"
- path: solrconfig_slave.xml -> when: inventory_hostname != "{{ solr_master }}"
become: yes
become_user: solr
如何为每个特定项目应用“何时”条件
致以最良好的祝愿,
Marek为什么您需要
和项目以及角色路径?试试这个:
- name: "Copy solrconfig.xml"
copy:
src: "{{ 'solrconfig_master.xml' if inventory_hostname == solr_master else 'solrconfig_slave.xml' }}"
dest: "{{solr_jmx_config}}/solrconfig.xml"
become: yes
become_user: solr
with
通常用于循环,单个元素不需要它。
当您在角色内调用任务时,文件模块的搜索路径包括/files/…
Hi Konstantin,这种方法实际上对我很有效。谢谢你的回答!