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-inventory --list
查看单个清单
ansible nod_list1 --list-hosts -k
查看所有清单
ansible all --list-hosts
查看不再组中的清单
ansible ungrouped --list-hosts
在查看过程中实际是进行了ssh动作,在第一次连接时会有yes/no选项,可能会成为干扰项,修改配置文件
vim /etc/ansible/ansible.cfg
查看时如果不想-k输入密码
vim /etc/ansible/ansible.cfg
这时不需要输入-k就可以自动提示
主机规格范围化操作
通过指定主机的名称或ip范围可以简化Ansible主机清单
语法:
nod[1:3].westos.com
查看清单
172.25.2.[1:3]
查看清单
指定其他清单文件
vim /mnt/inventory
查看
Ansible命令指定清单的正则表达式
:所有
例如:ansible nod* --list-hosts
例如ansible 192.168.2. --list-hosts
‘:’:逻辑或(意思是在A或B中出现的主机)
‘:&’:逻辑与(两个清单的交集,某个主机在A和B中出现)
‘:!’:逻辑非(在A清单中,不再B清单中)
‘~’:以关键字为开头
Ansible配置文件参数详解
/etc/ansible/ansible.cfg 基本配置文件,找不到其他配置文件此文件生效
~/ansible.cfg 用户当前目录中没有ansible.cfg此文件生效
./ansible.cfg 优先级最高
常用配置参数
inventory= 指定清单路径(指定清单后在运行ansible命令时不用再用-i参数指定清单文件)
remote_user= 在受管主机上登陆的用户名称,未指定使用当前用户
ansible nod_list1 -a ‘whoami’
ask_pass= 是否提示输入SSH密码,如果免密登陆设置false
library= 库文件存放目录
local_tmp= 本机临时命令执行目录
remote_tmp= 远程主机临时py命令存放目录
forks= 默认并发量(根据自己ansible主机配置修改)
host_key_checking= 第一次连接受管主机是否输入yes/no
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
编写清单
vim inventory
将nod1作为实验受管对象给westos用户授权
在nod1.westos.com主机中
visudo
使用ansible主机在nod1主机并查看身份
ansible nod1_list -a ‘whoami’
实际连接的是westos用户,因为授权原因westos用户在nod1.westos.com主机中的身份为root
取消授权
修改配置文件
查看连接用户