Compare commits

..

9 Commits

Author SHA1 Message Date
b1e87cdd1e modification ping infra 2023-01-23 11:32:54 +01:00
7f7207cf46 ortho 2023-01-21 17:37:36 +01:00
1187a5e28d doc... 2023-01-21 17:36:02 +01:00
8cef3cbf6b doc ... 2023-01-21 17:08:20 +01:00
49ca8325e8 doc ... 2023-01-21 16:57:44 +01:00
08973e83b3 doc role nxc-traefik 2023-01-21 16:44:56 +01:00
79c7bd34e6 Maj lb-front 2023-01-20 09:46:08 +01:00
0cd9f1bb4c Correction fichier interface 2023-01-20 09:38:46 +01:00
4dd5b711e2 nettoyage 2023-01-20 09:15:54 +01:00
48 changed files with 200 additions and 78 deletions

View File

@ -0,0 +1,25 @@
- name: install haproxy
apt:
name: haproxy
state: present
- name: parametre backend et fontend
blockinfile:
path: /etc/haproxy/haproxy.cfg
block: |
frontend proxypublic
bind 192.168.56.2:80
default_backend fermeweb
backend fermeweb
balance roundrobin
option httpclose
#option httpchk HEAD / HTTP/1.0
server web1.test 192.168.56.3:80 check
#server web2.test 192.168.56.4:80 check
- name: redemarre haproxy
service:
name: haproxy
state: restarted
enabled: yes

View File

@ -2,34 +2,36 @@
Nextcloud et Traefik fonctionnent grâce à docker. Pour pouvoir faire fonctionner ce playbook, docker doit être installé. Nextcloud et Traefik fonctionnent grâce à docker. Pour pouvoir faire fonctionner ce playbook, docker doit être installé.
## Premièrement ## 1.
Le playbook va créer le dossier nxc à la racine de root. Deux fichier docker-compose "nextcloud.yml" et "traefik.yml" y seront copiés depuis le répertoire "files" du playbook. Le playbook crée le dossier **nxc** à la racine de root.
Enfin, dans le répertoire nxc, seront créé les dossier certs et config.
### Deuxièmement Les fichiers "nextcloud.yml" et "traefik.yml" y seront copiés depuis le répertoire "files" du playbook.
Le playbook va copier les fichiers placés dans "files" et les placer dans les bons répertoires. Enfin, dans le répertoire nxc, sont créés les répertoires **certs** et **config**.
#### Troisièmement ## 2. Copie des fichiers
Le playbook va créer un certificat x509 grâce à mkcert, il s'agit d'une solution permettant de créer Le playbook copie les fichiers placés dans "files" et les placer dans les bons répertoires.
des certificats auto-signés. Pour cela il télécharge mkcert sur s-adm (utiliser le getall).
mkcert sera placé dans : /usr/local/bin/ ## 3. Génération du certificat
Pour créer le certificat le playbook va executer des lignes de commandes (lancé depuis nxc/) : Le playbook crée un certificat **x509** grâce à **mkcert**, il s'agit d'une solution permettant de créer des certificats auto-signés. Pour cela, il télécharge **mkcert** sur **s-adm** (utiliser le script **getall**).
**mkcert** est placé dans : /usr/local/bin/
Pour créer le certificat, le playbook exécute les commandes (lancé depuis nxc/) :
``` ```
/usr/local/bin/mkcert -install # Installe mkcert /usr/local/bin/mkcert -install # Installe mkcert
/usr/local/bin/mkcert -key-file key.pem -cert-file cert.pem "hôte.domaine.local" "*.domaine.local" #Crée le certificat le DNS spécifié /usr/local/bin/mkcert -key-file key.pem -cert-file cert.pem "hôte.domaine.local" "*.domaine.local" #Crée le certificat le DNS spécifié
``` ```
##### Quatrièmement ## 4. Lancement
Le playbook va lancer les fichier "docker-compose" à savoir : nextcloud.yml et traefik.yml. Le playbook lance les fichiers "docker-compose" à savoir : nextcloud.yml et traefik.yml qui démarrent les deux piles **docker**.
Cela va installer les solutions automatiquement. Nextcloud est alors fonctionnel avec
un proxy inverse qui va rediriger en HTTPS. Nextcloud est alors fonctionnel avec le proxy inverse **traefik** assurant la redirection vers HTTPS.
ATTENTION : Après avoir relancé la VM, executez le script "nxc-start.sh" afin d'installer les piles applicatives. ATTENTION : Après avoir relancé la VM, executez le script "nxc-start.sh" afin d'installer les piles applicatives.
Une fois le script fini, accedez au site :
https://s-nxc.gsb.lan Une fois le script terminé, le site est disponible ici : https://s-nxc.gsb.lan

