Compare commits

..

39 Commits

Author SHA1 Message Date
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
f4361d9ecb maj doc 2023-01-19 12:48:44 +01:00
5d767a195d maj doc 2023-01-19 12:46:32 +01:00
7092ed5963 maj doc .md 2023-01-19 12:36:35 +01:00
a508e7e65c reorganisation 2023-01-19 00:03:47 +01:00
da5011466b nettoyage, maj doc, README 2023-01-19 00:02:58 +01:00
e395c14752 modif mkvm 2023-01-18 23:24:33 +01:00
c5c261893c Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-01-18 10:26:01 +01:00
b8d05aa7c5 Changement README Windows 2023-01-18 10:24:51 +01:00
ce6d9e4c57 correction erreur nommage WP inst-depl 2023-01-17 10:59:47 +01:00
8d241f8786 inst-depl MAJ version WP FILEBEAT,METRICBEAT,MKCERT,GOSS,... + s-adm pas role local-store 2023-01-17 10:51:40 +01:00
2822944c95 postfix ok et template mail nagios 2023-01-12 11:57:09 +01:00
85657ca334 Modif du script d'installation de docker 2023-01-12 11:42:49 +01:00
d3c3ef1fdc commenté sshpass dans main.yml 2023-01-12 11:34:37 +01:00
073c529f19 recup
Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023
2023-01-12 09:38:13 +01:00
c5d7bc847b modif pour glpi 10.0.5 2023-01-12 09:37:45 +01:00
4c0b3295af Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-01-12 09:05:01 +01:00
cd9c94ec5c Modification mkvm pour s-fog 2023-01-12 09:04:03 +01:00
dd73c48e28 modif mkvm ajout s-nxc 2023-01-12 08:55:46 +01:00
7f4588c279 Modification mkvm pour s-fog 2023-01-12 08:45:54 +01:00
ca6a1b9513 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-01-10 09:41:43 +01:00
2ab19a6497 modif goss r-ext 2023-01-10 09:41:14 +01:00
b017071726 correction interfaces sources ignore 2023-01-10 09:41:08 +01:00
b4e7f7e067 mise a jour s-adm goss 2023-01-10 09:19:23 +01:00
031984aa2b modif sur README.md 2023-01-10 09:04:56 +01:00
389cb3e330 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023
merge
2023-01-10 09:03:53 +01:00
9655c226b1 maj goss s-mon 2023-01-10 08:45:44 +01:00
e767433224 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023
merge
2023-01-06 09:50:45 +01:00
945bae351d chut 2023-01-06 09:50:40 +01:00
75bc513445 seconde modif de goss/tasks 2023-01-06 09:46:12 +01:00
17b049942f caractere unicode dans goss/tasks 2023-01-06 09:29:41 +01:00
acb5492b45 correction diverss pull-config ... 2023-01-06 09:23:55 +01:00
d0314e508a pull-config 2023-01-05 23:43:01 +01:00
9c2660ece3 mkvm 2023-01-05 23:37:48 +01:00
88 changed files with 438 additions and 224 deletions

View File

