2017-03-12 5 views
2

나는 역할 사이에서 항상 혼란스러워하고 있습니다.Ansible에서 역할과 작업 (및 태그)의 차이점은 무엇입니까?

태그를 사용하면 개별 항목에 태그를 추가 할 수 있지만 그 태그를 사용하는 방법은 혼란 스럽습니다.

의 내가 다음

Users 
    Create a user named "deploy" 
    Add ssh key for "deploy" user 

Git 
    Install git 
    Clone some git repo 

겠습니까 "사용자"를해야했다라고하자 "힘내"YML이 파일을 최상위 내 두 가지 주요 역할을 할? 각 하위 항목 (예 : "Install Git")이 작업입니까? 각 하위 작업에 태그를 붙일 수 있습니까? 또는 태그에 역할 태그를 추가합니까?

잠재력 계층 구조에 대한 개요를 찾고 있습니다.

+0

https://leucos.github.io/ansible-files-layout 읽기 – Kyslik

답변

5

tl; dr 작업은 단일 선언 (작업)입니다. 역할은 작업을 그룹화하는 여러 가지 방법 중 하나입니다.

  • Ansible의 작업은 다른 언어의 코드 행에 상응하는 일종의 기본 작업 단위입니다.

    작업이 실행되고 결과가 (ok, changed, failed) 있습니다.

    대부분의 경우 작업은 멱등을 처리하는 작업 모듈을 호출하여 작업을 선언적 프로그래밍 단위로 만듭니다.

    그러나 메타 작업, 포함 및 다른 명령에 대한 래퍼를 수행하는 작업이 있습니다.

  • Anipal의 역할은 일련의 작업 (기본 데이터, 템플릿, 처리기, 파일 포함)을보다 복잡한 정의로 그룹화하는 많은 추상화 계층 중 하나입니다.

    역할은 구현 세부 정보 (다른 언어의 함수, 프로 시저, 메서드와 유사 함)를 숨기고 코드를 쉽게 다시 사용할 수 있도록합니다.

은 "사용자"와 "힘내"최상위 YML 파일에 내 두 가지 주요 역할을 할 것인가?

무언가를 구성하는 유일한 방법은 없습니다.

다른 사용법을 사용하면 동일한 결과를 얻을 수 있습니다. Anabilities를 사용하는 방법은 자신의 (조직의) 목표에 달려 있습니다 : Anabilities 플레이 북을 작성하여 포함 된 전체 구성을 설명하는 선형 문서. 또는 의존성, 추상화 수준 및 모듈러 아키텍처로 복잡한 구성을 만들 수 있습니다.