From d65fe53ef83720f0ac65786ba35f97d793ac8dad Mon Sep 17 00:00:00 2001 From: root Date: Tue, 30 Jan 2024 12:54:38 +0100 Subject: [PATCH] role AWX --- goss/s-awx.yaml | 6 ++++++ roles/awx/README.md | 33 +++++++++++++++++++-------------- roles/awx/tasks/main.yml | 24 ++++++++++++++++-------- 3 files changed, 41 insertions(+), 22 deletions(-) create mode 100644 goss/s-awx.yaml diff --git a/goss/s-awx.yaml b/goss/s-awx.yaml new file mode 100644 index 0000000..bde1f73 --- /dev/null +++ b/goss/s-awx.yaml @@ -0,0 +1,6 @@ +interface: + enp0s8: + exists: true + addrs: + - 172.16.0.22/24 + mtu: 1500 diff --git a/roles/awx/README.md b/roles/awx/README.md index 51cd0d9..40dbd6b 100644 --- a/roles/awx/README.md +++ b/roles/awx/README.md @@ -1,21 +1,26 @@ -# Rôle Kea +# Rôle awx *** -Rôle Kea: Configuration de 2 serveurs KEA en mode haute disponbilité. +Rôle awx: Configuration d'un serveur AWX avec k3s. ## Tables des matières - 1. [Que fait le rôle Kea ?] - 2. [Installation et configuration de ka] - 3. [Remarques] + 1. [Que fait le rôle AWX ?] + 2. [Connexion à l'interface WEB du serveur AWX] +**AWX** est l'application développée par **RedHat** permettant de lancer des playbooks **ansible** depuis une interface web évoluée plutôt qu'en ligne de commande. **AWX** utlise kubernetes mise en oeuvre ici avec **k3s**. -## Que fait le rôle Kea ? -Le rôle KEA permet de configurer 1 serveurs kea (s-kea1 et s-kea2) en mode haute disponibilité. -- Le serveur **s-kea1** sera en mode **primary** il délivrera les baux DHCP sur le réseau n-user. -- Le serveur **s-kea2**, sera en mode **stand-by** le service DHCP basculera donc sur **s-kea2** en cas disponibilité du serveur**s-kea1**. +## Que fait le rôle AWX ? +Le rôle **awx** installe et configure un serveur **AWX** avec **k3s** pour cela le role: +- Installe **k3s** en spécifiant l'adresse IP ainsi que l'interface d'écoute +- Clone le dépot **Github** **awx-on-k3s** +- Procéde au déploiement du pod **awx-operator** +- Génére un certifiacat auto-signé utlisée par le serveur **AWX** en utilisant **OpenSSL** +- Edite le fichier awx.yaml afin d'y indique le nom d'hote du serveur en accord avec le nom utlisé par les certificats +- Déploie le serveur **AWX** +- Test l'accésibilité du serveur **AWX**. -### Installation et configuration de kea +### Connexions à l'interface WEB du serveur AWX ### +Une fois le role **awx** terminé il est possible de se connecter à l'interface web duserveur depuis un navigateur. +S'assurer que votre machine puisse résoudre **s-awx.gsb.lan** +- Se connecter sur : **https://s-awx.gsb.lan** +- Utlisateur: **admin** / Mot de passe: **Ansible123!** -Le rôle kea installe les packets **kea dhcp4, hooks, admin** une fois les packets installer. Il configure un serveur kea pour qu'il distribue les ips sur le réseau n-user et soit en haute disponibilité. - -### Remarquees ### -Une fois le playbook **s-kea** correctement terminé et la machine **s-kea** redemarrée, redémarrée le service **isc-kea-dhcp4.service** afin de prendre en compte les modifications éfféctuées sur la couche réseau par le role POST. diff --git a/roles/awx/tasks/main.yml b/roles/awx/tasks/main.yml index cb39e80..58afbcf 100644 --- a/roles/awx/tasks/main.yml +++ b/roles/awx/tasks/main.yml @@ -1,8 +1,8 @@ --- -- name: Preparation +- name: Installation de k3s ... ansible.builtin.shell: curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.28.5+k3s1 sh -s - --write-kubeconfig-mode 644 --node-ip "{{ awx_ip }}" --flannel-iface "{{ awx_if }}" -- name: clonage du dépot awx-on-k3s +- name: Clonage du dépot awx-on-k3s git: repo: https://github.com/kurokobo/awx-on-k3s.git dest: "{{ awx_dir }}" @@ -26,12 +26,12 @@ #dest: "{{ awx_dir }}" #version: release-2.10.0 -- name: Generation de certification auto-signé +- name: Generation de certificat auto-signé avec OpenSSL ansible.builtin.shell: 'openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ./base/tls.crt -keyout ./base/tls.key -subj "/CN={{ awx_host }}/O={{ awx_host }}" -addext "subjectAltName = DNS:{{ awx_host }}"' args: chdir: "{{ awx_dir }}" -- name: Change hostname du fichier awx.yaml +- name: Changement de la ligne hostname dans le fichier awx.yaml replace: path: ~/tools/awx-on-k3s/base/awx.yaml regexp: 'awx.example.com' @@ -55,17 +55,25 @@ args: chdir: "{{ awx_dir }}" -- name: Finalisation de l'installation awx +- name: Test d'accésibilité de l'interface web AWX ansible.builtin.uri: - url: "http://s-awx.gsb.lan" + url: "https://s-awx.gsb.lan" follow_redirects: none method: GET + validate_certs: false register: _result until: _result.status == 200 - retries: 90 # 90*10 seconds = 15 min + retries: 60 # 90*10 seconds = 15 min delay: 10 # Every 10 seconds - +- debug: + msg: "L'installation du serveur AWX est terminée." + +- debug: + msg: "Connectez-vous sur: https://s-awx.gsb.lan" + +- debug: + msg: "Nom d'utilisateur: admin / mdp: Ansible123!"