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
:
sudo apt update
sudo apt install curl jq make
On récupère le projet de l'operator AWX :
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 :
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é) :
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 :
$ 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 :
$ 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 :
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 :
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é.
Voilà fini pour cette mise à jour aujourd'hui. A bientôt.