Ansible 使用普通用户管理被控端

场景说明:ansible使用oldxu普通用户统一管理所有被控节点

1:首先控制端,被控端,都需要有oldxu用户,被控端我就不做演示了

[root@master ~]# echo "123" | passwd --stdin oldxu
Changing password for user oldxu.
passwd: all authentication tokens updated successfully.

2:将控制端oldxu用户的公钥推送到被控端oldxu用户下面,使得普通用户可以免密登入

[rootemanager ~]# su- oldxu
[oldxuemanager ~]ssh-keygen-t rsa -N "" -f ~/.ssh/id_rsa
[oldxuamanager ~]ssh-copy-id -i ~/.ssh/id.pub oldxue@IP

3.所有主机的 oldxu 用户都必须添加 sudo 权限。

[root@manager~]# visudo
root    ALL=(ALL)       ALL
oldxu   ALL=(ALL)       NOPASSWD:ALL


检查语法是否正确
[root@node1 ~]# visudo -c
/etc/sudoers: parsed OK

4.修改控制端/etc/ansible/ansible.cfg主配置文件,配置用户提权

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

上面这些步骤都可以依托于ansible去做,root免密了,可以使用ansible的控制端去为所有的被控端添加用户,为其设定密码,然后将控制端用户的公钥放到被控端特定用户下,这样就实现了。

最后就是使用这个普通用户来测试

[oldxu@master ~]$ ansible --version
ansible 2.9.27
  config file = /etc/ansible/ansible.cfg

[oldxu@master ~]$ ansible all -m ping -i /etc/ansible/hosts

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/125416791
今日推荐