Mam 1 maszynę wirtualną, jest na niej kilka aplikacji. Każda aplikacja działa pod własnym użytkownikiem.
host:
– host1
users:
– app1
– app2
Mają podobne pliki konfiguracyjne, różnica polega na nazwach i niektórych poufnych danych. Czy istnieje więc sposób na uruchomienie 1 zadania dla kilku użytkowników na 1 hoście z równoległym ansible.
coś takiego
Inwentarz:
[webservers:children]
app1
app2
[app1]
127.0.0.1
[app2]
127.0.0.1
group_vars / app1 / vars.yml:
---
app_user: app1
var2: value
group_vars / app2 / vars.yml:
---
app_user: app2
var2: value
zadania / test.yml:
---
- hosts: webservers
tasks:
- name: Copy config
become: true
become_user: {{ app_user }}
template: ....
Wywołanie zadania w ten sposób działa tylko z pierwszą aplikacją. Rozumiem, że mogę stworzyć podręcznik dla każdego użytkownika aplikacji lub napisać jeden podręcznik z sekwencją zadań dla każdego użytkownika aplikacji, ale czy istnieje sposób, jak zrobić to, co chcę?
Spróbowałbym utworzyć rolę i nazwać ją wiele razy, podając tam różne zmienne (użytkowników).
Zabrano stąd . W ten sposób ponownie wykorzystasz swój kod (jeśli zadania są bardzo podobne).
źródło