2016-10-04 1 views
0

나는 필자의 무책임한 플레이 북을 디자인 할 때 최선의 방법을 따르려고 노력하고있다. 그래서 플레이 북 파일 자체는 다음과 같습니다역할 사이에서 작업을 공유 할 때 나의 가능성있는 플레이 북을 올바르게 구성하는 방법

- hosts: ... 
roles: 
- dbservers 
- webservers 
- ... 

지금 나는 dbserers뿐만 아니라 webservers 역할을 수행 할 작업 check_proxy_and_firewalls있다.

어떻게 적절하게 구조화 할 수 있습니까? 내가 찾은 "best_practice"가이드는이 사례를 고려하지 않는 것 같습니다.

간단히 파일 common_tasks/check_proxy_and_firewalls.yml을 추가하고 필요한 역할에 포함시킬 수 있습니다. 그것이 그것을하는 방법인가?

답변

0

다른 playbook에서 작업을 재사용하는 적절한 방법은 명시한대로 포함을 사용하는 것입니다.

재생 목록이나 게임 플레이간에 작업 목록을 다시 사용한다고 가정 해보십시오. 이를 위해 include 파일을 사용할 수 있습니다. 포함 된 작업 목록을 사용하면 시스템이 수행 할 역할을 정의 할 수 있습니다.

에서 : Ansible Playbook Roles

파일을 포함하려면 단순히 작전이 추가 : 당신의 역할을 구조화하는 것은 크게 당신이 Ansible를 사용하는지에 따라 달라집니다

- include: path/to/task.yml 

. 내 역할은 다음과 같이 구성되어 있으므로 예를 들어, 나는 Windows 및 Linux 서버를 관리 :

roles 
    windows 
    <some_function> 
     tasks 
     vars 
    linux 
    <some_function> 
     tasks 
     vars 

너의이 ansible와 당신의 목표는 무엇인지에 따라 다를 수 있습니다.

+0

좋아, 여러 역할에 속하는 작업은 어디에 배치합니까? – Nathan

+0

역할 자체에는없는 것처럼 공유 작업을위한 모든 위치가 없습니다. 개인적으로, 나는 플레이 북에 포함하기 위해 가능한 한 적은 키 누름을 요구하는 위치에 그들을 배치 할 것입니다. 어딘가 공유/작업/main.yml 어쨌든 – Avalon

+0

또한 이것이 일회성 또는 이와 유사한 것이라면, 역할 자체에서 분리하는 것을 괴롭히지 않을 것입니다. 그리고 나는 원래 그것을 만든 역할 중 하나의 파일을 포함 시켰습니다. . – Avalon

관련 문제