不会,只有符合条件的任务会执行。当 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'
Ansible 脚本:when 条件下的 shell 任务执行逻辑

原文地址: https://www.cveoy.top/t/topic/lOwC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录