Compare commits
19 Commits
v0.0.7t-jc
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
45e4401dcc | ||
|
dc50059f19 | ||
|
ada657401f | ||
|
b126e7f9e3 | ||
|
f9f3e8da8e | ||
|
be4f3b9030 | ||
c590edb875 | |||
3cd52a230e | |||
|
8dd65d65eb | ||
|
aac0f13134 | ||
|
ea60c89bf1 | ||
|
272867304a | ||
|
b53cd8c848 | ||
|
8ed9ebe6f8 | ||
|
c1fe781ca2 | ||
c2c1e8acb7 | |||
|
5176ad216c | ||
|
e45118eef1 | ||
|
959e056c5f |
16
README.md
16
README.md
@ -1,6 +1,8 @@
|
|||||||
# gsb2024
|
# gsb2024
|
||||||
|
|
||||||
2024-01-19 11h45 ps
|
* 2024-05-23 16h07 ps
|
||||||
|
* 2024-04-12 8h55 ps
|
||||||
|
* 2024-01-19 11h45 ps
|
||||||
|
|
||||||
Environnement et playbooks **ansible** pour le projet **GSB 2024**
|
Environnement et playbooks **ansible** pour le projet **GSB 2024**
|
||||||
|
|
||||||
@ -11,8 +13,8 @@ Prérequis :
|
|||||||
* VirtualBox
|
* VirtualBox
|
||||||
* git
|
* git
|
||||||
* fichier machines virtuelles **ova** :
|
* fichier machines virtuelles **ova** :
|
||||||
* **debian-bookworm-gsb-2023c.ova**
|
* **debian-bookworm-gsb-2024b.ova**
|
||||||
* **debian-bullseye-gsb-2024a.ova**
|
* **debian-bullseye-gsb-2024b.ova**
|
||||||
|
|
||||||
|
|
||||||
## Les machines
|
## Les machines
|
||||||
@ -49,12 +51,12 @@ Il existe un playbook ansible pour chaque machine à installer, nommé comme la
|
|||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
On utilisera les images de machines virtuelle suivantes :
|
On utilisera les images de machines virtuelle suivantes :
|
||||||
* **debian-bookworm-gsb-2023c.ova** (2023-12-18)
|
* **debian-bookworm-gsb-2024b.ova** (2024-05-23)
|
||||||
* Debian Bookworm 12.4 - 2 cartes - 1 Go - Stockage 20 Go
|
* Debian Bookworm 12.5 - 2 cartes - 1 Go - Stockage 20 Go
|
||||||
|
|
||||||
et pour **s-fog** :
|
et pour **s-fog** :
|
||||||
* **debian-bullseye-2024a.ova** (2024-01-06)
|
* **debian-bullseye-2024b.ova** (2024-04-11)
|
||||||
* Debian Bullseye 11.8 - 2 cartes - 1 Go - stockage 20 Go
|
* Debian Bullseye 11.9 - 2 cartes - 1 Go - stockage 20 Go
|
||||||
|
|
||||||
Les images **.ova** doivent etre stockées dans le répertoire habituel de téléchargement de l'utilisateur courant.
|
Les images **.ova** doivent etre stockées dans le répertoire habituel de téléchargement de l'utilisateur courant.
|
||||||
|
|
||||||
|
7
firewalld.yml
Normal file
7
firewalld.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
connection: local
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- firewalld
|
@ -5,7 +5,11 @@
|
|||||||
name: awx
|
name: awx
|
||||||
groups: sudo
|
groups: sudo
|
||||||
append: yes
|
append: yes
|
||||||
shell: /bin/bash
|
|
||||||
|
- name: Cration d'un mdp pour user awx
|
||||||
|
user:
|
||||||
|
name: awx
|
||||||
|
password: '$5$1POIEvs/Q.DHI4/6$RT6nl42XkekxTPKA/dktbnCMxL8Rfk8GAK7NxqL9D70'
|
||||||
|
|
||||||
- name: Get awx key_pub
|
- name: Get awx key_pub
|
||||||
get_url:
|
get_url:
|
||||||
|
@ -7,6 +7,12 @@
|
|||||||
shell: /bin/bash
|
shell: /bin/bash
|
||||||
generate_ssh_key: yes
|
generate_ssh_key: yes
|
||||||
|
|
||||||
|
#- name: Creation mdp user awx
|
||||||
|
# ansible.builtin.user:
|
||||||
|
#name:
|
||||||
|
#user: awx
|
||||||
|
# password: '$5$1POIEvs/Q.DHI4/6$RT6nl42XkekxTPKA/dktbnCMxL8Rfk8GAK7NxqL9D70'
|
||||||
|
|
||||||
- name: Copie cle publique dans gsbstore
|
- name: Copie cle publique dans gsbstore
|
||||||
copy:
|
copy:
|
||||||
src: /home/awx/.ssh/id_rsa.pub
|
src: /home/awx/.ssh/id_rsa.pub
|
||||||
|
26
roles/firewalld/README.md
Normal file
26
roles/firewalld/README.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Rôle awx
|
||||||
|
***
|
||||||
|
Rôle awx: Configuration d'un serveur AWX avec k3s.
|
||||||
|
|
||||||
|
## Tables des matières
|
||||||
|
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 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**.
|
||||||
|
|
||||||
|
### 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!**
|
||||||
|
|
91
roles/firewalld/tasks/main.yml
Normal file
91
roles/firewalld/tasks/main.yml
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
---
|
||||||
|
- name: Installation de firewalld
|
||||||
|
apt:
|
||||||
|
state: present
|
||||||
|
name:
|
||||||
|
- firewalld
|
||||||
|
|
||||||
|
- name: affectation de l'interface enp0s3 a la zone external
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: external
|
||||||
|
interface: enp0s3
|
||||||
|
permanent: true
|
||||||
|
state: enabled
|
||||||
|
|
||||||
|
- name: affectation de l'interface enp0s8 a la zone external
|
||||||
|
ansible.posix.firewalld:
|
||||||
|
zone: internal
|
||||||
|
interface: enp0s8
|
||||||
|
permanent: true
|
||||||
|
state: enabled
|
||||||
|
|
||||||
|
- name: FirewallD rules pour la zone internal
|
||||||
|
firewalld:
|
||||||
|
zone: internal
|
||||||
|
permanent: yes
|
||||||
|
immediate: yes
|
||||||
|
service: "{{ item }}"
|
||||||
|
state: enabled
|
||||||
|
with_items:
|
||||||
|
- http
|
||||||
|
- https
|
||||||
|
- dns
|
||||||
|
- ssh
|
||||||
|
- rdp
|
||||||
|
|
||||||
|
- name: FirewallD rules pour la zone internal
|
||||||
|
firewalld:
|
||||||
|
zone: external
|
||||||
|
permanent: yes
|
||||||
|
immediate: yes
|
||||||
|
service: "{{ item }}"
|
||||||
|
state: enabled
|
||||||
|
with_items:
|
||||||
|
- ssh
|
||||||
|
- rdp
|
||||||
|
#- ansible.posix.firewalld:
|
||||||
|
# zone: internal
|
||||||
|
# service: http
|
||||||
|
# permanent: true
|
||||||
|
# state: enabled
|
||||||
|
|
||||||
|
#- ansible.posix.firewalld:
|
||||||
|
# zone: internal
|
||||||
|
# service: dns
|
||||||
|
# permanent: true
|
||||||
|
#state: enabled
|
||||||
|
|
||||||
|
#- ansible.posix.firewalld:
|
||||||
|
# zone: internal
|
||||||
|
# service: ssh
|
||||||
|
# permanent: true
|
||||||
|
# state: enabled
|
||||||
|
|
||||||
|
#- ansible.posix.firewalld:
|
||||||
|
# zone: internal
|
||||||
|
# service: rdp
|
||||||
|
#permanent: true
|
||||||
|
#state: enabled
|
||||||
|
|
||||||
|
|
||||||
|
- ansible.posix.firewalld:
|
||||||
|
zone: internal
|
||||||
|
port: 8080/tcp
|
||||||
|
permanent: true
|
||||||
|
state: enabled
|
||||||
|
|
||||||
|
- ansible.posix.firewalld:
|
||||||
|
zone: external
|
||||||
|
port: 3389/tcp
|
||||||
|
permanent: true
|
||||||
|
state: enabled
|
||||||
|
|
||||||
|
- ansible.posix.firewalld:
|
||||||
|
port_forward:
|
||||||
|
- port: 3389
|
||||||
|
proto: tcp
|
||||||
|
toaddr: "192.168.99.6"
|
||||||
|
toport: 3389
|
||||||
|
state: enabled
|
||||||
|
immediate: yes
|
||||||
|
|
@ -3,12 +3,53 @@
|
|||||||
name: haproxy
|
name: haproxy
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
|
- name: Creer le repertoire du certificat
|
||||||
|
file:
|
||||||
|
path: /etc/haproxy/crt
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Creer le repertoire de la cle privee
|
||||||
|
file:
|
||||||
|
path: /etc/haproxy/crt/private
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Generer une clee privee avec les valeurs par defaut (4096 bits, RSA)
|
||||||
|
openssl_privatekey:
|
||||||
|
path: /etc/haproxy/crt/private/haproxy.pem.key
|
||||||
|
size: 4096
|
||||||
|
type: RSA
|
||||||
|
state: present
|
||||||
|
|
||||||
- name: creer un certificat auto-signé
|
- name: creer un certificat auto-signé
|
||||||
openssl_certificate:
|
openssl_certificate:
|
||||||
path: /etc/haproxy/crt/haproxy.crt
|
path: /etc/haproxy/crt/private/haproxy.pem
|
||||||
privatekey_path: /etc/haproxy/crt/private/haproxy.pem
|
privatekey_path: /etc/haproxy/crt/private/haproxy.pem.key
|
||||||
csr_path: /etc/haproxy/crt/csr/haproxy.csr
|
|
||||||
provider: selfsigned
|
provider: selfsigned
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: s'assurer que le certificat a les bonnes permissions
|
||||||
|
file:
|
||||||
|
path: /etc/haproxy/crt/private/haproxy.pem
|
||||||
|
owner: root
|
||||||
|
group: haproxy
|
||||||
|
mode: '0640'
|
||||||
|
|
||||||
|
- name: parametre global
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/haproxy/haproxy.cfg
|
||||||
|
block: |
|
||||||
|
global
|
||||||
|
log /dev/log local0
|
||||||
|
log /dev/log local1 notice
|
||||||
|
chroot /var/lib/haproxy
|
||||||
|
stats socket /run/haproxy/admin.sock mode 660 level admin
|
||||||
|
stats timeout 30s
|
||||||
|
user haproxy
|
||||||
|
group haproxy
|
||||||
|
daemon
|
||||||
|
ssl-server-verify none
|
||||||
|
|
||||||
- name: parametre backend et fontend
|
- name: parametre backend et fontend
|
||||||
blockinfile:
|
blockinfile:
|
||||||
@ -16,7 +57,7 @@
|
|||||||
block: |
|
block: |
|
||||||
frontend proxypublic
|
frontend proxypublic
|
||||||
bind 192.168.100.10:80
|
bind 192.168.100.10:80
|
||||||
bind 192.168.100.10:443 ssl crt /etc/haproxy/crt/pritvate/haproxy.pem
|
bind 192.168.100.10:443 ssl crt /etc/haproxy/crt/private/haproxy.pem
|
||||||
http-request redirect scheme https unless { ssl_fc }
|
http-request redirect scheme https unless { ssl_fc }
|
||||||
default_backend fermeweb
|
default_backend fermeweb
|
||||||
|
|
||||||
|
@ -7,11 +7,12 @@
|
|||||||
roles:
|
roles:
|
||||||
- base
|
- base
|
||||||
- s-ssh
|
- s-ssh
|
||||||
|
#- zabbix-cli
|
||||||
- dnsmasq
|
- dnsmasq
|
||||||
- squid
|
- squid
|
||||||
- ssh-backup-key-gen
|
- ssh-backup-key-gen
|
||||||
|
# awx-user
|
||||||
# - local-store
|
# - local-store
|
||||||
- zabbix-cli
|
|
||||||
## - syslog-cli
|
## - syslog-cli
|
||||||
- post
|
- post
|
||||||
# - goss
|
# - goss
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
- base
|
- base
|
||||||
- goss
|
- goss
|
||||||
- ssh-cli
|
- ssh-cli
|
||||||
|
- awx-user-cli
|
||||||
#- awx
|
#- awx
|
||||||
# - zabbix-cli
|
# - zabbix-cli
|
||||||
- journald-snd
|
- journald-snd
|
||||||
|
@ -6,12 +6,13 @@
|
|||||||
|
|
||||||
roles:
|
roles:
|
||||||
- base
|
- base
|
||||||
- zabbix-cli
|
#- zabbix-cli
|
||||||
- goss
|
- goss
|
||||||
- dns-master
|
- dns-master
|
||||||
- webautoconf
|
- webautoconf
|
||||||
# - elk-filebeat-cli
|
# - elk-filebeat-cli
|
||||||
# - journald-snd
|
- journald-snd
|
||||||
- ssh-cli
|
- ssh-cli
|
||||||
|
#- awx-user-cli
|
||||||
- post
|
- post
|
||||||
|
|
||||||
|
3
s-lb.yml
3
s-lb.yml
@ -5,7 +5,8 @@
|
|||||||
roles:
|
roles:
|
||||||
- base
|
- base
|
||||||
- goss
|
- goss
|
||||||
- lb-front
|
#- lb-front
|
||||||
|
- lb-front-ssl
|
||||||
#- zabbix-cli
|
#- zabbix-cli
|
||||||
- ssh-cli
|
- ssh-cli
|
||||||
- post
|
- post
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
mkvmrelease="v1.3.3"
|
mkvmrelease="v1.3.3"
|
||||||
|
|
||||||
ovarelease="2023c"
|
ovarelease="2024b"
|
||||||
ovafogrelease="2024a"
|
ovafogrelease="2024b"
|
||||||
#ovafile="$HOME/Téléchargements/debian-bullseye-gsb-${ovarelease}.ova"
|
#ovafile="$HOME/Téléchargements/debian-bullseye-gsb-${ovarelease}.ova"
|
||||||
ovafile="$HOME/Téléchargements/debian-bookworm-gsb-${ovarelease}.ova"
|
ovafile="$HOME/Téléchargements/debian-bookworm-gsb-${ovarelease}.ova"
|
||||||
ovafilefog="$HOME/Téléchargements/debian-bullseye-gsb-${ovafogrelease}.ova"
|
ovafilefog="$HOME/Téléchargements/debian-bullseye-gsb-${ovafogrelease}.ova"
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
#mkvm pour toutes les vms
|
#mkvm pour toutes les vms
|
||||||
|
|
||||||
$mkvmrelease="v1.3.1"
|
$mkvmrelease="v1.3.1"
|
||||||
$ovarelease="2023c"
|
$ovarelease="2024b"
|
||||||
$ovafogrelease="2024a"
|
$ovafogrelease="2024b"
|
||||||
$ovafile="$HOME\Downloads\debian-bookworm-gsb-${ovarelease}.ova"
|
$ovafile="$HOME\Downloads\debian-bookworm-gsb-${ovarelease}.ova"
|
||||||
$ovafilefog="$HOME\Downloads\debian-bullseye-gsb-${ovafogrelease}.ova"
|
$ovafilefog="$HOME\Downloads\debian-bullseye-gsb-${ovafogrelease}.ova"
|
||||||
$vboxmanage="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
|
$vboxmanage="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
|
||||||
@ -18,18 +18,20 @@ $vmMem = @{
|
|||||||
"s-infra" = "768"
|
"s-infra" = "768"
|
||||||
"s-backup" = "768"
|
"s-backup" = "768"
|
||||||
"s-elk" = "3072"
|
"s-elk" = "3072"
|
||||||
|
"s-awx" = "4096"
|
||||||
|
"s-peertube" = "4096"
|
||||||
}
|
}
|
||||||
|
|
||||||
$vmCpus = @{
|
$vmCpus = @{
|
||||||
"s-awx" = "4096"
|
"s-awx" = "2"
|
||||||
"s-peertube" = "4096"
|
"s-peertube" = "2"
|
||||||
}
|
}
|
||||||
#FONCTIONS
|
#FONCTIONS
|
||||||
|
|
||||||
function create_vm{ param([string]$nomvm)
|
function create_vm{ param([string]$nomvm)
|
||||||
|
|
||||||
if ($vmMem.ContainsKey($nomvm)) {
|
if (($vmMem.ContainsKey($nomvm)) -and ($vmCpus.ContainsKey($nomvm))) {
|
||||||
& "$vboxmanage" import "$ovafile" --vsys 0 --vmname "$nomvm" --memory $vmMem[$nomvm] --cpus $vmCpus[$nomvm}
|
& "$vboxmanage" import "$ovafile" --vsys 0 --vmname "$nomvm" --memory $vmMem[$nomvm] --cpus $vmCpus[$nomvm]
|
||||||
Write-Host "Machine $nomvm importée"
|
Write-Host "Machine $nomvm importée"
|
||||||
} else {
|
} else {
|
||||||
#Importation depuis l'ova
|
#Importation depuis l'ova
|
||||||
|
Loading…
x
Reference in New Issue
Block a user