2017-09-30 9 views
1

저는 Vagrant + Ansible을 프로젝트에 사용하고 있습니다. 사용자가 프로비저닝에 포함될 "작업 영역"이라는 역할을 제공하도록 선택적으로 만들고 싶습니다. 이실종자의 누락 된 역할을 무시할 수 있습니까?

오류와 함께 자신의 선호 프롬프트, 편집기 등 존재하지 않는 역할이 각본에 지정되어 있으면

, 모든 일의 충돌을 설정 할 수있게합니다! '작업 공간'역할을 찾을 수 없습니다 ...

간단하게 무시하고 계속 진행하고 싶습니다. 나는 failed_when: false을 추가하려고 노력했지만, 놀랄만큼 효과가 없었다. 역할이 존재 하는지를 확인할 수있는 조건을 공식화하는 것이 가능합니까? 아니면이 문제를 해결할 다른 방법이 있습니까?

답변

0

Conditionals에 대한 가능한 문서를 살펴보면 역할이 존재하는지 직접 확인할 수 있다고 생각하지 않습니다.

역할에 대한 디렉토리가 존재하는지 여부를 확인하여 작업을 수행하십시오. 역할에 대한 가능성있는 검색과 현재 플랫폼, 환경 또는 구성을 기반으로하는 여러 위치가 있기 때문에 약간 까다 롭습니다.

즉, 나는 약간 다른 접근법을 시도했다 : 미리 정의 된 역할 이름을 고집하는 대신, 가능한 변수를 통해 역할 이름을 요청할 수있다. 사용자가 자신의 역할 이름을 제공하지 않는 경우,이 역할이 포함되어 있지 않습니다

- name: Minimal playbook example 
    hosts: localhost 
    connection: local 
    vars: 
    role_name: "" 
    roles: 
    - role: "{{ role_name }}" 
     when: role_name != "" 

: 그럼 당신은 이런이 역할을 포함 할 수 있습니다. 또한 이것이 작동하려면 롤 이름 변수의 기본값을 지정해야합니다. 그렇지 않으면 정의되지 않은 변수에서 실패 할 수 있습니다 (is defined when 절을 추가하면 도움이되지 않습니다).