Suponha que eu tenha uma função chamada "apache"
Agora quero executar essa função no host 192.168.0.10 a partir da linha de comando do host Ansible
ansible-playbook -i "192.168.0.10" --role "path to role"
Existe uma maneira de fazer isso?
ansible
ansible-role
Karl
fonte
fonte
'ERROR! 'async_val' is not a valid attribute for a IncludeRole'.
-a "name=<role_name> public=yes"
, mas não ajudou.Não existe tal coisa no Ansible, mas se este for um caso de uso frequente para você, tente este script.
Coloque-o em algum lugar dentro de seu PATH pesquisável sob o nome
ansible-role
:fonte
ansible localhost -m include_role -a name=myrole
- funciona para mim!ansible localhost -m include_role -a name=myrole
está quebrado desde o ansible 2.8. Ele apenas registra mensagens de erro enigmáticas como'ERROR! 'async_val' is not a valid attribute for a IncludeRole'.
Você também pode verificar o repositório ansible-toolbox . Isso permitirá que você use algo como
fonte
Eu escrevi um pequeno plug-in Ansible, chamado
auto_tags
, que gera dinamicamente para cada função em seu manual uma tag com o mesmo nome. Você pode encontrar aqui .Depois de instalá-lo (as instruções estão na essência acima), você pode executar uma função específica com:
ansible-playbook -i "192.168.0.10" --tags "name_of_role"
fonte
Você já tentou isso? é super legal. Estou usando a função 'update-os' em vez da função 'apache' para dar um exemplo mais significativo. Eu tenho uma função chamada digamos
./roles/update-os/
no meu,./
eu adiciono um arquivo chamado./role-update-os.yml
que se parece com:Torne este arquivo executável (
chmod +x role-update-os.yml
). Agora você pode executar e limitar o que quer que tenha em seu inventário,./update-os.yml -i inventory-dev --limit 192.168.0.10
o limite que você pode passar os nomes dos grupos também.--limit web,db
> web e db é o grupo definido em seu inventário--limit 192.168.0.10,192.168.0.201
Observe que você pode configurar as políticas de ssh-keys e sudoers para serem executadas sem a necessidade de digitar a senha - ideal para automação, há implicações de segurança nisso. portanto, você deve analisar seu ambiente para ver se ele é adequado.
fonte
no ansible 2.8 funciona um pouco diferente
fonte