Por: @jonasc
Publicado em: 2021-04-08

AWX CLI

Pacotes necessários

Ansible-tower CLI

Instalação

CentOS 8:

dnf config-manager --add-repo https://releases.ansible.com/ansible-tower/cli/ansible-tower-cli-centos8.repo
dnf install ansible-tower-cli

Outras plataformas:

pip3 install --user https://releases.ansible.com/ansible-tower/cli/ansible-tower-cli-latest.tar.gz

Configuração

No AWX é preciso habilitar criação de personal token em Settings > System > ALLOW EXTERNAL USERS TO CREATE OAUTH2 TOKENS

Autenticação

Criação do Token:

MINHA_SENHA=`cat /tmp/minha_senha`
curl -XPOST -k -H "Content-type: application/json" \
-d '{"description":"Personal Tower CLI token", "application":null, "scope":"write"}' \
http://gitlab-ci:$MINHA_SENHA@awx.itflex.com.br/api/v2/users/46/personal_tokens/ | python -m json.tool

Salve o token em local seguro.

Usando o token para awx CLI:

AWXTOKEN=`cat /tmp/meu_token`
awx --conf.host http://awx.itflex.com.br --conf.token $AWXTOKEN --help

Comandos utilizados para gerenciamento

Alterando SCM BRANCH/TAG/COMMIT de um projeto:

awx --conf.host http://awx.itflex.com.br --conf.token $AWXTOKEN projects modify 59 --scm_branch master

Sincronizar um projeto:

awx --conf.host http://awx.itflex.com.br --conf.token $AWXTOKEN projects update 59

Rodando um playbook:

awx --conf.host http://awx.itflex.com.br --conf.token $AWXTOKEN job_templates launch 13 --monitor --inventory 53

Rodando um workflow:

awx --conf.host http://awx.itflex.com.br --conf.token $AWXTOKEN workflow_job_templates launch 17 --monitor --inventory 53