Ansible安装配置
概要:Ansible是一款基于Python开发的自动化运维开源工具,主要实现批量系统配置、批量程序部署、批量运行命令、批量执行任务等。
实验环境:
| 主机类别 | 主机名 | IP地址 | 操作系统 |
|---|---|---|---|
| Ansible 控制主机 | ansible-ctl | 192.168.200.20 | CentOS 7 |
| Ansible 被控节点 | web01 | 192.168.200.30 | CentOS 7 |
| Ansible 被控节点 | web02 | 192.168.200.40 | Cent0S 7 |
安装Ansible
此处使用阿里云的源(需要联网操作)[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安装Ansible[root@localhost ~]# yum install ansible -y
配置Ansible环境
Ansible的配置文件以ini格式存储。在运行Ansible命令时,命令将采用预先设定的顺序查找配置文件,默认步骤如下:
- 首先检查系统环境变量;
- 其次,检查当前目录下的ansible.cfg配置文件;
- 再次,检查当前用户home目录下的.ansible.cfg文件;
- 最后,检查ansible默认yum安装时自动产生的文件/etc/ansible/ansible.cfg。
修改配置文件/etc/ansible/ansible.cfg
[root@localhost ~]# vi /etc/ansible/ansible.cfg
修改如下参数并取消注释:
1 | inventory = /etc/ansible/hosts |
配置控制主机SSH无密码访问被控节点
- Ansible控制主机创建密钥(默认在 /root/.ssh/id_rsa.pub),id_rsa为私钥,id_rsa.pub为公钥
[root@localhost ~]# ssh-keygen - 将此公钥下发到两个被控节点(弹出提出输入 yes即可)
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected][root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected] - 验证无密码SSH是否成功
[root@localhost ~]# ssh [email protected][root@localhost ~]# exit[root@localhost ~]# ssh [email protected][root@localhost ~]# exit
测试Ansible
主机连通
- 配置ansible被控节点的主机与组(注意去掉注释)
[root@localhost ~]# vi /etc/ansible/hosts
- 使用Ansible的ping模块对单台主机分别进行ping操作,出现如图所示表示连通
[root@localhost ~]# ansible 192.168.100.129 -m ping
注:如上命令如由输出WARNING信息,可按提示更改主配置文件ansible.cfg,取消警告信息
- ping webservers组
[root@localhost ~]# ansible webservers -m ping
在控制主机发送命令到被控节点
- 批量执行命令
[root@localhost ~]# ansible webservers -m command -a "pwd" - 在用户home目录下创建一个资源清单文件invertory.cfg并写入内容
[root@localhost ~]# ansible webservers -m command -a "touch /root/inventory.cfg"[root@localhost ~]# ansible webservers -m command -a "echo Hello Ansible! > /root/inventory.cfg"

