Amazon Linux 2
yum
인스턴스는 여러 작업을 차례로 수행하는 Ansible 플레이북에 의해 작동됩니다 .
yum
프로세스 충돌로 인해 중단 없이 연속 작업을 실행 하려면 아래 구문에서 구체적으로 어떤 변경이 필요합니까 ?
현재 yum
아래 두 번째 작업은 이전 yum
작업이 아직 yum
lockfile
.
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"}
두 개의 연속 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에 지시하는 것을 추가하는 것이라고 생각합니다. 하지만 이를 위해 어떤 구문을 사용해야 합니까?
답변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