Amazon Linux 2
インスタンスは、複数のyum
タスクを次々に実行するAnsible Playbookによって操作されます。
プロセスの競合により停止せずに連続する
yum
タスクを実行するには、以下の構文にどのような変更を加える必要がありますか?
現在、下の2番目の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
最初のタスクのyum
ロックが解放されるまで待機するようにAnsibleに指示する何かを追加することが解決策だと思います。しかし、これにはどの構文を使用する必要がありますか?
Ansible 2.8を使用してこの問題が発生していると確信しています。YUMパッケージのインストールを実行すると、すぐに問題が発生します。これを簡単に回避するには、lock_timeout
var to 100 +デフォルトは0に設定されているため。
- name: Install yum utils
yum:
name:
- yum-utils
- "@Development tools"
lock_timeout: 180
残念ながら、これに関する問題は、YUMパッケージをインストールする多くのAnsibleタスクがある場合、すべてのタスクにこの変数を追加する必要があることです。私はこれをグローバルに設定する方法を探しています。お役に立てば幸いです。
リンク: https://github.com/ansible/ansible/issues/57189https://docs.ansible.com/ansible/latest/modules/yum_module.html