Ansible
ansible是一个基于Python研发轻量级的运维自动化配置管理工具
ansible可以实现批量系统配置、批量程序部署、批量运行命令等功能
ansible通过SSH连接到服务器
ansible工作机制
- Control Node:控制机器
- Inventory:主机清单,配置管理主机列表
- Playbooks:剧本、任务编排。根据规则定义多个任务,模块组织结构清晰,由ansible自动执行。
- Modules(Core | Custom):模块,用于执行某个具体的任务
- connection plugin(连接插件):Ansible通过不同的协议连接到远程主机上,执行指定的命令。默认采用ssh协议连接远程主机。
安装Ansible
已装好Redhat、python3,在root用户条件下
1、机器环境
一台控制主机:192.168.99.85
一台管理主机:192.168.99.86
2、yum安装
yum install epel-release
yum install ansible
注:pip方式安装不会在/etc/ansible目录下生成默认的相关配置文件
3、配置管理主机
vim /etc/ansible/hosts
在hosts文件中最后添加管理主机的IP地址列表:
4、配置控制主机SSH密钥
在控制主机中生成ssh密钥对
ssh-keygen -t rsa
一直按enter键,在/root/.ssh目录下会生成id_rsa和id_rsa.put私钥和公钥两个文件
注: 如果在生成密钥的时候设置了密码,ansible每次执行命令的时候,都会提示输入密钥密码,可通过下面的命令记住密码。
ssh-agent bsh
ssh-add ~/.ssh/id_rsa
5、将公钥拷贝到管理主机中.ssh/authorized_keys文件中,实现免密码登录远程管理主机
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.86
注:ssh-copy-id命令会自动将id_rsa.pub文件的内容追加到远程主机root用户下.ssh/authorized_keys文件中。
6、ansible配置
vim /etc/ansible/ansible.cfg
(1)禁用每次执行ansbile命令检查ssh key host
host_key_checking = False
(2) 开启日志记录
log_path = /var/log/ansible.log
3> ansible连接加速配置
7、测试
在控制机器执行一个ping命令
ansible all -m ping
结果如下: