Testado no Ubuntu 20.04 (LTS) x64
hospedado na Digital Ocean
Criar um usuário ubuntu
:
useradd -m -s /bin/bash -g sudo ubuntu
passwd ubuntu
su - ubuntu
Instalar o Docker:
sudo apt-get install -y ca-certificates curl gnupg lsb-release vim wget curl tmux make
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo groupadd docker
sudo usermod -aG docker ubuntu
newgrp docker
Instalar Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Iniciar o clustar Minikube
minikube start --cpus=4 --memory=6g --addons=ingress
Instalar kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Instalar k9s
wget https://github.com/derailed/k9s/releases/download/v0.25.18/k9s_Linux_x86_64.tar.gz
tar zxvf k9s_Linux_x86_64.tar.gz
sudo install -o root -g root -m 0755 k9s /usr/local/bin/k9s
Baixar última release do awx-operator (não clonar repositório)
wget https://github.com/ansible/awx-operator/archive/refs/tags/0.15.0.tar.gz
tar zxvf 0.15.0.tar.gz
cd awx-operator-0.15.0/
Executar deploy do awx-operator
export NAMESPACE=awx
make deploy
Executar a instalação do awx (editar o arquivo awx-demo.yml antes, se preferir)
kubectl apply -f awx-demo.yml -n $NAMESPACE
Exemplo de limites no awx-demo.yml
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx-demo
spec:
service_type: LoadBalancer
web_resource_requirements:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: 1000m
memory: 1Gi
task_resource_requirements:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: 1000m
memory: 1Gi
ee_resource_requirements:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: 1000m
memory: 1Gi
Obter o endereço do AWX para acessar no browser
minikube service awx-demo-service --url -n $NAMESPACE
Acompanhar logs até finalizar a instalação
kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager
Exemplo de finalização da instalação (acompanhar no log)
--------------------------- Ansible Task StdOut -------------------------------
TASK [Remove ownerReferences reference] ********************************
ok: [localhost] => (item=None) => {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false}
-------------------------------------------------------------------------------
{"level":"info","ts":1642425443.553704,"logger":"runner","msg":"Ansible-runner exited successfully","job":"5425187049001961146","name":"awx-demo","namespace":"awx"}
----- Ansible Task Status Event StdOut (awx.ansible.com/v1beta1, Kind=AWX, awx-demo/awx) -----
PLAY RECAP *********************************************************************
localhost : ok=61 changed=0 unreachable=0 failed=0 skipped=44 rescued=0 ignored=0
Por fim, basta obter a senha com o comando a seguir e acessar o browser com o usuário admin
kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" | base64 --decode
Caso esteja executando em alguma Cloud Pública, faça um port-forward para conseguir acessar o IP Externo:
kubectl port-forward service/awx-demo-service --address 0.0.0.0 32729:80 -n awx
it's public now