在 Atlas 上建置時出現 Ansible sudo 錯誤

在 Atlas 上建置時出現 Ansible sudo 錯誤

我一直在嘗試在 Atlas 上建立我的 Vagrant 配置。另外,我使用 ansible 進行配置,並且遇到一些 sudo 問題。

在嘗試在 Atlas 上執行 ansible playbook 時設定 VM 後,我收到此錯誤:

virtualbox-iso: failed: [127.0.0.1] => {"failed": true, "item": ""}
virtualbox-iso: msg: Failed to lock apt for exclusive operation

所以我在網路上發現 sudo 權限可能是問題所在。在我的主劇本中,檔案權限設定為:

sudo: true
remote_user: vagrant

運行 playbook 後,當我需要 sudo 權限時,在 playbook 中的這個 cmd 上,整個事情就中斷了:

-name: Update apt
sudo: yes
apt: update_cache=yes

有誰知道如何解決這種情況?如何修復 ansible 上的 sudo 權限?

筆記。當我嘗試在本地建立這台機器時,它的工作方式就像一個魅力,但當我在 Atlas 上運行它時,我遇到了問題。

更新:我相信 sudo 訪問是真正的問題,我已經刪除了這部分配置,並且它在需要 sudo 的其他部分上一直失敗。

virtualbox-iso: failed: [127.0.0.1] => (item=curl,wget,python-software-  properties) => {"failed": true, "item": "curl,wget,python-software-properties"}
 virtualbox-iso: stderr: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
virtualbox-iso: E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

答案1

Failed to lock apt for exclusive operation意味著其他應用程式正在持有 apt 鎖。也許系統上正在運行其他安裝進程?

檢查ps aux | grep apt輸出中是否有可疑進程。

該錯誤訊息也可能是由於權限不足引起的。您可能想要檢查 Ansible 使用者是否透過 sudo 取得完全 root 存取權限。若要檢查是否開啟主機上的 sudoers,請使用visudo.你應該有一行像

ansible_user ALL=(ALL) NOPASSWD: ALL

相關內容