View File

@ -8,37 +8,30 @@ iface lo inet loopback
# Reseau N-adm # Reseau N-adm
allow-hotplug enp0s3 allow-hotplug enp0s3
iface enp0s3 inet static iface enp0s3 inet static
address 192.168.99.12 address 192.168.99.12/24
netmask 255.255.255.0
# Reseau liaison avec r-ext # Reseau liaison avec r-ext
allow-hotplug enp0s8 allow-hotplug enp0s8
iface enp0s8 inet static iface enp0s8 inet static
address 192.168.200.254 address 192.168.200.254/24
netmask 255.255.255.0
gateway 192.168.200.253 gateway 192.168.200.253
up ip route add default via 192.168.200.253
# Reseau wifi # Reseau wifi
allow-hotplug enp0s9 allow-hotplug enp0s9
iface enp0s9 inet static iface enp0s9 inet static
address 172.16.65.254 address 172.16.65.254/24
netmask 255.255.255.0
# Reseau user # Reseau user
allow-hotplug enp0s10 allow-hotplug enp0s10
iface enp0s10 inet static iface enp0s10 inet static
address 172.16.64.254 address 172.16.64.254/24
netmask 255.255.255.0
# Reseau infra # Reseau infra
allow-hotplug enp0s16 allow-hotplug enp0s16
iface enp0s16 inet static iface enp0s16 inet static
address 172.16.0.254 address 172.16.0.254/24
netmask 255.255.255.0
up /root/routagenat

View File

@ -3,11 +3,11 @@
- name: Copie du fichier sysctl.conf - name: Copie du fichier sysctl.conf
copy: src=sysctl.conf dest=/etc/ copy: src=sysctl.conf dest=/etc/
- name: copier le script de routage #- name: copier le script de routage
copy: src=routagenat dest=/root/ # copy: src=routagenat dest=/root/
- name: rendre executabe le script #- name: rendre executabe le script
shell: chmod +x /root/routagenat # shell: chmod +x /root/routagenat
#- name: exectuer le script #- name: exectuer le script
# script: /root/routagenat # script: /root/routagenat

View File

@ -1,11 +0,0 @@
---
- name: Installation d'HAproxy
apt: pkg=haproxy state=present update_cache=yes
- name: Fichier de configuration
copy: src=haproxy.cfg dest=/etc/haproxy/haproxy.cfg
notify:
- restart haproxy
- name: Copie de goss
copy: src=goss.yaml dest=/root

View File

@ -1,11 +0,0 @@
---
- hosts: localhost
connection: local
roles:
- base
- s-lb-web-ab
- snmp-agent
- s-nas-client
- post

View File

@ -1,18 +0,0 @@
---
- hosts: localhost
connection: local
vars:
wp_mysql_db: "wordpress"
wp_mysql_user: "wp"
wp_mysql_password: "wp"
wp_mysql_host: "192.168.102.50"
roles:
- base
- goss
- apache2
- s-lb-wordpress
- snmp-agent
- post
- mysql
- php-fpm

135
scripts/mkvm.pl Executable file
View File

