1,搭建ansible环境
①搭建3台虚拟机,保证可以互相通信
②其中一台作为管理主机,剩下的2台为被管理主机
③为了做提权实验,不使用root,新建用户user1,并将这个账号在4台被管理主机内做免密(做一台克隆三台)
④在管理节点添加hosts解析,将被管理主机域名对应servera serverb 方便写inventory文件
192.168.0.113 servera
⑤安装ansible
[shihp@bogon ~]$ yum install -y epel-release
[shihp@bogon ~]$ yum install -y ansible
⑥编辑ansible配置文件
ansible配置文件有四种优先级,
ansible配置文件并不是全局的,任何用户都可以有自己的ansible配置文件
ansible配置文件在安装的时候会有一个缺省的配置文件
[student@workstation ~]$ rpm -qf /etc/ansible/ansible.cfg
ansible-2.8.0-1.el8ae.noarch
一般使用ansible配置文件都是自己配置,新建目录,在该目录下创建自己的ansible配置文件
ansible配置文件有4种形式可以指定,这4种优先级不同
如果没有其他ansible配置文件,就会使用默认ansible文件
如果在家目录下有ansible.cfg配置文件,那么ansible会使用该配置文件,./ansible.cfg优先级大于/etc/ansible/ansible.cfg
当前目录下的ansible.cfg文件优先级大于./ansible.cfg
优先级最高的是使用ANSIBLE_CONFIG指定的配置文件
[shihp@bogon ~]$ cat ansible.cfg
[defaults]
inventory = ./inventory
remote_user =shihp
ask_pass = false
[privilege_escalation]
# 如果remote_user设置的是root,那么不需要配置提权操作,
# 如果remote_user设置的用户不需要特权操作,那么也不需要配置提权操作
become = ture
# ture表示需要提权,false表示不需要提权
become_method =sudo
# 表示提权方式是sudo提权
become_user =root
# 表示提权到root
become_ask_pass =false
#表示进行sudo操作时不需要输入密码,ture表示输入密码
⑦建立inventory文件
inventory文件定义了一系列的被管理主机,内容就是记录被管理主机
该文件分两种,一种是静态文件另一种就是动态lnverntory文件
静态inventory文件
[shihp@bogon ~]$ cat inventory
servera #被管理主机
[web] #被管理主机组
serverb
[test] #被管理主机组
serverc
serverd
[hhh:children] #嵌套组合主机组
web
test