@ -1,17 +1,35 @@
# gsb2023 # gsb2023
2023-01-18 ps
Environnement et playbooks ansible pour le projet GSB 2023 Environnement et playbooks ansible pour le projet GSB 2023
## Quickstart ## Quickstart
prérequis : une machine Debian Bullseye prérequis :
* une machine Debian Bullseye
* VirtualBox
* fichier machines viruelles ova :
* debian-bullseye-gsb-2023a.ova
* debian-buster-gsb-2023a.ova
## Les machines ## Les machines
* s-adm * s-adm : routeur adm, DHCP + NAT, deploiement, proxy squid
* s-infra * s-infra : DNS maitre
* r-int * r-int : routaage, DHCP
* r-ext * r-ext : routage, NAT
* s-proxy * s-proxy : squid
* s-itil : serveur GLPI
* s-backup : DNS esclave + sauvegarde s-win
* s-mon : supervision avec **Nagios4** et syslog
* s-fog : deploiement postes de travail avec **FOG**
* s-win : Windows Server 2019, AD, DNS, DHCP, partage fichiers
* s-nxc : NextCloud avec **docker**
* s-elk : pile ELK dockerisée
* s-lb : Load Balancer **HaProxy** pour application Wordpress
* r-vp1 : Routeur VPN Wireguard coté siège
* r-vp2 : Routeur VPN Wireguard coté agence, DHCP
## Les playbooks ## Les playbooks
@ -20,7 +38,7 @@ prérequis : une machine Debian Bullseye
## Installation ## Installation
On utilisera l'image de machine virtuelle suivante : On utilisera l'image de machine virtuelle suivante :
* **debian-bullseye-2023a.ova** (2022-05-07) * **debian-bullseye-2023a.ova** (2023-01-06)
* Debian Bullseye 11 - 2 cartes - 1 Go - stockage 20 Go * Debian Bullseye 11 - 2 cartes - 1 Go - stockage 20 Go
@ -35,7 +53,7 @@ On utilisera l'image de machine virtuelle suivante :
bash inst-depl bash inst-depl
cd /var/www/html/gsbstore cd /var/www/html/gsbstore
bash getall bash getall
cd /root/tools/ansible/gsb022/pre cd /root/tools/ansible/gsb023/pre
bash gsbboot bash gsbboot
cd .. ; bash pull-config cd .. ; bash pull-config
``` ```
@ -51,7 +69,7 @@ On utilisera l'image de machine virtuelle suivante :
- cloner le dépot : - cloner le dépot :
```shell ```shell
mkdir -p tools/ansible ; cd tools/ansible mkdir -p tools/ansible ; cd tools/ansible
git clone https://gitea.lyc-lecastel.fr/gadmin/gsb2022.git git clone https://gitea.lyc-lecastel.fr/gadmin/gsb2023.git
cd gsb2023/pre cd gsb2023/pre
export DEPL=192.168.99.99 export DEPL=192.168.99.99
bash gsbboot bash gsbboot

View File

@ -34,8 +34,6 @@ interface:
- 192.168.100.254/24 - 192.168.100.254/24
enp0s9: enp0s9:
exists: true exists: true
addrs:
- 192.168.0.38/24
enp0s16: enp0s16:
exists: true exists: true
addrs: addrs:

View File

@ -16,10 +16,6 @@ port:
listening: true listening: true
ip: ip:
- '::' - '::'
tcp6:8080:
listening: true
ip:
- '::'
udp:53: udp:53:
listening: true listening: true
ip: ip:
@ -45,7 +41,6 @@ service:
user: user:
dnsmasq: dnsmasq:
exists: true exists: true
uid: 109
gid: 65534 gid: 65534
groups: groups:
- nogroup - nogroup
@ -54,7 +49,6 @@ user:
group: group:
ssh: ssh:
exists: true exists: true
gid: 111
command: command:
/sbin/sysctl net.ipv4.ip_forward: /sbin/sysctl net.ipv4.ip_forward:
exit-status: 0 exit-status: 0
@ -65,8 +59,6 @@ command:
dns: dns:
depl.sio.lan: depl.sio.lan:
resolveable: true resolveable: true
addrs:
- 10.121.38.10
timeout: 500 timeout: 500
process: process:
dnsmasq: dnsmasq:

View File

@ -1,26 +1,27 @@
file: file:
/etc/icinga/htpasswd.users: /etc/nagios4/htdigest.users:
exists: true exists: true
mode: "0644" mode: "0640"
size: 26 owner: nagios
owner: root group: www-data
group: root
filetype: file filetype: file
contains: [] contains: [nagiosadmin]
package: package:
apache2: apache2:
installed: true installed: true
nagios-snmp-plugins: nagios-snmp-plugins:
installed: true installed: true
icinga: nagios4:
installed: true installed: true
snmp: snmp:
installed: true installed: true
python3-passlib:
installed: true
port: port:
tcp6:80: tcp:80:
listening: true listening: true
ip: ip:
- '::' - 0.0.0.0
udp:514: udp:514:
listening: true listening: true
ip: ip:
@ -29,7 +30,7 @@ service:
apache2: apache2:
enabled: true enabled: true
running: true running: true
icinga: nagios4:
enabled: true enabled: true
running: true running: true
command: command:
@ -42,19 +43,19 @@ command:
process: process:
apache2: apache2:
running: true running: true
icinga: nagios4:
running: true running: true
interface: interface:
enp0s3: enp0s3:
exists: true exists: true
addrs: addrs:
- 192.168.99.8/24 - 192.168.99.104/24
enp0s8: enp0s8:
exists: true exists: true
addrs: addrs:
- 172.16.0.8/24 - 172.16.0.8/24
http: http:
http://localhost/icinga: http://localhost/nagios4:
status: 401 status: 401
allow-insecure: false allow-insecure: false
no-follow-redirects: false no-follow-redirects: false

