2017-09-07 3 views
0

apt-get dist-upgradeを含むAnsibleプレイブックを作成しました。私はbecome: truebecome_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: truebecome_user: rootsudo: 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 
+0

本番システム上の '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

答えて

0

aptコマンドを中断したようです。実行して/var/lib/apt下aptのロックファイルを削除しよう:

sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock

関連する問題