use*_*834 9 ansible ansible-playbook
我有一个像这样的重复模式::
- name: =code_01= clone repository
git: repo=gitolite@git.site.net:/code_01
dest=/tmp/code_01
update=yes
force=yes
accept_hostkey=yes
version=master
sudo: true
sudo_user: "{{ user }}"
- name: =code_01= egg build
shell: . {{ home }}/{{ venv_name }}/bin/activate && make egg
args:
chdir: "/tmp/code_01"
sudo_user: "{{ user }}"
sudo: true
- name: =code_01= egg get
command: find /tmp/code_01/dist -type f -iname '*.egg'
register: code_01eggs
- name: =code_01= egg install in {{ venv_name }} venv
shell: . {{ home }}/{{ venv_name }}/bin/activate && easy_install {{ item }}
args:
chdir: "{{ home }}"
with_items: "{{ code_01eggs.stdout_lines }}"
sudo_user: "{{ user }}"
sudo: true
- name: =code_01= cleanup
file: path=/tmp/code_01 state=absent
sudo: true
Run Code Online (Sandbox Code Playgroud)
我有这个: code_02, code_03, code_04,...,code_0n
我怎样才能"分解"这个?
Wto*_*wer 12
您可以将逻辑移动到第二YML文件,并使用include具有with_items:
- include: factored.yml
with_items:
- code_01
- code_02
- code_03
Run Code Online (Sandbox Code Playgroud)
而在第二个文件替换code_01用{{ item }}.
有用的链接:Ansible docs:循环和包含
注意:如果您有嵌套循环,则可以set_fact在Ansible 2.0之后使用设置outter 循环项.有关更多信息,请参阅上述文档.
| 归档时间: |
|
| 查看次数: |
6854 次 |
| 最近记录: |