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 部署安装docker ansible环境搭建_配置文件

ansible all --list 列出所有ansible控制主机的列表,想要执行还需要加本地解析
ansible westos1 --list 设定列出受管主机的组

修改默认清单文件

ansible 部署安装docker ansible环境搭建_配置文件_02

注:实验完成后记得改回,避免影响后续实验

ansible 部署安装docker ansible环境搭建_运维_03

注**:注意什么时候使用“” ,什么时候使用‘’,双引号不能引用感叹号**

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 默认控制访问列表

ansible 部署安装docker ansible环境搭建_服务器_04

vim ansible.cfg

ansible 部署安装docker ansible环境搭建_ansible 部署安装docker_05

ansible westos -m shell -a “whoami” 查看westos受控清单的使用身份 -m指定模块 -a后输入命令

默认模块为command 但command不支持一些通配符号,所以改为shell module_name = shell

ansible 部署安装docker ansible环境搭建_linux_06

需要在客户主机中进行sudo授权 remote_tmp = ~/.ansible/tmp 执行脚本存放目录

执行一个未完成的命令:

ansible 部署安装docker ansible环境搭建_配置文件_07

在受控主机中可以找到相应脚本 ~/.ansible.tmp

ansible 部署安装docker ansible环境搭建_linux_08

注意:是在你登陆身份的家目录下,并不是所有的都在root

五、构建用户级ansible操作环境

还原主配置文件 切换用户 su - hyl

ansible 部署安装docker ansible环境搭建_linux_09

编写配置文件

ansible 部署安装docker ansible环境搭建_配置文件_10


ansible 部署安装docker ansible环境搭建_linux_11

编写清单

ansible 部署安装docker ansible环境搭建_linux_12

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” 无需密码即可执行