@ -0,0 +1,135 @@
#!/usr/pbin/perl
use strict;
use warnings;
use v5.10;
my $ovarelease = "2023a";
my $ovafogrelease = "2023a";
my $home=$ENV{'HOME'};
my $ovafile="$home/Téléchargements/debian-bullseye-gsb-".$ovarelease.".ova";
my $ovafilefog="$home/Téléchargements/debian-buster-gsb-i".$ovafogrelease.".ova";
my %vmtab = (
#name => "s-adm", params => ":1024:"
name => "s-adm", params => ":1024:n-adm:n-infra",
name => "s-infra", params => ":1024:n-adm:n-infra",
name => "s-proxy", params => ":1024:n-adm:n-infra",
name => "r-int", params => ":1024:n-adm:n-link:n-wifi:n-user:n-infra",
name => "r-ext", params => ":1024:n-adm:n-dmz:eno1:n-linkvi:n-link",
name => "s-mon", params => ":1024:n-adm:n-infra",
name => "s-itil", params => ":1024:n-adm:n-infra",
name => "s-appli", params => ":1024:n-adm:n-infra",
name => "s-backup", params => ":1024:n-adm:n-infra",
name => "s-fog", params => ":1024:n-adm:n-infra:n-user",
name => "s-nxc", params => ":1024:n-adm:n-infra",
)
sub usage () {
say "$0 - version ${ovarelease}";
say "$0 : creation VM et parametrage interfaces";
say "usage : $0 <s-infra|r-int|r-ext|s-proxy|s-mon>";
exit 1 ;
}
sub create_vm () {
my $nom = shift ;
my $nomova = shift ;
if ( $nom == "s-fog" ) {
$nomova = $ovafilefog;
}
if ( ! -r $nomova ) {
say "$0 : erreur ouverture fichier $nomova ..."
exit 3
}
qx (vboxmanage import $nomova --vsys 0 --vmname $nom);
}
sub setif () {
my ($vm, $interf, $parm) = @ARGV;
qx(VBoxManage modifyvm $vm --nic"${2}" intnet);
qx(VBoxManage modifyvm $vm --intnet"${2}" "$3");
qx(VBoxManage modifyvm $vm --nictype"${2}" 82540EM);
qx(VBoxManage modifyvm $vm --cableconnected"${2}" on);
qx(VBoxManage modifyvm $vm --nicpromisc"${2}" allow-all);
}
sub create_if () {
# enp0s3
setif "$1" 1 "$2"
setif "$1" 2 "$3"
#(enp0s8)
}
create_vm "${vm}"
if [[ "${vm}" == "s-infra" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-proxy" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "r-int" ]] ; then
# n-adm, n-link, n-wifi, n-user, n-infra
create_if "${vm}" "n-adm" "n-infra"
setif "${vm}" 2 "n-link"
setif "${vm}" 3 "n-wifi"
setif "${vm}" 4 "n-user"
setif "${vm}" 5 "n-infra"
elif [[ "${vm}" == "r-ext" ]] ; then
./addint.r-ext
elif [[ "${vm}" == "s-mon" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-appli" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-backup" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-itil" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-nxc" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-fog" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
setif "${vm}" 3 "n-user"
elif [[ "${vm}" == "s-DNS-ext" ]] ; then
create_if "${vm}" "n-adm" "n-dmz"
elif [[ "${vm}" == "s-web-ext" ]] ; then
create_if "${vm}" "n-adm" "n-dmz"
elif [[ "${vm}" == "s-nxc" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-lb" ]] ; then
create_if "${vm}" "n-adm" "n-dmz" "n-dmz-lb"
elif [[ "${vm}" == "s-web1" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db"
# setif "${vm}" 3 "n-dmz-lb"
elif [[ "${vm}" == "s-web2" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db"
elif [[ "${vm}" == "s-web3" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db"
# setif "${vm}" 3 "n-dmz-lb"
elif [[ "${vm}" == "s-lb-bd" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-db"
elif [[ "${vm}" == "s-nas" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-db"
elif [[ "${vm}" == "r-vp1" ]] ; then
./addint.r-vp1
elif [[ "${vm}" == "r-vp2" ]] ; then
./addint.r-vp2
elif [[ "${vm}" == "s-agence" ]] ; then
create_if "${vm}" "n-adm" "n-agence"
else
echo "$0 : vm ${vm} non prevu"
exit 2
fi
sub usage () {
print "usage : mkvm.pl <vm-name>\n";
print "cree une VM a partir d'un fichier OVA et parametre les interfaces";
exit 1 ;
}
sub main () {
my $vm = shift;
usage unless ( $vm);
}

View File

@ -1,14 +1,21 @@
#!/bin/bash #!/bin/bash
ping -c3 172.16.0.254 echo ping vers r-int
ping -c3 172.16.0.254 # ping r-int s-infra
ping -c3 192.168.200.254 echo ping r-int interface externe
ping -c3 192.168.200.254 # ping r-int vers r-ext
ping -c3 192.168.200.253 echo ping r-ext interface interne
ping -c3 192.168.200.253 # ping r-ext vers
echo ping r-ext interface liaison
ping -c3 192.168.1.1 ping -c3 192.168.1.1
echo ping r-vp1 interface liaison n-linkv
ping -c3 192.168.1.2 ping -c3 192.168.1.2
ping -c3 172.16.125.254 echo ping r-vp2 interface interface interne
ping -c3 172.16.128.254
ping -c3 172.16.128.10 echo ping s-agence
ping -c3 172.16.128.11