O AWX é uma plataforma de automação de TI de código aberto que fornece recursos para automação de tarefas operacionais, gerenciamento de configuração e orquestração de fluxos de trabalho. Ele é uma versão upstream do Red Hat Ansible Tower e é mantido pela comunidade.
O Ansible é uma ferramenta de automação de TI que permite automatizar tarefas de gerenciamento de configuração, implantação de aplicativos e orquestração de infraestrutura. O AWX, por sua vez, é uma implementação de código aberto do Ansible Tower, oferecendo uma interface web para criar, monitorar e executar playbooks Ansible.
Algumas das principais características do AWX incluem:
* Interface Gráfica:
Fornece uma interface web intuitiva para gerenciar e executar playbooks do Ansible.
* Controle de Acesso:
Permite configurar políticas de controle de acesso para diferentes usuários e equipes.
* Agendamento de Tarefas:
Oferece a capacidade de agendar a execução automatizada de playbooks em horários específicos.
*Histórico e Auditoria:
Registra o histórico de execução das tarefas e fornece recursos de auditoria.
* Integração com Outras Ferramentas:
Pode ser integrado a outras ferramentas e sistemas através de APIs.
* Orquestração:
Suporta a orquestração de fluxos de trabalho mais complexos envolvendo várias tarefas e servidores.
O AWX é útil para organizações que desejam adotar práticas de DevOps, automação de infraestrutura e gerenciamento de configuração para melhorar a eficiência operacional e reduzir a probabilidade de erros humanos em ambientes de TI.
Mão na Massa
Vamos instalar o Awx de forma single host , facilidando muito a instalação mas não é o ideal , o correto é ele rodar em cluster , mas isso fica outro tutorial
Instale o K3s
$ sudo curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.27.6+k3s1 sudo sh -s - --write-kubeconfig-mode 644
Reinicie o host
$ sudo systemctl reboot
AWX Operator
vamos clonar o repo do Kurokobo , pois vamos instalar de forma single host e onde podemos deixar nossas playbook centralizado no host também
$ git clone https://github.com/kurokobo/awx-on-k3s.git
$ cd awx-on-k3s/
$ git checkout 2.7.2
$ kubectl apply -k operator
e para ver se ficou ok
Vamos preparar as arquivos de configuração inicial
Crie o certificado
$ AWX_HOST="awx.home.local"
$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ./base/tls.crt -keyout ./base/tls.key -subj "/CN=${AWX_HOST}/O=${AWX_HOST}" -addext "subjectAltName = DNS:${AWX_HOST}"
Ajuste o hostname no arquivo base/awx.yaml
...
spec:
...
ingress_type: ingress
ingress_tls_secret: awx-secret-tls
hostname: awx.home.local 👈👈👈
...
Ajuste a senha no arquivo base/kustomization.yaml
..
- name: awx-postgres-configuration
type: Opaque
literals:
- host=awx-postgres-13
- port=5432
- database=awx
- username=awx
- password=Ansible123! 👈👈👈
- type=managed
- name: awx-admin-password
type: Opaque
literals:
- password=Ansible123! 👈👈👈
...
Vamos ajustar agora os dados persistentes ,
ajuste o arquivo base/pv.yaml e adicionar o caminho /home/<user>/data/..
$ cd ~
$ sudo mkdir -p data/postgres-13
$ sudo mkdir -p data/projects
$ sudo chmod 755 data/postgres-13
$ chown 1000:0 data/projects
Execute o Deploy
$ kubectl apply -k base
Podes acompanhar o progresso pelo comando
$ kubectl -n awx logs -f deployments/awx-operator-controller-manager
Após finalizado só acessar pelo hosname configurado
Referencia: https://github.com/kurokobo/awx-on-k3s