Skip to content

Instantly share code, notes, and snippets.

@carreirorco
Last active January 28, 2022 00:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carreirorco/aa0d628bed5e87af6b5d062a85761ec9 to your computer and use it in GitHub Desktop.
Save carreirorco/aa0d628bed5e87af6b5d062a85761ec9 to your computer and use it in GitHub Desktop.
Install-AWX-19.5.0

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
@carreirorco
Copy link
Author

it's public now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment