ansible使用普通用户管理被控节点

本次的任务:

1
2
3
1:ansible的连接被控节点是是以q7用户进行操作的
2:q7用户拥有root用户的权限,进行提权的操作
3:ssh连接时,不需要输入密码,用密钥来进行登录

步骤流程:

1:将/etc/ansible的配置文件移动到家目录下

1
2
3
4
5
6
7
8
9
10
11
[root@controller ~]# mkdir ansible
[root@controller ~]# ls
anaconda-ks.cfg  Documents             Music     Templates
ansible          Downloads             Pictures  Videos
Desktop          initial-setup-ks.cfg  Public
[root@controller ~]#
 
模仿ansible.cfg里面的参数来写,或者直接复制过来
[root@controller ansible]# ls
ansible.cfg  hosts
[root@controller ansible]#

2:配置主机清单

1
2
3
4
5
6
7
8
9
10
[root@controller ansible]# vim hosts
[root@controller ansible]# cat hosts
[test]
client
[root@controller ansible]#
 
对于被控节点的域名解析的配置
[root@controller ansible]# vim /etc/hosts
192.168.20.111 controller
192.168.20.112 client

3:普通用户的权限提升

普通用户具有root用户的权限

1
2
3
4
5
6
#在控制节点上配置普通用户的提权
[root@controller /]# echo "q7 ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
#被控节点的操作(使用ssh来进行操作)
[root@controller /]# ssh root@client "echo 'q7 ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers"
root@client's password:
[root@controller /]#

4:生成密钥

因为每次使用ssh的时候,都会输入密码,所以使用密钥来进行认证(减少麻烦)

1
2
3
4
5
6
7
8
9
10
#先要切换到普通用户
su - q7
#生成密钥 ssh-keygen
[q7@controller ~]$ ssh-keygen
#发送公钥给被控节点
[q7@controller ~]$ ssh-copy-id q7@client
#在被控节点上面查看公钥
[q7@client .ssh]$ ls
authorized_keys
[q7@client .ssh]$

5:配置ansible的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#定义ansible的主机清单的路径
inventory      = /home/ansible/hosts
#连接时是进行密码验证还是密钥验证
ask_pass      = Flase
#连接时不验证主机指纹信息
host_key_checking = Flase
#远程管理被控节点是登录的什么用户
remote_user = q7
#提权的方式
[privilege_escalation]
become=True   #是否要提权
become_method=sudo  #提权的方式是什么
become_user=root  #提权到哪一个用户
become_ask_pass=False   #提权时需不需要密码

 

总的步骤就是

1:先要配置好网络和域名解析

2:创建所有主机都有的用户名

3:给所有的普通用户提权(每次使用的用户就是q7)

4:配置ssh免密钥登录(每次使用ssh的时候,不需要输入密码)

5:修改/home/q7/ansible/下的配置文件和主机清单(这个就是ansible的优先级需要注意一下)

修改里面的几个参数就可以了

1
2
3
2个点就是
1:使用sudo提权的时候,需要输入自己的用户密码,使用NOPASSWD这个选项可以避免输入这个
2:就是没有使用免密钥登录的时候,每次使用ssh都会要求用户输入连接的密码,所以,使用了免密钥的操作后,不需要输入密码就能直接进行操作

 

 

几个重要的点就是:

就是有2个点在控制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
提权
第一点:/etc/sudoers这个配置文件
提权的时候不需要输入密码
q7 ALL=(ALL) NOPASSWD:ALL
 
第二点:ansible这个配置文件
become=True #是否提权
become_method=sudo  #提权的方式
become_user=root  #提权的用户是谁
become_ask_pass=False  #提权的时候,是否输入密码
 
 
 
免密钥的操作
第一点:
生成密钥后,使用ssh不需要输入密码
 
第二点:
ask_pass = False #就是在连接的时候,是否输入密码

  

  

 

posted @   q_7  阅读(111)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示