Ansible自动化部署可以替我们实现用户级一对多的操作。
一、环境配置
真实主机配置私有网段 172.25.9.254 172.25.254.9/24
虚拟机a:172.25.9.100 主机名node1
虚拟机b:172.25.9.200 主机名node2
虚拟机c:172.25.9.10 主机名ansible
二、Ansible安装
下载前配置好本地网络仓库
epel源安装:
dnf install ansible.noarch -y
ansible --version 查看ansible版本信息
三、构建ansible清单
编辑清单vim /etc/ansible/ host
ansible all --list 列出所有ansible控制主机的列表,想要执行还需要加本地解析
ansible westos1 --list 设定列出受管主机的组
修改默认清单文件
注:实验完成后记得改回,避免影响后续实验
注**:注意什么时候使用“” ,什么时候使用‘’,双引号不能引用感叹号**
ansible ‘~westos’ --list 以westos 开头的
ansible ‘~test|westos’ --list 以test和westos开头的
四、Ansible配置文件及参数详解
ansible是通过本地ansible生成python脚本,然后通过ansible传递给需要操作的主机,来实现自动化运维的.若脚本未执行完成,当前本机~/.ansible/tmp 远程主机~/.ansible/tmp 均存在python脚本
vim /etc/ansible/ansible.cfg 编辑ansible的主配置文件
inventory 默认控制访问列表
vim ansible.cfg
ansible westos -m shell -a “whoami” 查看westos受控清单的使用身份 -m指定模块 -a后输入命令
默认模块为command 但command不支持一些通配符号,所以改为shell module_name = shell
需要在客户主机中进行sudo授权 remote_tmp = ~/.ansible/tmp 执行脚本存放目录
执行一个未完成的命令:
在受控主机中可以找到相应脚本 ~/.ansible.tmp
注意:是在你登陆身份的家目录下,并不是所有的都在root
五、构建用户级ansible操作环境
还原主配置文件 切换用户 su - hyl
编写配置文件
编写清单
ansible westos1 -a “whoami” -k -k,交互式输入密码
访问加密:
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub westos@172.25.9.100
ssh-copy-id -i ~/.ssh/id_rsa.pub westos@172.25.9.200 生成密钥并对相应控制主机的用户进行加密
再次执行,则无需输入密码。
ansible westos1 -a “whoami” 无需密码即可执行