Ansible 플레이북은 특정 저장소에서 패치를 가져옵니다.

Ansible 플레이북은 특정 저장소에서 패치를 가져옵니다.

여러 리포지토리가 활성화된 클라우드 환경에서 실행 중인 인스턴스가 있습니다. 어떻게 특정 리포지토리에만 패치를 적용할 수 있습니까? 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, 인벤토리를 업데이트하려는 각 작업에 대해 리포지토리를 비활성화하고 활성화하는 것은 모든 리포지토리 패키지를 제외 목록에 쓰는 것보다 작업량이 적습니다.

참조 enabledexclude문서를 참조하세요. 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. 비활성화, 업데이트, 활성화는 원하는 것과 동일한 결과를 얻는 가장 간단하고 일반적인 방법입니다.

관련 정보