[英]Getting Error "You need to be root to perform this command" ansible-playbook
[英]You need to be root to execute - ansible
我有一個帶有 ansible 控制器 + 節點的實驗室設置,並探索了幾個領域。
我到目前為止建立一個名為用戶帳戶ansible
在兩台機器並啟用了SSH keybased認證
還要在兩台機器上為用戶設置 sudo 權限
當我嘗試運行下面的 playbook 時,它在本地機器上工作,在另一個節點上失敗。
--- #Install Telnet - hosts: all name: Install Telnet become: true become_user: ansible become_method: sudo tasks: - yum: name: telnet state: latest
輸出如下`[ansible@host1 playbooks]$ ansible-playbook telnetDeployYUM.yml
PLAY [安裝 Telnet] ********************************************* ****************************************************** ****************************************************** **********************
任務 [收集事實] ************************************************* ****************************************************** ****************************************************** ********************* 好的:[192.168.64.6] 好的:[192.168.64.5]
任務 [yum] ************************************************* ****************************************************** ****************************************************** ******************************** 好的:[192.168.64.5] 致命的:[192.168.64.6]:失敗! => {"changed": true, "msg": "你需要是 root 才能執行這個命令。\\n", "obsoletes": {"grub2": {"dist": "x86_64", "repo": "@anaconda", "version": "1:2.02-0.64.el7.centos"}, "grub2-tools": {"dist": "x86_64", "repo": "@anaconda", "version": "1:2.02-0.64.el7.centos"}}, "rc": 1, "results": ["Loaded plugins:fastestmirror\\n"]} 重試,使用:--limit @/home/ansible/playbooks /telnetDeployYUM.retry
播放回顧 **************************************************** ****************************************************** ****************************************************** ****************************** 192.168.64.5 : ok=2 已更改=0 無法訪問=0 失敗=0 192.168.64.6 : ok=1 已更改=0 無法訪問=0 失敗=1
[ansible@host1 劇本]$ `
我還可以手動以 ansible 用戶身份在失敗的目標上運行sudo yum
我相信 sudo 設置正確
[ansible@host2 root]$ sudo whoami root
專家們能否就我的故障機器分享一些我所缺少的見解,謝謝。
使用-vvvv
運行以查看-vvvv
正在做什么。
您是否在sudoers
設置了ansible
以進行無密碼權限提升? 您收到一條消息,指出它正在等待“升級提示”。 這意味着當您使用 become 運行時,您將無法成為,因為它需要密碼。 確保您的測試用戶在/etc/sudoers
,並且您已將其標記為該用戶在運行 sudo 命令時不需要輸入密碼。 該條目應在該文件的行上以:NOPASSWD
結尾。
下面應該可以正常工作
- hosts: all
name: Install Telnet
become: yes
tasks:
- yum:
name: telnet
state: latest
ansible 或通過其執行 ansible 的用戶應該在 sudoers 文件中。
您正在將您的用戶更改為 ansible,這不是必需的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.