2016-12-29 3 views
4

리포에있는 실제 패키지 이름은 package-2.6.12-3.el7.x86_64입니다.가능 - 주요 버전에 고정 된 설치 패키지

목표로, Ansible로 패키지를 설치하는 것입니다 :

  • 포인트 릴리스 같은 설치되어 있는지 확인 패키지 2.6
  • 같은 패키지 3.0
  • 등 주요 릴리스를 설치하지 않는다 같은 패키지-2.6.13-4 REPO 수시로 패키지를 업데이트 할 수 있습니다,하지만 난 때를 모르는

같은 사소한 릴리스에 대한

  • 업데이트.

    제 생각에는 이와 같은 패키지를 설치해야했습니다.

    - name: Install package 
        yum: 
        name: package-2.6 
        state: present 
    

    package-2.6이 (가) repo에 없기 때문에 작업이 실패합니다. 단순히 package이 작동하는 반면, 미래의 증거는 아닙니다.


    는 업데이트 :

    와일드 카드 *do 작업, 예를 들어 package-2.6*을 보인다.

  • +0

    "name : package-2.6.12-3.el7.x86_64" –

    +0

    @YuriyZhigulskiy OP와 같이 마이너 버전을 지정하고 싶지 않다는 것을 분명하게 적어 놓았습니다. – techraf

    +0

    어떤 종류의 버전이 필요합니다. 나는 그것이 존재한다고 생각하지 않는다. –

    답변

    1

    하지 않습니다. 그러나 Java Open JDK 설치에서는 my-yum repos에서 java-1.7.0 및 java-1.8.0 패키지를 모두 설치할 수 있습니다.

    이렇게하면 1.7.x 버전이 1.8.x를 설치하지 않고도 최신 버전으로 유지됩니다.상기에서 설치

    - name: Install latest 1.7.x jdk 
        yum: 
        name: java-1.7.0-openjdk.x86_64 
        state: latest 
    

    실제 버전이다 MongoDB의 패키지 이름의 경우

    $ rpm -q java-1.7.0-openjdk.x86_64 
        java-1.7.0-openjdk-1.7.0.121-2.6.8.1.el6_8.x86_64 
    

    가 2.X 버전 및 3.X 버전과 동일하다.

    그러나 2.x 버전에는 Yum repo 파일이 있고 3.x 버전에는 또 다른 Yum repo 파일이 있습니다. https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 그래서

    당신이 이제까지 대상 호스트에 2.x는 REPO 파일을 추가 3.x 및 설치/업데이트에 대한 귀하의 ansible 작업에 disableenablerepo 매개 변수를 사용하여 이동하지 않고 최신 2.X 버전을 얻을 수 있도록 조작.

    - name: Ensure latest 2.x mongodb version is installed 
        yum: 
        name: mongodb-org 
        disablerepo: "*" 
        enablerepo: mongodb-org-2.6 
        state: latest 
    

    참고 : MongoDB를 패키지는 또한 EPEL 다른의 repos에 존재하는 disablerepo: "*"를 사용.

    1

    짧은 일반 답변 :

    당신은 와일드 카드 *을 사용할 수 있어야합니다.

    그러니 :

    - name: Install package 
        yum: 
        name: package-2.6* 
        state: latest 
    

    긴 케이스 구체적인 답변 :

    내가 특정 사건에 대한 AWS의 테스트 서버를 생성하고 와일드 카드가 실제로 CentOS는 7을 실행 (EC2 인스턴스를 작동합니까 것을 발견, `mongodb-org-server-3.4.0 * 설치하기).

    먼저 mongo 저장소를 올바르게 구성했는지 확인해야하지만 주석에 전체 버전 번호를 제공하는 경우 패키지를 다운로드 할 수 있다고 말한 경우가 있습니다. 이는 비정상적입니다.

    play.yml:

    - hosts: all 
        remote_user: centos 
        tasks: 
        - name: Add MongoDB repo for CentOS 
         become: true 
         copy: 
         src: ./files/mongodb-org-3.4.repo 
         dest: /etc/yum.repos.d/mongodb-org-3.4.repo 
        - name: Install mongodb 
         become: true 
         yum: 
         name: mongodb-org-server-3.4.0* 
         state: latest # Works with 'present' too, but won't update versions 
    

    이 각본 사본이처럼 보이는 환매 특약 설정을위한 로컬 파일 (경로 play.yml 파일에 상대적입니다) :

    을 어쨌든, 이것은 내가 만들어 실행 한 최소한의 각본이다 당신의 얌 패키지 (해당되는 경우) 확인

    files/mongod-org-3.4.repo:

    [mongodb-org-3.4] 
    name=MongoDB Repository 
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ 
    gpgcheck=1 
    enabled=1 
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc 
    
    +0

    작동하지 않습니다 ... – Kevin

    +0

    동일한 오류 (패키지를 찾을 수 없음) 또는 다른 것을 제공합니까? apt 패키지는 와일드 카드를 통과 시키지만 그렇지 않은 곳에서는 버그가 발생하기 때문에 yum에 대해 비슷한 점이 발생할 수 있습니다. –

    +0

    실제로 패키지를 찾을 수 없습니다. – Kevin