Ansible 如何使用 Playbook 批量部署应用?

Ansible Playbook是Ansible中用于自动化任务执行的配置文件,采用YAML格式编写。通过Playbook,运维人员可以定义多个任务(Tasks),让Ansible按照指定的顺序执行,从而实现应用的批量部署。下面带来使用 Playbook 批量部署应用的方法。


步骤一:准备Ansible环境

在开始使用Ansible Playbook部署应用之前,需要先安装和配置Ansible。

安装Ansible在Linux系统(如CentOS或Ubuntu)上执行以下命令安装Ansible:

sudo apt update&&sudo apt install ansible#Ubuntu/Debian

sudo yum install epel-release-y&&sudo yum install ansible-y#CentOS/RHEL

配置受控节点

确保目标服务器(受控端)已安装SSH并允许Ansible主机免密登录。

在控制端生成SSH密钥并分发到目标机器:

ssh-keygen-t rsa

ssh-copy-id user remote_host

配置/etc/ansible/hosts文件,添加受控节点信息,例如:

web_servers

192.168.1.10

192.168.1.11
步骤二:编写Ansible Playbook

Playbook由多个部分组成,主要包括hosts(目标主机)、tasks(任务)等。

创建Playbook文件在Ansible主机上新建一个YAML格式的Playbook文件,如deploy_app.yml。

编写Playbook内容下面是一个示例Playbook,批量在目标服务器上安装Nginx并启动:

-name:批量部署Nginx

hosts:web_servers

become:yes

tasks:

-name:安装Nginx

apt:

name:nginx

state:present

when:ansible_os_family=="Debian"

-name:安装Nginx(CentOS)

yum:

name:nginx

state:present

when:ansible_os_family=="RedHat"

-name:启动Nginx

service:

name:nginx

state:started

enabled:yes
步骤三:执行Ansible Playbook

在编写好Playbook后,可以使用以下命令执行:

ansible-playbook deploy_app.yml

执行成功后,Nginx将被批量部署并启动。
步骤四:验证部署结果

通过以下命令检查Nginx是否成功运行:

systemctl status nginx

在浏览器(如谷歌浏览器官网)中输入目标服务器的IP地址,检查Nginx欢迎页面是否正常显示。

相关推荐
承渊政道15 小时前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
Helix2502 天前
Ansible混合环境自动化:Windows与Linux统一配置管理实战
windows·自动化·ansible·playbook·配置管理·winrm·混合环境
垚垚学技术_聚焦云原生4 天前
Ansible 变量体系详解:主机变量、组变量、全局变量优先级实战
ansible·自动化运维·devops·变量优先级
I'mChloe12 天前
不再逐台装Docker:我用Ansible Playbook批量统一服务器环境
服务器·docker·ansible
筑梦之路13 天前
Alibaba Cloud Linux 4 制作 Ansible RPM包实践(离线可复用)——筑梦之路
linux·运维·ansible
张洛闻Eren13 天前
Ansible【第一课】:Ansible介绍
运维·数据库·云原生·kubernetes·github·ansible
张洛闻Eren13 天前
Ansible【第二课】:实施 Ansible Playbook
linux·运维·服务器·云原生·kubernetes·k8s·ansible
励志师code14 天前
Ansible 批量运维实战:从连通性巡检到灰度变更的完整闭环
运维·ansible
哈__19 天前
飞牛OS还在手动维护?我用Ansible把重复操作写成了Playbook
开发语言·ansible·php
垚垚学技术_聚焦云原生1 个月前
Ansible Role 生产环境标准目录结构与规范化实践
java·elasticsearch·ansible