apt-get dist-upgrade
を含むAnsibleプレイブックを作成しました。私はbecome: true
とbecome_user: root
を作って、アップグレードを実行するためにsudoにアクセスするようにしました。これは私のベイグラント仮想マシン上でローカルに正常に動作しますが、私たちの生産システム(Ubuntuの16.04)上で動作しているとき、私たちは次のエラーを取得する:aptタスク:排他的操作のためにaptをロックできませんでした
Failed to lock apt for exclusive operation
私たちの現在の回避策は、マシンにSSHし、手動でsudo apt-get dist-upgrade
を実行することです。それから、SSHセッションを終了して、もう一度実行可能なプレイブックを実行してください。
私たちのプレイブックのその他のタスクは、sudoのアクセスと正常に動作する必要があります。失敗したのはaptコマンドだけです。マシンをリブートして、become: true
とbecome_user: root
をsudo: yes
に置き換えてみました。
どのようにこの問題を解決するためのアイデアですか?私は下のプレイブックの関連部分を含めます。
- become: true
become_user: root
name: Setup the mongo database servers
hosts: sgmongo-{{ customer }}-ciadmin
tasks:
-
name: Ensure OS is upgraded with all patches
apt: upgrade=dist update_cache=yes
本番システム上の 'apt'を実行している任意のcronアクションまたは他のはありますか?この種のエラーは 'apt'に対する複数の同時アクセスを示します。また、https://github.com/ansible/ansible/search?q=%22Failed+to+lock+apt+for+exclusive+operation%22&type=Issues&utf8=%E2%9C%93をご覧ください – zigarn