Skip to main content

Déploiement de AWX

Installation de awx

Les prérequis suivant sont nécéssaires

kubectl est installé et configuré pour se connecter à un cluster kubernetes

Création du dossier d'installation

mkdir ~/install-awx

Créer le fichier ~/install-awx/kustomization.yaml pour déployer la dernière version de awx-operator

  • Remplacer la valeur 2.18.0 par la dernière version disponible : https://github.com/ansible/awx-operator
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  # Find the latest tag here: https://github.com/ansible/awx-operator/releases
  - github.com/ansible/awx-operator/config/default?ref=2.18.0
  - awx-deploy.yml

# Set the image tags to match the git version from above
images:
  - name: quay.io/ansible/awx-operator
    newTag: 2.18.0

# Specify a custom namespace in which to install AWX
namespace: awx

Déployer awx-operator

cd ~/install-awx/
kubectl apply -k .

Création du fichier ~/install-awx/awx-deploy.yml 

---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: awx
spec:
  service_type: nodeport

Lancer l'installation de awx

cd ~/install-awx/
kubectl apply -k .

Suivre le déploiement en regardant les logs de déploiement

kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager -n awx

A la fin du déploiement vérifier que les 4 pods sont déployés

kubectl get pods -n awx
NAME                                               READY   STATUS    RESTARTS        AGE
awx-postgres-13-0                                  1/1     Running   2 (2d20h ago)   3d13h
awx-operator-controller-manager-66c5b94884-l8hkk   2/2     Running   6 (2d20h ago)   3d13h
awx-task-5c97798797-5q8tn                          4/4     Running   8 (2d20h ago)   3d13h
awx-web-7fcd58c7b9-md59b                           3/3     Running   6 (2d20h ago)   3d13h

Récupération des informations utiles

Récupérer le port exposé en local du service awx pour le proxifier/exposer par la suite

  • Dans l’exemple ci-dessous le port exposé est le port TCP 32524 qui expose le port interne 80
kubectl get service awx-service -n awx
NAME          TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
awx-service   NodePort   10.43.29.126   <none>        80:32524/TCP   3d13h

Récupérer le mot de passe du compte “admin” présent dans le secret “awx-admin-password” via la commande suivante

kubectl get secret awx-admin-password -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}' -n awx

Mise à jour de awx

Modifier le fichier ~/install-awx/kustomization.yaml pour déployer la dernière version de awx-operator

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  # Find the latest tag here: https://github.com/ansible/awx-operator/releases
  - github.com/ansible/awx-operator/config/default?ref=2.18.0
  - awx-deploy.yml

# Set the image tags to match the git version from above
images:
  - name: quay.io/ansible/awx-operator
    newTag: 2.18.0

# Specify a custom namespace in which to install AWX
namespace: awx

Exécuter les commandes suivantes pour mettre à jour awx

kubectl delete deployment awx-operator-controller-manager -n awx
kubectl delete serviceaccount awx-operator-controller-manager -n awx
kubectl delete rolebinding awx-operator-awx-manager-rolebinding -n awx
kubectl delete role awx-operator-awx-manager-role -n awx

cd ~/install-awx/
kubectl apply -k .