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
- 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
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 .