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

...

相关推荐
有毒的教程4 天前
Ansible批量操作自动化完整教程:批量部署服务、配置同步、软件更新实战
运维·自动化·ansible
Hy行者勇哥9 天前
用Cursor智能编写Ansible/Terraform脚本,打通CI/CD链路
ci/cd·ansible·terraform
芷栀夏11 天前
飞牛NAS怎么部署Immich?家庭照片自动备份与远程访问教程
服务器·nginx·ansible
悠然南风21 天前
Ansible常见模块总结及LDAP Role 编写与调试
ansible
祺风挽楠1 个月前
ansible编辑
网络·ansible
芳心粽伙饭1 个月前
Ansible课后作业
ansible
烁3471 个月前
Ansible初识
ansible
烁3471 个月前
Ansible安装部署调试
ansible
烁3471 个月前
Ansible命令
ansible
小义_1 个月前
【Ansible】(三)基础配置与连接设置
云原生·ansible