Amazon Linux 2
yum
インスタンスは、複数のタスクを順次実行するAnsible PlayBookによって運営されています。
プロセスの競合によって中断されずに後続のタスクを実行するには、
yum
次の構文で具体的にどのような変更が必要ですか?
現在の2番目のタスクは、Ansibleがまだリリースされていない以前のyum
タスクをどのように処理するかわからないため、失敗します。 yum
yum
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