Ansible 脚本:when 条件下的 shell 任务执行逻辑
不会,只有符合条件的任务会执行。当 stop_app 变量的值为'app1'时,第一个 shell 任务和对应的 debug 任务会执行;当 stop_app 变量的值为'app2'时,第二个 shell 任务和对应的 debug 任务会执行。如果 stop_app 的值既不是'app1'也不是'app2',则整个 playbook 都将跳过。
- hosts: app_hosts
remote_user: root
gather_facts: false
tasks:
- name: 'stop app1'
ansible.builtin.shell: |
cd /opt/app1/bin
pwd
sh shutdown.sh
register: shell_result1
- debug:
var: shell_result1.stdout_lines
when: stop_app == 'app1'
- name: 'stop app2'
ansible.builtin.shell: |
cd /opt/app2/bin
pwd
sh shutdown.sh
register: shell_result
- debug:
var: shell_result.stdout_lines
when: stop_app == 'app2'
原文地址: https://www.cveoy.top/t/topic/lOwC 著作权归作者所有。请勿转载和采集!