Aller au contenu

Mettre à jour Ansible AWX sur Kubernetes

logo ansible

Il y a quelques semaines je vous avais expliqué comment installer Ansible AWX au moyen de l’opérateur Kubernetes. Voilà depuis de nouvelles versions ont été publiées et donc voyons comment mettre à jour votre installation. Vous pouvez vérifier les releases d’Ansible AWX disponibles depuis cette page.

Installation des prérequis

Passons au vif du sujet et commençons par installer les outils requis. Si ce n’est pas encore fait, il faudra installer curl, make et jq :

Terminal window
sudo apt update
sudo apt install curl jq make

On récupère le projet de l’operator AWX :

Terminal window
git clone https://github.com/ansible/awx-operator.git
cd awx-operator

Configuration de l’environnement

Comme pour l’installation il faut définir quelques variables et configurer kubectl sur le namespace où vous avez installé votre AWX. Affichons ensuite la version de l’opérateur en cours :

Terminal window
export NAMESPACE=awx
kubectl config set-context --current --namespace=$NAMESPACE
kubectl describe pod awx-operator-controller-manager | grep quay.io/ansible/awx-operator

Ensuite, nous allons récupérer la dernière version de l’opérateur (attention à ne pas confondre avec la version d’ansible AWX qui sera installé) :

Terminal window
export RELEASE_TAG=`curl -s https://api.github.com/repos/ansible/awx-operator/releases/latest | grep tag_name | cut -d '"' -f 4`
git checkout $RELEASE_TAG
echo $RELEASE TAG

Si la version est différente vous pouvez alors passer à sa mise à jour. Il faut dans un premier retirer l’ancienne version.

Désinstallation de l’operator AWX

Il faut retirer dans un premier temps l’opérateur actuel :

Terminal window
$ kubectl delete deployment awx-operator-controller-manager
deployment.apps "awx-operator-controller-manager" deleted
$ kubectl delete serviceaccount awx-operator-controller-manager
serviceaccount "awx-operator-controller-manager" deleted
$ kubectl delete rolebinding awx-operator-awx-manager-rolebinding
rolebinding.rbac.authorization.k8s.io "awx-operator-awx-manager-rolebinding" deleted
$ kubectl delete role awx-operator-awx-manager-role
role.rbac.authorization.k8s.io "awx-operator-awx-manager-role" deleted

Si on check nos pods, AWX et sa base de données postgres sont toujours présents :

Terminal window
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
awx-postgres-0 1/1 Running 0 30d
awx-66596c8fcb-s28tw 4/4 Running 0 30d

Installation de la nouvelle version de l’opérateur AWX

C’est similaire à l’installation que vous aviez faite. Une seule commande :

Terminal window
make deploy
cd config/manager && /home/user/awx-operator/bin/kustomize edit set image controller=quay.io/ansible/awx-operator:0.14.0
/home/user/awx-operator/bin/kustomize build config/default | kubectl apply -f -
namespace/my-namespace created
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com created
serviceaccount/awx-operator-controller-manager created
role.rbac.authorization.k8s.io/awx-operator-leader-election-role created
role.rbac.authorization.k8s.io/awx-operator-manager-role created
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-manager-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created

Normalement les anciens pods devrait être remplacé par de nouveau. Pas de panique, vous n’allez perdre aucune donnée puisqu’elles sont stockées dans des volumes persistants. Vous pouvez suivre le bon déroulement dans les logs du pod du manager :

Terminal window
kubectl logs --follow deployments/awx-operator-controller-manager -c awx-manager

[CTRL] + [C] pour quitter.

Accès au tableau de bords

Comme lors de l’installation, vous pouvez accéder au tableau de bord d’AWX. Je vous renvoie au billet d’installation. Vous pouvez vous rendre sur la page status pour vérifier la version installé.

Ansible awx upgrade

Voilà fini pour cette mise à jour aujourd’hui. A bientôt.