ansible条件示例剧本

备注:以下下示例主机组均为pxg

####系统符合就安装apache###


  • name: Install Apache on CentOS 7

hosts: pxg

remote_user: root # 使用root身份执行命令

tasks:

  • name: Install Apache

yum:

name: httpd # Apache软件包名称

state: present # 安装Apache

when: ansible_os_family == 'RedHat' # 仅对Red Hat/CentOS系统执行

  • name: Start Apache service

service:

name: httpd # Apache服务名称

state: started # 启动Apache服务

when: ansible_os_family == 'RedHat' # 仅对Red Hat/CentOS系统执行

...

###变量存在与否在回显提示###


  • name: Conditional Task Execution

hosts: pxg

remote_user: root # 使用root身份执行命令

vars:

user: peng

home: /home/peng

tasks:

  • name: Check if user is defined

debug:

msg: "user is defined"

when: user is defined

  • name: Check if home is defined

debug:

msg: "home is defined"

when: home is defined

...

####判断发行版本然后停止httpd服务###


  • name: 停止httpd服务

hosts: pxg

remote_user: root # 使用root身份执行命令

tasks:

  • name: 获取发行版信息

ansible.builtin.setup:

filter: "ansible_distribution"

register: dist_info # register 关键字用于将任务执行的结果保存到一个变量(dist_info)中,然后可以使用这个变量的值在 playbook 中的其他地方进行处理。

  • name: 停止httpd服务(如果发行版是CentOS或Fedora)

ansible.builtin.service:

name: httpd

state: stopped

when: dist_info.ansible_facts.ansible_distribution in ['CentOS', 'Fedora']

...

####判断根分区大小####


  • name: Check Root Partition Space and Stop vsftpd

hosts: pxg

remote_user: root # 使用root身份执行命令

tasks:

  • name: Get Root Partition Space

shell: df -h / | awk 'NR==2 {print $4}' # 获取根分区可用空间(以G为单位)

register: root_partition_space

  • name: Stop vsftpd Service

systemd:

name: vsftpd

state: stopped

when: root_partition_space |int < 3 # 当可用空间小于3G时停止服务

handlers:

  • name: Start vsftpd Service

systemd:

name: vsftpd

state: started

...

相关推荐
运维李哥不背锅1 小时前
Ansible 的变量与模板:实现更灵活的自动化配置
java·自动化·ansible
运维李哥不背锅1 小时前
Ansible 的条件语句与循环详解
数据库·ansible
小安运维日记4 天前
RHCA - DO374 | Day03:通过自动化控制器运行剧本
linux·运维·数据库·自动化·ansible·1024程序员节
遇见火星4 天前
Aiops探索:基于Ansible的Dify版本运维智能体落地思路
运维·服务器·ansible
星哥说事4 天前
网络自动化:Ansible/Netmiko 网络设备批量配置与管理
网络·自动化·ansible
zz-zjx5 天前
全平台Ansible一键安装脚本:Ubuntu/Debian/RHEL全支持
ansible
不惑_5 天前
如何使用 Ansible 安装 Docker
docker·github·ansible
小安运维日记7 天前
RHCA - DO374 | Day01:使用红帽Ansible自动化平台开发剧本
运维·服务器·云原生·自动化·云计算·ansible
BullSmall7 天前
Ansible三大Web界面方案全解析
运维·ansible
Warren988 天前
复习MySQL
数据库·windows·tcp/ip·mysql·ubuntu·ssh·ansible