1、介绍:
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、SaltStack、chef、func)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
本期为大家展示安装ansible和一些基本的配置和命令使用,后期会讲述具体一些模块和其他内容。
2、部署环境
操作系统版本 |
IP地址 |
主机名 |
Centos7.6 |
192.168.0.200 |
manage |
Centos7.6 |
192.168.0.201 |
node01 |
Centos7.6 |
192.168.0.202 |
node02 |
关闭selinux和防火墙
| |
| 修改/etc/sysconfig/selinux文件中的SELINUX=disable |
| sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config |
| |
| |
| systemctl stop firewalld.service |
| systemctl disable firewalld.service |
3、安装ansible
| |
| yum -y install epel-release |
| |
| yum -y install ansible |
| |
| wget https://releases.ansible.com/ansible/ansible-2.9.3.tar.gz |
| |
| tar xvf ansible-2.9.3.tar.gz |
| mv ansible-2.9.3.tar.gz /opt/ansible |
| cd /opt/ansible |
| |
| pip3 install -r requirements.txt -i https://pypi.yuna.tsinghua.edu.cn/simple/ |
| |
| ln -s /usr/bin/pip3 /usr/bin/pip |
| |
| pip install --user ansible -i https://pypi.yuna.tsinghua.edu.cn/simple/ |
| |
| ln -s /usr/bin/python3 /usr/bin/python |
| |
| ln -s /opt/ansible/bin/* /usr/bin |
| |
| cp /opt/ansible/examples/ansible.cfg /etc/ansible |
| cp /opt/ansible/examples/hosts /etc/ansible |
4、ansible配置文件
- ansible的主配置文件为/etc/ansible/ansible.cfg
| inventory :管理的主机清单文件路径 |
| library:ansible的模块存放的目录 |
| remote_tmp:上述工作原理中提到的将脚本发送至对端的临时目录 |
| local_tmp:上述工作原理中提到本地生成脚本存放的临时目录 |
| forks:并发连接数,默认为5 |
| sudo_user :命令执行用户 |
| remote_port :访问管理主机的端口 |
| host_key_checking:设置是否检查SSH主机的密钥,默认为false |
| timeout :ssh连接被管理主机的超时时间 |
| log_path:ansilbe日志文件路径 |
- ansible的主机配置文件为/etc/ansible/hosts
| # 这个清单就是我们的主机清单,里面保存的是一些 ansible 需要连接管理的主机列表 |
| 1、直接指明主机地址或者主机名 |
| ## green.example.com |
| ## blue.example.com |
| 192.168.0.200 |
| 192.168.0.201 |
| node02 |
| # 主机地址范围 |
| 192.168.0.[200:202] |
| |
| 2、定义一个主机组[组名]把地址或主机名加进去 |
| 例如mysql组 |
| [mysqlserver] |
| 192.168.0.201 |
| |
| web组 |
| [webserver] |
| 192.168.0.201 |
| 192.168.0.202 |
| # 根据自己需求修改配置 |
5、ansbile常用命令
| |
| ansible-doc -l | grep mysql |
| |
| # ansible命令格式如下 |
| ansible <host-pattern> [-f forks] [-m module_name] [-a args] |
6、配置服务器间的ssh免密登录
| |
| ssh-keygen |
| |
| ssh-copy-id root@192.168.0.201 |
| ssh-copy-id root@192.168.0.202 |
| |
/
/
/
7、使用ansible的ping模块进行验证
| # 测试两台客户机网络是否连通 |
| ansible 192.168.0.201 -m ping |
| # 使用分组的host主机来验证 |
| ansible webserver -m ping |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用