
私は Atlas で Vagrant 構成を構築しようとしています。また、プロビジョニングに ansible を使用していますが、sudo の問題がいくつかあります。
VM をセットアップした後、Atlas で Ansible プレイブックを実行しようとすると、次のエラーが発生します。
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
そして、プレイブックを実行した直後、プレイブック内のこのコマンドで sudo 権限が必要なときに、すべてが壊れます。
-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経由で完全なルートアクセス権を取得しているかどうかを確認する必要があります。確認するには、ホストでsudoersを開きますvisudo
。次のような行があるはずです。
ansible_user ALL=(ALL) NOPASSWD: ALL