View File

@ -1,8 +0,0 @@
---
- hosts: localhost
connection: local
roles:
- goss
- docker-graylog-pont
- post

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
## ps : 2021-04-01 15:25 ## aa : 2023-04-18 15:25
set -o errexit set -o errexit
set -o pipefail set -o pipefail
@ -9,11 +9,11 @@ apt update && apt upgrade
apt install -y apache2 git apt install -y apache2 git
STOREREP="/var/www/html/gsbstore" STOREREP="/var/www/html/gsbstore"
GLPIREL=9.5.6 GLPIREL=10.0.5
str="wget -nc https://github.com/glpi-project/glpi/releases/download/${GLPIREL}/glpi-${GLPIREL}.tgz" str="wget -nc https://github.com/glpi-project/glpi/releases/download/${GLPIREL}/glpi-${GLPIREL}.tgz"
FIREL=9.5 FIREL=10.0.3+1.0
str2="https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.5%2B3.0/fusioninventory-9.5+3.0.tar.bz2" str2="https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi${FIREL}/fusioninventory-${FIREL}.tar.bz2"
FIAGREL=2.6 FIAGREL=2.6
str31="wget -nc https://github.com/fusioninventory/fusioninventory-agent/releases/download/${FIAGREL}/fusioninventory-agent_windows-x64_${FIAGREL}.exe" str31="wget -nc https://github.com/fusioninventory/fusioninventory-agent/releases/download/${FIAGREL}/fusioninventory-agent_windows-x64_${FIAGREL}.exe"
@ -23,19 +23,21 @@ str32="wget -nc https://github.com/fusioninventory/fusioninventory-agent/release
FOGREL=1.5.9 FOGREL=1.5.9
str4="wget -nc https://github.com/FOGProject/fogproject/archive/${FOGREL}.tar.gz -O fogproject-${FOGREL}.tar.gz" str4="wget -nc https://github.com/FOGProject/fogproject/archive/${FOGREL}.tar.gz -O fogproject-${FOGREL}.tar.gz"
WPREL=5.8.2 WPREL=6.1.1
str5="wget -nc https://fr.wordpress.org/wordpress-${WPREL}-fr_FR.tar.gz" #v6.1.1 le 17/01/2023
str5="wget -nc https://fr.wordpress.org/latest-fr_FR.tar.gz -O wordpress-6.1.1-fr_FR.tar.gz"
GOSSVER=v0.3.16 GOSSVER=v0.3.21
str6="curl -L https://github.com/aelsabbahy/goss/releases/download/${GOSSVER}/goss-linux-amd64 -o goss" str6="curl -L https://github.com/aelsabbahy/goss/releases/download/${GOSSVER}/goss-linux-amd64 -o goss"
DOCKERREL=1.29.2 #DOCKERREL=1.29.2
str7="curl -L https://github.com/docker/compose/releases/download/${DOCKERREL}/docker-compose-$(uname -s)-$(uname -m) -o docker-compose" #str7="curl -L https://github.com/docker/compose/releases/download/${DOCKERREL}/docker-compose-$(uname -s)-$(uname -m) -o docker-compose"
GESTSUPREL=3.2.15 #GESTSUPREL=3.2.30
str8="wget -nc https://gestsup.fr/downloads/versions/current/version/gestsup_${GESTSUPREL}.zip" #str8="wget -nc 'https://gestsup.fr/index.php?page=download&channel=stable&version=${GESTSUPREL}&type=gestsup' -O gestsup_${GESTSUPREL}.zip"
str8="wget -nc 'https://gestsup.fr/index.php?page=download&channel=stable&version=3.2.30&type=gestsup' -O gestsup_3.2.30.zip"
ELKREL=7.16.3 ELKREL=8.6.0
str81="wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-amd64.deb" str81="wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-amd64.deb"
str82="wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-windows-x86_64.zip" str82="wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${ELKREL}-windows-x86_64.zip"
@ -70,12 +72,12 @@ curl -L https://get.docker.com -o getdocker.sh
chmod +x ./getdocker.sh chmod +x ./getdocker.sh
${str7} #${str7}
chmod +x ./docker-compose #chmod +x ./docker-compose
wget -nc https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64 -O mkcert wget -nc https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 -O mkcert
chmod +x ./mkcert chmod +x ./mkcert
@ -90,4 +92,3 @@ EOT
) )
cat "${STOREREP}/getall" cat "${STOREREP}/getall"

