ansible-playbook 条件判断
在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的任务。
原文地址: https://www.cveoy.top/t/topic/yzT 著作权归作者所有。请勿转载和采集!