This commit is contained in:
root 2024-01-30 12:54:38 +01:00
parent 451c8ba094
commit d65fe53ef8
3 changed files with 41 additions and 22 deletions

6
goss/s-awx.yaml Normal file
View File

@ -0,0 +1,6 @@
interface:
enp0s8:
exists: true
addrs:
- 172.16.0.22/24
mtu: 1500

View File

@ -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 ## Tables des matières
1. [Que fait le rôle Kea ?] 1. [Que fait le rôle AWX ?]
2. [Installation et configuration de ka] 2. [Connexion à l'interface WEB du serveur AWX]
3. [Remarques]
**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 ? ## Que fait le rôle AWX ?
Le rôle KEA permet de configurer 1 serveurs kea (s-kea1 et s-kea2) en mode haute disponibilité. Le rôle **awx** installe et configure un serveur **AWX** avec **k3s** pour cela le role:
- Le serveur **s-kea1** sera en mode **primary** il délivrera les baux DHCP sur le réseau n-user. - Installe **k3s** en spécifiant l'adresse IP ainsi que l'interface d'écoute
- Le serveur **s-kea2**, sera en mode **stand-by** le service DHCP basculera donc sur **s-kea2** en cas disponibilité du serveur**s-kea1**. - 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.

View File

@ -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 }}" 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: git:
repo: https://github.com/kurokobo/awx-on-k3s.git repo: https://github.com/kurokobo/awx-on-k3s.git
dest: "{{ awx_dir }}" dest: "{{ awx_dir }}"
@ -26,12 +26,12 @@
#dest: "{{ awx_dir }}" #dest: "{{ awx_dir }}"
#version: release-2.10.0 #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 }}"' 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: args:
chdir: "{{ awx_dir }}" chdir: "{{ awx_dir }}"
- name: Change hostname du fichier awx.yaml - name: Changement de la ligne hostname dans le fichier awx.yaml
replace: replace:
path: ~/tools/awx-on-k3s/base/awx.yaml path: ~/tools/awx-on-k3s/base/awx.yaml
regexp: 'awx.example.com' regexp: 'awx.example.com'
@ -55,17 +55,25 @@
args: args:
chdir: "{{ awx_dir }}" chdir: "{{ awx_dir }}"
- name: Finalisation de l'installation awx - name: Test d'accésibilité de l'interface web AWX
ansible.builtin.uri: ansible.builtin.uri:
url: "http://s-awx.gsb.lan" url: "https://s-awx.gsb.lan"
follow_redirects: none follow_redirects: none
method: GET method: GET
validate_certs: false
register: _result register: _result
until: _result.status == 200 until: _result.status == 200
retries: 90 # 90*10 seconds = 15 min retries: 60 # 90*10 seconds = 15 min
delay: 10 # Every 10 seconds 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!"