View File

@ -1,5 +1,9 @@
#!/bin/bash #!/bin/bash
dir=/root/tools/ansible
prj=gsb2023
opt=""
if [ -z ${UREP+x} ]; then if [ -z ${UREP+x} ]; then
UREP=https://gitea.lyc-lecastel.fr/gadmin/gsb2023.git UREP=https://gitea.lyc-lecastel.fr/gadmin/gsb2023.git
fi fi
@ -11,6 +15,14 @@ dir=/root/tools/ansible
cd "${dir}" || exit 1 cd "${dir}" || exit 1
hostname > hosts hostname > hosts
ansible-pull -i "${dir}/hosts" -U "${UREP}" if [[ $# == 1 ]] ; then
opt=$1
fi
if [[ "${opt}" == '-l' ]] ; then
cd "${dir}/${prj}" || exit 2
ansible-playbook -i localhost, -c local "$(hostname).yml"
else
ansible-pull -i "${dir}/hosts" -C main -U "${UREP}"
fi
exit 0 exit 0

1
proxy
View File

@ -1 +0,0 @@
/etc/nginx/sites-availables/proxy

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
if [ -z ${UREP+x} ]; then if [ -z ${UREP+x} ]; then
UREP=https://gitea.lyc-lecastel.fr/gadmin/gsb2022.git UREP=https://gitea.lyc-lecastel.fr/gadmin/gsb2023.git
fi fi
dir=/root/tools/ansible dir=/root/tools/ansible
@ -11,6 +11,6 @@ dir=/root/tools/ansible
cd "${dir}" || exit 1 cd "${dir}" || exit 1
hostname > hosts hostname > hosts
ansible-pull -i "${dir}/hosts" -U "${UREP}" ansible-pull -i "${dir}/hosts" -C main -U "${UREP}"
exit 0 exit 0

View File

@ -1,16 +1,16 @@
--- ---
- name: Téléchargement getdocker.sh - name: Supprime le fichier getdocker.sh si déjà présent
ansible.builtin.get_url: file:
url: http://s-adm.gsb.adm/gsbstore/getdocker.sh state: absent
dest: /tmp path: /tmp/getdocker.sh
mode: '0755'
- name: Télécharge le script d'installation de docker
uri:
url: 'https://get.docker.com'
method: GET
dest: /tmp/getdocker.sh
mode: a+x
register: result
- name: Execution du script getdocker - name: Execution du script getdocker
ansible.builtin.script: shell: bash /tmp/getdocker.sh
cmd: /tmp/getdocker.sh
- name: Téléchargement docker-compose
ansible.builtin.get_url:
url: http://s-adm.gsb.adm/gsbstore/docker-compose
dest: /usr/local/bin
mode: '0755'

View File

@ -3,19 +3,19 @@
- name: goss binary exists - name: goss binary exists
stat: path=/usr/local/bin/goss stat: path=/usr/local/bin/goss
register: gossbin register: gossbin
- name: install goss sur machine standard - name: install goss sur machine standard
get_url: get_url:
url: "{{ depl_url }}/{{ depl_goss }}" url: "{{ depl_url }}/{{ depl_goss }}"
dest: /usr/local/bin/{{ depl_goss }} dest: /usr/local/bin/{{ depl_goss }}
mode: 0755 mode: 0755
when: gossbin.stat.exists == False and ansible_hostname != "s-adm" when: gossbin.stat.exists == false and ansible_hostname != "s-adm"
- name: install goss sur s-adm - name: install goss sur s-adm
copy: copy:
src: "/var/www/html/gsbstore/{{ depl_goss }}" src: "/var/www/html/gsbstore/{{ depl_goss }}"
dest: /usr/local/bin/{{ depl_goss }} dest: /usr/local/bin/{{ depl_goss }}
mode: 0755 mode: 0755
remote_src: yes remote_src: yes
when: gossbin.stat.exists == False and ansible_hostname == "s-adm" when: gossbin.stat.exists == false and ansible_hostname == "s-adm"

View File

@ -1,5 +1,6 @@
depl_url: "http://s-adm.gsb.adm/gsbstore" depl_url: "http://s-adm.gsb.adm/gsbstore"
depl_glpi: "glpi-9.5.6.tgz" #depl_glpi: "glpi-9.5.6.tgz"
depl_glpi: "glpi-10.0.5.tgz"
depl_fusioninventory: "fusioninventory-9.5+3.0.tar.bz2" depl_fusioninventory: "fusioninventory-9.5+3.0.tar.bz2"
depl_fusioninventory_agentx64: "fusioninventory-agent_windows-x64_2.6.exe" depl_fusioninventory_agentx64: "fusioninventory-agent_windows-x64_2.6.exe"
depl_fusioninventory_agentx86: "fusioninventory-agent_windows-x86_2.6.exe" depl_fusioninventory_agentx86: "fusioninventory-agent_windows-x86_2.6.exe"

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

@ -0,0 +1,10 @@
# Role s-nas-server
## Installation de nfs-server et mise en oeuvre du partage /home/wordpress
Ce rôle :
* installe **nfs-server**
* copie le fichier de configuration **exports** pour exporter le répertoire **/home/wordpress**
* relance le service **nfs-server**
### Objectif
Le répertoire **/home/wordpress** est exporté par **nfs** sur le réseau **n-dmz-db**

View File

@ -0,0 +1,2 @@
depl_url: "http://s-adm.gsb.adm/gsbstore/"
depl_wordpress: "wordpress-6.1.1-fr_FR.tar.gz"

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/bash
GLPIREL=9.5.3 #GLPIREL=9.5.3
GLPIREL=10.0.5
wget -nc https://github.com/glpi-project/glpi/releases/download/${GLPIREL}/glpi-${GLPIREL}.tgz wget -nc https://github.com/glpi-project/glpi/releases/download/${GLPIREL}/glpi-${GLPIREL}.tgz
FIREL=9.5+1.0 FIREL=9.5+1.0

View File

@ -0,0 +1 @@
MAIL_DEST: "anthony.arnoux@protonmail.ch"

View File

@ -35,7 +35,7 @@ define contact {
host_notification_options d,r host_notification_options d,r
service_notification_commands notify-service-by-email service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email host_notification_commands notify-host-by-email
email nagios.gsb22@gmail.com email {{ MAIL_DEST }}
} }

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, seront 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. Generation 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

@ -1,7 +1,7 @@
# This file describes the network interfaces available on your system # This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). # and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/* #source /etc/network/interfaces.d/*
# The loopback network interface # The loopback network interface
auto lo auto lo
@ -10,7 +10,7 @@ iface lo inet loopback
# cote n-adm # cote n-adm
allow-hotplug enp0s3 allow-hotplug enp0s3
iface enp0s3 inet static iface enp0s3 inet static
address 192.168.99.104/24 address 192.168.99.8/24
gateway 192.168.99.99 gateway 192.168.99.99
# Cote n-infra # Cote n-infra
@ -20,4 +20,4 @@ iface enp0s8 inet static
up ip route add 172.16.64.0/24 via 172.16.0.254 up ip route add 172.16.64.0/24 via 172.16.0.254
up ip route add 172.16.128.0/24 via 172.16.0.254 up ip route add 172.16.128.0/24 via 172.16.0.254
up ip route add 192.168.0.0/16 via 172.16.0.254 up ip route add 192.168.0.0/16 via 172.16.0.254
up ip route add 192.168.200.0/24 via 172.16.0.254 up ip route add 192.168.200.0/24 via 172.16.0.254

View File

@ -1,4 +1,4 @@
source /etc/network/interfaces.d/* #source /etc/network/interfaces.d/*
# The loopback network interface # The loopback network interface
auto lo auto lo
@ -14,4 +14,4 @@ iface enp0s3 inet static
allow-hotplug enp0s8 allow-hotplug enp0s8
iface enp0s8 inet static iface enp0s8 inet static
address 192.168.102.253 address 192.168.102.253
netmask 255.255.255.0 netmask 255.255.255.0

View File

@ -1,2 +1 @@
[smtp.gmail.com]:587 nagios.gsb22@gmail.com:Azerty1+ [smtp.gmail.com]:587 anthony.arnoux22@gmail.com:gndtfomdkxnmcdft
chmod 600 /etc/postfix/sasl_passwd

View File

@ -4,6 +4,7 @@
name: name:
- postfix - postfix
- mailutils - mailutils
- libsasl2-modules
state: latest state: latest
- name: Copie du fichier sasl_passwd - name: Copie du fichier sasl_passwd
@ -12,17 +13,75 @@
src: sasl_passwd src: sasl_passwd
dest: /etc/postfix/sasl/ dest: /etc/postfix/sasl/
- name: Copie du fichier main.cf - name: ajout relay host gmail
tags: main.cf tags: postfix
template: replace:
src: main.cf.j2 path: /etc/postfix/main.cf
dest: /etc/postfix.main.cf regexp: '^relayhost ='
replace: 'relayhost = [smtp.gmail.com]:587'
notify: restart postfix
- name: Commande postmap - name: ajout lignes conf postfix
tags: postfix
blockinfile:
path: /etc/postfix/main.cf
block: |
#TLS
smtp_use_tls = yes
#SASL
smtp_sasl_auth_enable = yes
#pas d auth anonyme
smtp_sasl_security_options = noanonymous
#chemin sasl_passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
#chemin certificats CA
smtp_tls_CAfile = /etc/postfix/cacert.pem
notify: restart postfix
#- name: Copie du fichier main.cf
# tags: main.cf
# template:
# src: main.cf.j2
# dest: /etc/postfix.main.cf
- name: Commande postmap identifiants
tags: postmap tags: postmap
command: postmap /etc/postfix/sasl/sasl_passwd command: postmap /etc/postfix/sasl/sasl_passwd
notify: restart postfix notify: restart postfix
- name: Ensure directory exists for local self-signed TLS certs.
file:
path: /etc/ssl/certs/postfix
state: directory
- name: Generate an OpenSSL private key
community.crypto.openssl_privatekey:
path: /etc/ssl/certs/postfix/privkey.pem
- name: Generate an OpenSSL CSR
community.crypto.openssl_csr:
path: /etc/ssl/certs/postfix/postfix.csr
privatekey_path: /etc/ssl/certs/postfix/privkey.pem
common_name: "GSB2023.LAN"
- name: Generate a Self Signed OpenSSL certificate.
community.crypto.x509_certificate:
path: /etc/ssl/certs/postfix/fullchain.pem
privatekey_path: /etc/ssl/certs/postfix/privkey.pem
csr_path: /etc/ssl/certs/postfix/postfix.csr
provider: selfsigned
- name: Copy certificate preserve owner and permissions to be used with postfix
copy:
remote_src: true
src: /etc/ssl/certs/postfix/fullchain.pem
dest: /etc/postfix/cacert.pem
owner: root
group: root
mode: '0644'
notify: restart postfix
- name: message d'information pour gmail - name: message d'information pour gmail
tags: msg2 tags: msg2
debug: msg="Il faut activer les applications moins sécurisées sur le compte google" debug: msg="Il faut activer les applications moins sécurisées sur le compte google"

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,2 +0,0 @@
depl_url: "http://s-adm.gsb.adm/gsbstore/"
depl_wordpress: "wordpress-5.8.2-fr_FR.tar.gz"

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,3 +0,0 @@
##Installation de nfs
Ce rôle télécharge NFS puis copie un fichier de configuration pour partager le dossier /home/wordpress.

View File

@ -9,13 +9,13 @@
name: wireguard-tools name: wireguard-tools
state: present state: present
- name: installation de sshpass #- name: installation de sshpass
apt: # apt:
name: sshpass # name: sshpass
state: present # state: present
- name: copie du fichier de configuration depuis r-vp1 #- name: copie du fichier de configuration depuis r-vp1
command: "sshpass -p 'root' scp -r root@192.168.99.112:/root/confwg/wg0-b.conf /etc/wireguard/" # command: "sshpass -p 'root' scp -r root@192.168.99.112:/root/confwg/wg0-b.conf /etc/wireguard/"
- name: renommage du fichier de configuration - name: renommage du fichier de configuration
command: "mv /etc/wireguard/wg0-b.conf /etc/wireguard/wg0.conf" command: "mv /etc/wireguard/wg0-b.conf /etc/wireguard/wg0.conf"

View File

@ -8,7 +8,7 @@
- s-ssh - s-ssh
- dnsmasq - dnsmasq
- squid - squid
- local-store # - local-store
- snmp-agent - snmp-agent
- syslog-cli - syslog-cli
- post - post

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

View File

@ -1,43 +1,69 @@
#!/bin/bash #!/bin/bash
ovarelease="2023b" mkvmrelease="v1.2"
ovafile="$HOME/Téléchargements/debian-bullseye-gsb-${ovarelease}.ova"
ovarelease="2023a"
ovafogrelease="2023a"
ovafile="$HOME/Téléchargements/debian-bullseye-gsb-${ovarelease}.ova"
ovafilefog="$HOME/Téléchargements/debian-buster-gsb-${ovafogrelease}.ova"
deletemode=0
usage () { usage () {
echo "$0 - version ${ovarelease}" echo "$0 - version ${mkvmrelease} - Ova version ${ovarelease}"
echo "$0 : creation VM et parametrage interfaces" echo "$0 : creation VM et parametrage interfaces"
echo "usage : $0 <s-infra|r-int|r-ext|s-proxy|s-mon>" echo "usage : $0 [-r] <s-infra|r-int|r-ext|s-proxy|s-mon|s-appli|s-backup|s-itil|s-ncx|s-fog>"
echo " option -r : efface vm existante avant creation nouvelle"
exit 1 exit 1
} }
create_vm () { create_vm () {
nom=$1 local nom="$1"
if [[ ! -r "${ovafile}" ]]; then local nomova="${ovafile}"
echo "$0 : erreur ouverture fichier ${ovafile} ..." if [[ "${nom}" == "s-fog" ]] ; then
nomova="${ovafilefog}"
fi
if [[ ! -r "${nomova}" ]]; then
echo "$0 : erreur ouverture fichier ${nomova} ..."
exit 3 exit 3
fi fi
vboxmanage import "${ovafile}" --vsys 0 --vmname "${nom}" if [[ "${deletemode}" = 1 ]] ; then
VBoxManage unregistervm --delete "${nom}"
fi
vboxmanage import "${nomova}" --vsys 0 --vmname "${nom}"
} }
setif () { setif () {
VBoxManage modifyvm $1 --nic${2} intnet VBoxManage modifyvm "$1" --nic"${2}" intnet
VBoxManage modifyvm $1 --intnet${2} $3 VBoxManage modifyvm "$1" --intnet"${2}" "$3"
VBoxManage modifyvm $1 --nictype${2} 82540EM VBoxManage modifyvm "$1" --nictype"${2}" 82540EM
VBoxManage modifyvm $1 --cableconnected${2} on VBoxManage modifyvm "$1" --cableconnected"${2}" on
VBoxManage modifyvm $1 --nicpromisc${2} allow-all VBoxManage modifyvm "$1" --nicpromisc"${2}" allow-all
} }
create_if () { create_if () {
# enp0s3 # enp0s3
setif $1 1 $2 setif "$1" 1 "$2"
setif $1 2 $3
#(enp0s8) #(enp0s8)
setif "$1" 2 "$3"
#(enp0s9)
if [[ -n "$4" ]] ; then
setif "$1" 3 "$4"
fi
} }
vm=$1 if [[ $# == 0 ]] ; then
usage
fi
if [[ $1 == "--help" ]] || [[ $1 == "-h" ]] || [[ $1 == "-V" ]] ; then
usage
fi
if [[ $1 == "-r" ]] ; then
deletemode=1
shift
fi
vm="$1"
create_vm "${vm}" create_vm "${vm}"
if [[ "${vm}" == "s-infra" ]] ; then if [[ "${vm}" == "s-infra" ]] ; then
@ -46,9 +72,7 @@ elif [[ "${vm}" == "s-proxy" ]] ; then
create_if "${vm}" "n-adm" "n-infra" create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "r-int" ]] ; then elif [[ "${vm}" == "r-int" ]] ; then
# n-adm, n-link, n-wifi, n-user, n-infra # n-adm, n-link, n-wifi, n-user, n-infra
create_if "${vm}" "n-adm" "n-infra" create_if "${vm}" "n-adm" "n-link" "n-wifi"
setif "${vm}" 2 "n-link"
setif "${vm}" 3 "n-wifi"
setif "${vm}" 4 "n-user" setif "${vm}" 4 "n-user"
setif "${vm}" 5 "n-infra" setif "${vm}" 5 "n-infra"
elif [[ "${vm}" == "r-ext" ]] ; then elif [[ "${vm}" == "r-ext" ]] ; then
@ -64,22 +88,21 @@ elif [[ "${vm}" == "s-itil" ]] ; then
elif [[ "${vm}" == "s-nxc" ]] ; then elif [[ "${vm}" == "s-nxc" ]] ; then
create_if "${vm}" "n-adm" "n-infra" create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-fog" ]] ; then elif [[ "${vm}" == "s-fog" ]] ; then
create_if "${vm}" "n-adm" "n-infra" create_if "${vm}" "n-adm" "n-infra" "n-user"
setif "${vm}" 3 "n-user" elif [[ "${vm}" == "s-dns-ext" ]] ; then
elif [[ "${vm}" == "s-DNS-ext" ]] ; then
create_if "${vm}" "n-adm" "n-dmz" create_if "${vm}" "n-adm" "n-dmz"
elif [[ "${vm}" == "s-web-ext" ]] ; then elif [[ "${vm}" == "s-web-ext" ]] ; then
create_if "${vm}" "n-adm" "n-dmz" create_if "${vm}" "n-adm" "n-dmz"
elif [[ "${vm}" == "s-nxc" ]] ; then
create_if "${vm}" "n-adm" "n-infra"
elif [[ "${vm}" == "s-lb" ]] ; then elif [[ "${vm}" == "s-lb" ]] ; then
create_if "${vm}" "n-adm" "n-dmz" "n-dmz-lb" create_if "${vm}" "n-adm" "n-dmz" "n-dmz-lb"
elif [[ "${vm}" == "s-web1" ]] ; then elif [[ "${vm}" == "s-web1" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db" create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db"
# setif "${vm}" 3 "n-dmz-lb"
elif [[ "${vm}" == "s-web2" ]] ; then elif [[ "${vm}" == "s-web2" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db" create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db"
elif [[ "${vm}" == "s-web3" ]] ; then elif [[ "${vm}" == "s-web3" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db" create_if "${vm}" "n-adm" "n-dmz-lb" "n-dmz-db"
# setif "${vm}" 3 "n-dmz-lb"
elif [[ "${vm}" == "s-lb-bd" ]] ; then elif [[ "${vm}" == "s-lb-bd" ]] ; then
create_if "${vm}" "n-adm" "n-dmz-db" create_if "${vm}" "n-adm" "n-dmz-db"
elif [[ "${vm}" == "s-nas" ]] ; then elif [[ "${vm}" == "s-nas" ]] ; then
@ -90,8 +113,7 @@ elif [[ "${vm}" == "r-vp2" ]] ; then
./addint.r-vp2 ./addint.r-vp2
elif [[ "${vm}" == "s-agence" ]] ; then elif [[ "${vm}" == "s-agence" ]] ; then
create_if "${vm}" "n-adm" "n-agence" create_if "${vm}" "n-adm" "n-agence"
else else
echo "$0 : vm ${vm} non prevu" echo "$0 : vm ${vm} non prevue "
exit 2 exit 2
fi fi

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,7 +0,0 @@
---
- hosts: localhost
connection: local
roles:
- snmp-agent

View File

@ -1,15 +1,18 @@
# Création des dossiers partagés et des utilisateur # Tuto Installation Windows Serveur
Les fichiers .cmd lancer sur la machine s-win permet de créer les utilisateur, leurs mettres - Une fois l'installation du serveur Windows, renommer le serveur en s-win et installer git.
droits et créer des dossiers partagés. - Installer Serveur DNS et Services AD DS.
- Créer une nouvelle fôret pour le domaine gsb.lan.
- Configurer la zone inverse du DNS.
le fichier mkusr.cmd permet de créer un autre utiliateur avec les mêmes droits que les autres. ## Création des dossiers partagés et des utilisateur
# Utilisation des comptes utilisateurs - Lancer mkusr-compta.cmd et mkusr-ventes.cmd sur s-win pour créer les utilisateurs avec leurs droits.
- Le fichier gsb-dossiers.cmd permet de créer des dossiers partagés.
- Le fichier mkusr.cmd permet de créer un autre utiliateur avec les mêmes droits que les autres.
Pour vous connecter au serveurs DNS s-win il faut créer un machine dans le réseau n-user et que ## Utilisation des comptes utilisateurs
cette machine puisse ping le serveur.
Après il suffit de changer le domaine de cette machine et la redémarrer. - Pour utiliser l'AD du serveur s-win, créer une machine Windows 10 dans le réseau n-user.
- Une fois son adresse IP obtenue (172.16.64.xx) ajouter la machine dans le domaine gsb.lan en utilisant un utiliateur (autre que l'Administrateur).
suite à ça, connecter vous avec les identifiants d'un utilisateurs. - Redémarrer puis se connecter avec les identifiants choisis.