目录
一 问题所在
在做ansible部署清单的时候出现这个问题,字面意思是,丢失了sudo的密码,后来才意识到,其实就是你进入被控制节点上的用户没有sudo功能,这个用户在你的配置文件ansible.conf中的remote_user=XXX中。
表明我的被管理节点,比如是servera中的student没有sudo
[root@servera ~]# cd /etc/sudoers.d/
[root@servera sudoers.d]# ll -a
total 16
drwxr-x---. 2 root root 33 Jun 14 2021 .
drwxr-xr-x. 108 root root 8192 Jan 1 19:15 ..
-r--r-----. 1 root root 133 Jun 14 2021 90-cloud-init-users
[root@servera sudoers.d]# cat 90-cloud-init-users
# Created by cloud-init v. 20.3-10.el8_4.2 on Mon, 14 Jun 2021 07:38:25 +0000
# User rules for devops
devops ALL=(ALL) NOPASSWD:ALL
我们进入/etc/sudoers.d这个目录下,找到90-cloud-init-users这个文件,这个文件最下面发现有一个devops用户。
咱们在ansible.cfg的文件中将remote_user改为devops,然后再测试一下:
然后再ping
成功,所以刚才那个 /etc/sudoers.d/90-cloud-init-users文件就是dopovs的设置sudo的文件
二 解决方案
咱们就把被控制节点下的 /etc/sudoers.d/90-cloud-init-users文件拷贝一份,改个名字叫student
[root@servera sudoers.d]# cp 90-cloud-init-users student
[root@servera sudoers.d]# cat student
# Created by cloud-init v. 20.3-10.el8_4.2 on Mon, 14 Jun 2021 07:38:25 +0000
# User rules for devops
student ALL=(ALL) NOPASSWD:ALL
[root@servera sudoers.d]#
再在控制节点上测试
成功了
然后我们用scp的方式把这个文件scp到其它被控制节点
这样其它节点的student也有了sudo功能
ansible也成功了!!