Bonjour Geeks, j'espère que vous connaissez Ansible AWX, sinon Ansible AWX est un outil graphique basé sur le Web pour gérer les playbooks ansible. Il existe de nombreuses autres fonctionnalités d'AWX en dehors de l'exécution des playbooks Ansible, telles que l'intégration de la gestion des sources, la journalisation du RBAC, etc.
En d'autres termes, on peut dire qu'Ansible AWX est considéré comme un projet en amont de Red HAT Ansible Tower. À partir de la version 18.x d'AWX et des versions ultérieures, le focus d'installation est déplacé de Docker vers Kubernetes. Ainsi, dans cet article, nous couvrirons l'installation étape par étape d'Ansible AWX sur Kubernetes Minikube.
Je suppose que Minikube est déjà installé sur votre système Linux. Sinon, utilisez l'URL ci-dessous :
- Comment installer Minikube sur Ubuntu 20.04 LTS / 21.04
Remarque : Assurez-vous de démarrer votre cluster minikube avec suffisamment de ressources (au moins 4 vCPU et 8 Go de RAM), dans mon cas, j'ai démarré minikube avec les ressources et options suivantes.
$ minikube start --addons=ingress --cpus=4 --cni=flannel --install-addons=true --kubernetes-version=stable --memory=8g
Vérifiez l'installation du cluster Minikube
Exécutez les commandes suivantes pour vérifier l'installation de minikube et l'état du cluster,
$ minikube status$ kubectl cluster-info$ kubectl get nodes
La sortie des commandes ci-dessus devrait ressembler à celle ci-dessous :
Parfait, ci-dessus confirme que minikube a été installé et démarré avec succès. Passons aux étapes d'installation d'AWX.
Étape 1) Installer l'opérateur AWX
Pour installer l'opérateur AWX, exécutez la commande kubectl suivante,
$ kubectl apply -f https://raw.githubusercontent.com/ansible/awx-operator/0.12.0/deploy/awx-operator.yaml
Sortie
Exécutez la commande ci-dessous pour confirmer si le module de l'opérateur AWX est démarré ou non. S'il n'est pas démarré, attendez quelques minutes car cela prend du temps,
[email protected] :~$ kubectl get podsNAME READY STATUS RESTARTS AGEawx-operator-79bc95f78-pb7tz 1/1 En cours d'exécution 0 5m23s[preemail protected>] :~$Étape 2) Créer un fichier yaml d'instance AWX
Créez un fichier ansible-awx.yml avec le contenu suivant
$ vi ansible-awx.yml---apiVersion :awx.ansible.com/v1beta1kind :AWXmetadata : nom :ansible-awxspec : service_type :nodeport ingress_type :aucun nom d'hôte :ansible-awx.example.comenregistrer et quitter le fichier.
Étape 3) Déployer une instance Ansible AWX
Maintenant, déployons l'instance AWX dans notre cluster en exécutant la commande ci-dessous,
[email protected] :~$ kubectl apply -f ansible-awx.ymlawx.awx.ansible.com/ansible-awx created[email protected] :~$Ci-dessus créera un déploiement avec le nom "ansible-awx" et ce déploiement aura deux pods et services.
Après quelques minutes, Ansible AWX sera déployé et si vous souhaitez surveiller les journaux d'installation, utilisez la commande ci-dessous,
$ kubectl logs -f déploiement/opérateur awxExécutez la commande ci-dessous pour vérifier l'état des pods AWX,
[email protected] : $ kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator"NAME READY STATUS RESTARTS AGEansible-awx-5ddfccf664-vrdq2 4/4 aw 0 postgres-0 1/1 En cours d'exécution 0 8m24s[email protected] :~$Exécutez la commande suivante pour afficher l'état du service,
[email protected] :~$ kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator"NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEansible-awx-postgres Cluster IP aucun> 5432/TCP 8m31sansible-awx-service NodePort 10.97.206.8980:32483/TCP 7m55s[email protected] :~$ Veuillez noter le port du nœud de « ansible-awx-service », nous l'utiliserons plus tard pour la redirection de port.
Étape 4) Accéder au portail AWX via le tunneling
Pour accéder au portail AWX en dehors du cluster minikube, nous devons configurer le tunneling, exécuter
[email protected] :~$ nohup minikube tunnel &[3] 35709[email protected] :~$[email protected] :~$ kubectl get svc ansible-awx-serviceNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S ) AGEansible-awx-service NodePort 10.97.206.8980:32483/TCP 90m[email protected] :~$ Définissez la redirection de port de manière à ce que, si la requête arrive sur l'IP minikube sur le port de nœud '32483', elle soit redirigée vers le port 80 du pod awx.
[email protected] :~$ kubectl port-forward svc/ansible-awx-service --address 0.0.0.0 32483:80 &> /dev/null &[4] 46686[email protected] :~$Essayez maintenant d'accéder au portail AWX à partir du navigateur Web en utilisant l'adresse IP minikube et le port de nœud 32483
http://
:
Pour obtenir les informations d'identification, revenez au terminal et exécutez sous la commande.
[email protected] :~$ kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" | base64 --decodePWrwGWBFCmpd1b47DJffCtK5SqYGzxXF[email protected] :~$Utilisez le nom d'utilisateur comme "admin" et le mot de passe comme sortie de la commande ci-dessus, après avoir entré les informations d'identification, nous obtiendrons le tableau de bord suivant
Génial, ci-dessus confirme qu'Ansible AWX est installé avec succès sur le minikube Kubernetes. C'est tout de cet article. J'espère que vous l'avez trouvé informatif et si vous avez des questions, n'hésitez pas à nous écrire dans la section des commentaires ci-dessous.
Lire aussi :Comment exécuter et planifier Ansible Playbook à l'aide de l'interface graphique AWX