yumロックファイルは他のユーザーが持っています。

yumロックファイルは他のユーザーが持っています。

Amazon Linux 2yumインスタンスは、複数のタスクを順次実行するAnsible PlayBookによって運営されています。

プロセスの競合によって中断されずに後続のタスクを実行するには、yum次の構文で具体的にどのような変更が必要ですか?

現在の2番目のタスクは、Ansibleがまだリリースされていない以前のyumタスクをどのように処理するかわからないため、失敗します。 yumyum lockfile

以下の2番目の操作を呼び出すときに記録された現在のエラーメッセージは次のとおりですyum

TASK [remove any previous versions of specific stuff] ************************************************************************************************************************************
fatal: [10.1.0.232]: FAILED! => {"changed": false, "msg": "yum lockfile is held by another process"}

現在、2つの連続yum操作が次のように書かれています。

 - name: Perform yum update of all packages
   yum:
     name: '*'
     state: latest

 - name: remove any previous versions of specific stuff
   yum:
     name: thing1, thing2, thing3, thing4, thing5, thing6
     state: absent

私の考えの解決策は、Ansibleが最初のタスクのロックがyum解除されるのを待つように指示することを追加することです。では、どの構文を使用する必要がありますか?

答え1

Ansible 2.8でこの問題が発生していると確信しています。これで、YUMパッケージのインストールを実行するとクラッシュします。この問題を解決する簡単な方法はlock_timeoutデフォルト値が0なので、varを100+に設定することです。

- name: Install yum utils
  yum:
    name:
    - yum-utils
    - "@Development tools"
    lock_timeout: 180

残念ながら、これの問題は、YUMパッケージをインストールするAnsibleタスクが多い場合は、各タスクにこのvarを追加する必要があることです。私はこれをグローバルに設定する方法を探していましたが、楽しみはありませんでした。役に立ったことを願っています!

リンク: https://github.com/ansible/ansible/issues/57189 https://docs.ansible.com/ansible/latest/modules/yum_module.html

関連情報