ansible 플레이 북에 다른 역할의 작업 포함
저는 개별 작업으로 일종의 플레이 북 라이브러리를 디자인하고 있습니다.
그래서 일반적인 역할 repo에는 다음과 같은 것이 있습니다.
roles
├── common
│ └── tasks
│ ├── A.yml
│ ├── B.yml
│ ├── C.yml
│ ├── D.yml
│ ├── login.yml
│ ├── logout.yml
│ └── save.yml
├── custom_stuff_workflow
│ └── tasks
│ └── main.yml
└── other_stuff_workflow
└── tasks
└── main.yml
custom_stuff_workflow의 내 main.yml에는 다음과 같은 내용이 포함됩니다.
---
- include: login.yml
- include: A.yml
- include: C.yml
- include: save.yml
- include: logout.yml
그리고 이것은 다른 워크 플로우에 있습니다.
---
- include: login.yml
- include: B.yml
- include: A.yml
- include: D.yml
- include: save.yml
- include: logout.yml
자연스럽게 할 방법을 찾을 수 없습니다. 모든 작업을 단일 역할에 포함하고 custom_stuff_workflow를 포함하면서 관련 작업에 태그를 지정하는 것이 효과적이었습니다.
내가 가진 문제는 호출 플레이 북에 태그를 설정할 수 없다는 것입니다. 명령에 #!
의해 처리되는 yml에 헤더 가 있으면 좋을 것입니다 ansible-playbook
)
각 워크 플로에서 관련 작업 (위 트리의 공통 항목 내부)을 복사 할 수도 있지만 반복하고 싶지는 않습니다.
누군가가 다른 역할에 대해 작업을 반복하지 않고 내가 원하는 것을 달성 할 수있는 솔루션을 볼 수 있습니까?
내 문제의 초석은 내가 작업을 개인으로 정의하고 ansible에서 자연스럽지 않은 것 같습니다 ...
고마워
추신 : 워크 플로의 작업은 특정 순서로 수행되어야하며 추상화하는 유일한 단계는 로그인 및 저장 / 로그 아웃입니다.
PPS :이 질문을 본 적이 있습니다 . Ansible의 다른 역할 내에서 역할을 어떻게 호출합니까? 하지만 역할에있는 작업의 하위 집합이 아닌 전체 역할을 호출하므로 내 문제가 해결되지 않습니다.
다른 사람이이 문제에 부딪 힐 경우를 대비 하여 Ansible 버전 2.2 에는 이제 include_role
. 이제 이와 같은 작업을 할 수 있습니다.
---
- name: do something
include_role:
name: common
tasks_from: login
예, Ansible은 작업을 개별 구성 요소로 좋아하지 않습니다. 역할을 사용하기를 원한다고 생각하지만 단순하고 재사용 가능한 작업에 역할을 사용하지 않는 이유를 알 수 있습니다.
현재 두 가지 가능한 해결책이 있습니다.
1. 작업 파일을 역할로 만들고 종속성 사용
그런 다음 custom_stuff_workflow에서 이와 같은 작업을 수행 할 수 있습니다.
dependencies:
- { role: login }
참조 : https://docs.ansible.com/playbooks_roles.html#role-dependencies
2. 작업 파일에 대한 "하드 코딩 된"경로와 함께 포함을 사용합니다.
- include: ../../common/tasks/login.yml
방금 한 짧은 테스트 플레이 북에서 꽤 잘 작동했습니다. 이러한 포함에 매개 변수 등을 사용할 수도 있습니다.
See: http://docs.ansible.com/ansible/latest/playbooks_reuse.html
I hope I understood that question correctly and this helps.
참고URL : https://stackoverflow.com/questions/30192490/include-tasks-from-another-role-in-ansible-playbook
'programing' 카테고리의 다른 글
캐시 적중과 캐시 미스 란 무엇입니까? (0) | 2020.11.18 |
---|---|
Sublime Text 3에서 기본 설정 변경 (0) | 2020.11.18 |
Apache 로그 파일을 회전하는 가장 좋은 방법 (0) | 2020.11.18 |
디스어셈블러를 작성하는 방법? (0) | 2020.11.18 |
JQuery Slider, "단계"크기 변경 방법 (0) | 2020.11.18 |