根据服务器系统选择对应命令安装Ansible,支持CentOS/RHEL和Ubuntu系统,无额外依赖,新手可直接复制执行。
先安装EPEL源再部署Ansible:
``` sudo yum install epel-release -y sudo yum install ansible -y ```更新源后安装Ansible:
``` sudo apt update sudo apt install ansible -y ```Ansible默认主机列表路径为/etc/ansible/hosts,优先配置自定义分组,避免批量误操作。用文本编辑器打开文件:
添加以下内容(替换为你的服务器IP和用户名):
``` [web_nodes] 192.168.31.10 ansible_user=deploy ansible_ssh_private_key_file=~/.ssh/id_rsa 192.168.31.11 ansible_user=deploy ansible_ssh_private_key_file=~/.ssh/id_rsa ```若未配置SSH密钥,需在本地生成密钥并分发到所有服务器,执行以下命令(一路回车默认即可):
``` ssh-keygen -t rsa -b 4096 ssh-copy-id deploy@192.168.31.10 ssh-copy-id deploy@192.168.31.11 ```务必确认所有服务器已加入对应分组,分组名(如web_nodes)后续操作会用到。
先测试与分组内服务器的连通性,避免后续操作出错:
``` ansible web_nodes -m ping ```若输出均为SUCCESS,说明配置正确;若报错,检查IP、用户名、密钥权限是否正常。
示例1:批量安装Nginx,普通用户操作时需加-b提权:

示例2:批量修改服务器主机名,将对应节点的主机名改为web-01、web-02:
``` ansible web_nodes[0] -m shell -a "hostnamectl set-hostname web-01" -b ansible web_nodes[1] -m shell -a "hostnamectl set-hostname web-02" -b ```说明:shell模块支持执行任意Linux命令,适合简单批量操作。
将本地配置文件同步到所有服务器,示例同步Nginx配置:
1. 本地创建nginx.conf文件,内容如下(可直接复制):
2. 执行分发命令,确保文件权限正确:
``` ansible web_nodes -m copy -a "src=./nginx.conf dest=/etc/nginx/nginx.conf owner=root group=root mode=0644" -b ```参数说明:src为本地文件路径,dest为服务器目标路径,mode为文件权限,避免Nginx读取失败。
复杂批量操作可通过Shell脚本实现,示例部署Nginx:
1. 创建本地deploy_nginx.sh脚本:
2. 给脚本添加执行权限:
``` chmod +x deploy_nginx.sh ```3. 执行批量脚本:
``` ansible web_nodes -m script -a "./deploy_nginx.sh" -b ```注意:脚本需放在执行Ansible的当前目录,否则需写绝对路径。
-b提权,避免权限不足失败;ansible-vault encrypt /etc/ansible/hosts加密,保护服务器信息。易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图