2017-01-27 2 views
-1

우분투에서 이와 같은 패키지를 설치하려고 시도 할 때마다 (예 :)apt-able에 변수를 등록하지 않음

- name: Install gcc 
    apt: 
    name: gcc 
    state: present 
    allow_unauthenticated: yes 
    register: aptout 

gcc가 설치되어 있지 않은지 여부에 관계없이 나는 이것을 aptout으로 가져옵니다.

- debug: 
    msg: "Status is {{ aptout }}" 

.

"msg": "Status is {'skipped': True, 'changed': False, 'skip_reason': u'Conditional check failed'}" 

나는 패키지가 이미 not aptout.changedaptout.changed를 사용하여 설치하는 경우 나 작업을 건너 뛸 수 있도록이 검사를 등록하고 싶었지만 제대로 변수를 등록하지 않을 것으로 보인다.

이 작업은 redhat/centos에서 제대로 작동하지만 우분투에서 문제를 파악할 수 없습니다.

+1

[MCVE] (https://stackoverflow.com/help/mcve)를 게시하십시오. 자신이해야 할 일을 혼란스럽게 생각한다면 -이 질문의 코드 (현재 실행중인 코드가 아닌)부터 시작하여 게시 한 오류가 발생할 때까지 추가하십시오. 당신이 그것을 얻을 때 - 전체 코드를 게시하고 현재 실행중인 전체 코드가 아니라 문제를 복제하는 데 필요한 최소한의 코드를 게시하십시오. – techraf

+0

[이] (http://chaosmail.github.io/programming/2015/03/04/install-deb-packages-in-ansible/) 시도 – Roopendra

답변

1

모든 것이 예상대로 작동합니다.

apt_out = { 'skipped': True, 
      'changed': False, 
      'skip_reason': u'Conditional check failed'} 

Ansible은 당신의 작업이 실행되지 않았 음을 말한다 (? 당신이 예에 포함되지 않은 이유) skipped: true을 때문에 거짓 조건.

이벤트가이 작업을 시작하지 않았기 때문에 gcc이 설치되어 있는지 여부는 추측 할 수 없습니다.

+0

당신은 2.1 또는 2.2 (나는 2.1 사용)를 사용하고 있습니까? ? 문제는 gcc의 설치 여부와 상관없이 계속해서 말하고 있다는 것입니다. 원래 서버에 없으면 건너 뛴 것으로 표시해서는 안됩니다. – user1165419

+0

@ user1165419 당신은'when' 명령문을 사용합니다.이 명령문은 여러분의 플레이 북 실행 중에 거짓으로 평가됩니다 - 그래서 당신의 작업은 건너 뛰었습니다. 'when' 문을 제거하면 작업이 항상 실행되어'changed' 값을줍니다. –

+0

네 말이 맞아. 나는 full playbook을 게시 할 필요가있다. 나는 우분투와 센소스 모두에 동일한 변수를 사용하여 gcc를 설치하려고 시도하고 있다고 생각한다. 그래서 우분투에 설치하고 싶을 때, 설치 (변수를 '변경'으로 등록)하고, 센스 (건너 뛴 것과 같은 변수를 등록)를 건너 뜁니다. 이것은 우리가보고있는 것입니다. 흠, 작업을 건너 뛸 때 변수 등록을 피하는 방법을 찾아야합니다. – user1165419