在Ansible中,条件判断可以使用when关键字实现。when关键字后面可以跟随一个条件表达式,如果该表达式为真,则执行该任务,否则跳过该任务。

例如,以下playbook中,当操作系统为CentOS 7时,执行安装Apache的任务:

---
- name: Install Apache on CentOS 7
  hosts: webserver
  become: yes
  vars:
    os_version: "{{ ansible_distribution_major_version }}"

  tasks:
  - name: Install Apache on CentOS 7
    yum:
      name: httpd
      state: present
    when: os_version == "7"

在该playbook中,使用了变量os_version来获取操作系统的主版本号,然后使用条件表达式os_version == "7"来判断是否为CentOS 7系统。如果是,则执行安装Apache的任务。

除了使用变量,还可以使用Ansible提供的facts来获取系统信息,例如:

---
- name: Install Apache on Ubuntu 18.04
  hosts: webserver
  become: yes

  tasks:
  - name: Install Apache on Ubuntu 18.04
    apt:
      name: apache2
      state: present
    when: ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "18.04"

在该playbook中,使用了Ansible提供的facts中的ansible_distribution和ansible_distribution_major_version来获取系统的发行版本和主版本号,然后使用条件表达式ansible_distribution == "Ubuntu" and ansible_distribution_major_version == "18.04"来判断是否为Ubuntu 18.04系统。如果是,则执行安装Apache的任务。

ansible-playbook 条件判断

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

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