目錄
一、問題所在
二、解決方案
一 問題所在
在做ansible部署清單的時候出現這個問題,字面意思是,丢失了sudo的密碼,後來才意識到,其實就是你進入被控制節點上的使用者沒有sudo功能,這個使用者在你的配置檔案ansible.conf中的remote_user=XXX中。
表明我的被管理節點,比如是servera中的student沒有sudo
[[email protected] ~]# cd /etc/sudoers.d/
[[email protected] 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
[[email protected] 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
[[email protected] sudoers.d]# cp 90-cloud-init-users student
[[email protected] 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
[[email protected] sudoers.d]#
再在控制節點上測試
成功了
然後我們用scp的方式把這個檔案scp到其它被控制節點
這樣其它節點的student也有了sudo功能
ansible也成功了!!