Załóżmy, że mam rolę o nazwie „apache”
Teraz chcę wykonać tę rolę na hoście 192.168.0.10 z wiersza poleceń z hosta Ansible
ansible-playbook -i "192.168.0.10" --role "path to role"
Czy jest na to sposób?
ansible
ansible-role
Karl
źródło
źródło
'ERROR! 'async_val' is not a valid attribute for a IncludeRole'.
-a "name=<role_name> public=yes"
, ale to nie pomogło.-m <module-name>
) z parami klucz = wartość jako argumentami (-a key=value
)W Ansible nie ma czegoś takiego, ale jeśli jest to częsty przypadek użycia, wypróbuj ten skrypt.
Umieść go gdzieś w swojej przeszukiwalnej PATH pod nazwą
ansible-role
:źródło
ansible localhost -m include_role -a name=myrole
- działa dla mnie!ansible localhost -m include_role -a name=myrole
jest uszkodzony od ansibla 2.8. Po prostu rejestruje tajemnicze komunikaty o błędach, takie jak'ERROR! 'async_val' is not a valid attribute for a IncludeRole'.
Możesz również sprawdzić repozytorium ansible-toolbox . Pozwoli ci to użyć czegoś takiego
źródło
Napisałem małą wtyczkę Ansible o nazwie
auto_tags
, która dynamicznie generuje dla każdej roli w twoim playbooku tag o tej samej nazwie. Znajdziesz go tutaj .Po zainstalowaniu go (instrukcje są w istocie powyżej) możesz następnie wykonać określoną rolę za pomocą:
ansible-playbook -i "192.168.0.10" --tags "name_of_role"
źródło
Czy próbowałeś tego? to jest super fajne. Używam roli „update-os” zamiast roli „apache”, aby podać bardziej znaczący przykład. Mam rolę nazwie powiedzmy Spójrzmy prawdzie
./roles/update-os/
w moim./
dodaję plik o nazwie./role-update-os.yml
, która wygląda tak:Spraw, aby ten plik był wykonywalny (
chmod +x role-update-os.yml
). Teraz możesz biegać i ograniczać do tego, co masz w ekwipunku,./update-os.yml -i inventory-dev --limit 192.168.0.10
do limitu możesz również przekazywać nazwy grup.--limit web,db
> web i db to grupa zdefiniowana w Twoim ekwipunku--limit 192.168.0.10,192.168.0.201
Zwróć uwagę, że możesz skonfigurować zasady ssh-keys i sudoers, aby mogły być wykonywane bez konieczności wpisywania hasła - idealne do automatyzacji, ma to wpływ na bezpieczeństwo. dlatego musisz przeanalizować swoje środowisko, aby sprawdzić, czy jest odpowiednie.
źródło
w ansiblu 2.8 działa nieco inaczej
źródło