yum ロックファイルは別のユーザーによって保持されています

yum ロックファイルは別のユーザーによって保持されています

Amazon Linux 2yumインスタンスは、複数のタスクを次々に 実行する Ansible Playbook によって操作されます。

yumプロセスの競合により停止することなく後続のタスクを実行するには、以下の構文にどのような具体的な変更を加える必要がありますか?

現在、以下の 2 番目のタスクは、前のタスクがまだ を解放していないyumことを Ansible が認識して処理する方法がわからないため、失敗しています。 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 に設定されているので、変数を 100 以上に設定することです。

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

残念ながら、これの問題は、YUM パッケージをインストールする Ansible タスクが多数ある場合、この変数をすべてのタスクに追加する必要があることです。私はこれを何らかの方法でグローバルに設定する方法を探していましたが、うまくいきませんでした。お役に立てば幸いです。

リンク: 参考: yum モジュールは、以下の URL からダウンロードできます。

関連情報