Ansible的安装及部署

实验环境配置
准备四台主机
Ansible主机:主机名ansible.westos.com IP 192.168.2.254
nod1主机:主机名nod1.westos.com IP 192.168.2.1
nod2主机:主机名nod2.westos.com IP 192.168.2.2
nod3主机:主机名nod3.westos.com IP 192.168.2.3
Ansible对企业运维的重要意义
Ansible可以对文件实现批量处理,对远程主机批量操作
Ansible的安装
配置epel源
dnf install ansible -y
ansible --viersion:查看ansible版本信息
/etc/ansible/ansible.conf:全局配置文件,默认很少修改
/etc/ansible/hosts :全局主机清单文件
构建Ansible清单
vim /etc/ansible/hosts
Ansible的安装及部署
在ansible主机中添加解析
Ansible的安装及部署
查看Ansible清单
查看清单结构
ansible-inventory --list
Ansible的安装及部署
查看单个清单
ansible nod_list1 --list-hosts -k
Ansible的安装及部署
查看所有清单
ansible all --list-hosts
Ansible的安装及部署

查看不再组中的清单
ansible ungrouped --list-hosts
Ansible的安装及部署

在查看过程中实际是进行了ssh动作,在第一次连接时会有yes/no选项,可能会成为干扰项,修改配置文件
vim /etc/ansible/ansible.cfg
Ansible的安装及部署
查看时如果不想-k输入密码
vim /etc/ansible/ansible.cfg
Ansible的安装及部署
这时不需要输入-k就可以自动提示
Ansible的安装及部署
主机规格范围化操作
通过指定主机的名称或ip范围可以简化Ansible主机清单
语法:
nod[1:3].westos.com
Ansible的安装及部署
查看清单
Ansible的安装及部署

172.25.2.[1:3]

Ansible的安装及部署
查看清单
Ansible的安装及部署
指定其他清单文件
vim /mnt/inventory

Ansible的安装及部署
查看
Ansible的安装及部署
Ansible命令指定清单的正则表达式
:所有
例如:ansible nod* --list-hosts
Ansible的安装及部署
例如ansible 192.168.2.
--list-hosts
Ansible的安装及部署
‘:’:逻辑或(意思是在A或B中出现的主机)
Ansible的安装及部署
‘:&’:逻辑与(两个清单的交集,某个主机在A和B中出现)
Ansible的安装及部署
‘:!’:逻辑非(在A清单中,不再B清单中)
Ansible的安装及部署
‘~’:以关键字为开头

Ansible的安装及部署
Ansible配置文件参数详解
/etc/ansible/ansible.cfg 基本配置文件,找不到其他配置文件此文件生效
~/ansible.cfg 用户当前目录中没有ansible.cfg此文件生效
./ansible.cfg 优先级最高
常用配置参数
inventory= 指定清单路径(指定清单后在运行ansible命令时不用再用-i参数指定清单文件)
Ansible的安装及部署
remote_user= 在受管主机上登陆的用户名称,未指定使用当前用户

Ansible的安装及部署
ansible nod_list1 -a ‘whoami’
Ansible的安装及部署
ask_pass= 是否提示输入SSH密码,如果免密登陆设置false
Ansible的安装及部署
library= 库文件存放目录
local_tmp= 本机临时命令执行目录
remote_tmp= 远程主机临时py命令存放目录
forks= 默认并发量(根据自己ansible主机配置修改)
host_key_checking= 第一次连接受管主机是否输入yes/no
Ansible的安装及部署
sudo_user= 默认sudo用户
ask_sudo_pass= 每次在受控主机执行ansible命令时是否询问sudo密码
module_name= 默认模块,默认为command,可以根据需求修改
log_path= 日志文件路径
[privilege_escalation] 身份信息设定
become= 连接后是否自动切换用户
become_method= 设定切换用户的方式,通常使用sudo
become_user= 在受管主机中切换到的用户,通常为root
become_ask_pass= 是否要为become_method提示输入密码,默认为false
构建用户级Ansible操作环境
su - westos
cp /etc/ansible/ansible.cfg .
vim ansible.cfg
Ansible的安装及部署
编写清单
vim inventory
Ansible的安装及部署
将nod1作为实验受管对象给westos用户授权
在nod1.westos.com主机中
visudo
Ansible的安装及部署
使用ansible主机在nod1主机并查看身份
ansible nod1_list -a ‘whoami’
Ansible的安装及部署

实际连接的是westos用户,因为授权原因westos用户在nod1.westos.com主机中的身份为root
取消授权
Ansible的安装及部署
修改配置文件
Ansible的安装及部署
查看连接用户
Ansible的安装及部署