簡體   English   中英

你需要是 root 才能執行 - ansible

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM