여러 리포지토리가 활성화된 클라우드 환경에서 실행 중인 인스턴스가 있습니다. 어떻게 특정 리포지토리에만 패치를 적용할 수 있습니까? yum은 비OS 리포지토리의 패키지를 업데이트하면 안 됩니다.
예 - yum repolist repo1 - 소스 OS 공급자 repo2 - 소스 OS 공급자 repo3 - 소스 타사 애플리케이션
스크립트:
yum:
name: *
state: latest
yum이 타사 저장소의 패키지를 업데이트하지 못하도록 제한하는 방법.
- 타사 저장소 구성 파일을 이동하고 싶지도 않고 비활성화하고 싶지도 않습니다.
어떤 조언이라도 매우 도움이 될 것입니다.
답변1
yum
모든 패키지에 업데이트하지 않도록 지시해야 합니다 . 다음은 모든 git, bash 및 php 패키지 업데이트를 제외하는 예입니다.
- hosts: webservers
tasks:
- name: Exclude some packages from upgrade in Ansible.
yum:
name: "*"
state: latest
exclude:
- git*
- bash*
- php*
IMHO, 인벤토리를 업데이트하려는 각 작업에 대해 리포지토리를 비활성화하고 활성화하는 것은 모든 리포지토리 패키지를 제외 목록에 쓰는 것보다 작업량이 적습니다.
참조 enabled
및 exclude
문서를 참조하세요.
https://docs.ansible.com/ansible/2.3/yum_repository_module.html
답변2
이는 특이한 작업이며 yum에서는 지원되지 않습니다.
자신만의 로컬 저장소를 생성하세요.맨페이지 재동기화
그리고 yum update
그들을 뛰어넘어,
아니면 yum check-update
다음을 실행하세요 yum list available
. 결과의 세 번째 열은 grep
원하는 패키지만 설치할 수 있는 저장소입니다.
Available Packages
2048-cli.x86_64 0.9.1-1.el6 epel
참고: 타사 저장소 프로필을 이동하는 것은 저장소를 비활성화하는 것과 다릅니다.
비활성화는 enabled=0
저장소 파일에만 설정되어 있으며 계속 표시됩니다 yum repolist disabled
. 비활성화, 업데이트, 활성화는 원하는 것과 동일한 결과를 얻는 가장 간단하고 일반적인 방법입니다.