Compare commits
16 Commits
v0.0.5r-aa
...
v0.0.6b-em
Author | SHA1 | Date | |
---|---|---|---|
1371b6b970 | |||
2bffbbedc0 | |||
272ef9ac07 | |||
81478df279 | |||
75126890b3 | |||
851543db0a | |||
f9e48e7614 | |||
16d22619bf | |||
3fc572ca72 | |||
da25a9dda0 | |||
0af1984a3f | |||
fef6b25101 | |||
797b65ef56 | |||
e3694bb917 | |||
e9b0ad453b | |||
559566e1d1 |
25
README.md
25
README.md
@ -1,6 +1,6 @@
|
||||
# gsb2023
|
||||
|
||||
2023-02-01 ps
|
||||
2023-02-02 ps
|
||||
|
||||
Environnement et playbooks ansible pour le projet GSB 2023
|
||||
|
||||
@ -59,9 +59,9 @@ $ mkvm -r s-adm
|
||||
```
|
||||
|
||||
### Machine s-adm
|
||||
* créer la machine virtuelle **s-adm** avec **mkvm * comme décrit plus haut.
|
||||
* utiliser le script de renommage comme suit --> bash chname [nouveau_nom_de_machine] puis redémarrer
|
||||
* utiliser le script s-adm-start --> bash s-adm-start, redémarrer
|
||||
* créer la machine virtuelle **s-adm** avec **mkvm** comme décrit plus haut.
|
||||
* utiliser le script de renommage comme suit --> `bash chname <nouveau_nom_de_machine>` , puis redémarrer
|
||||
* utiliser le script **s-adm-start** : `bash s-adm-start` , puis redémarrer
|
||||
* ou sinon :
|
||||
```shell
|
||||
mkdir -p tools/ansible ; cd tools/ansible
|
||||
@ -79,9 +79,9 @@ $ mkvm -r s-adm
|
||||
### Pour chaque machine
|
||||
|
||||
- créer la machine avec **mkvm -r**, les cartes réseau sont paramétrées par **mkvm** selon les spécifications
|
||||
- utiliser le script de renommage comme suit --> bash chname [nouveau_nom_de_machine]
|
||||
- utiliser le script de renommage comme suit : `bash chname <nouveau_nom_de_machine>`
|
||||
- redémarrer
|
||||
- utiliser le script gsb-start --> bash gsb-start
|
||||
- utiliser le script **gsb-start** : `bash gsb-start`
|
||||
- ou sinon:
|
||||
```shell
|
||||
mkdir -p tools/ansible ; cd tools/ansible
|
||||
@ -94,3 +94,16 @@ bash pull-config
|
||||
```
|
||||
- redémarrer
|
||||
- **Remarque** : une machine doit avoir été redémarrée pour prendre en charge la nouvelle configuration
|
||||
|
||||
|
||||
## Les tests
|
||||
|
||||
Il peuvent êtres mis en oeuvre avec **goss** de la façon suivante : chaque machine installée dispose d'un fichier de test ad-hoc portant le nom de la machine elle-même (machine.yml).
|
||||
|
||||
```
|
||||
cd tools/ansible/gsb2023
|
||||
bash agoss # lance le test portant le nom de la machine
|
||||
```
|
||||
|
||||
`bash agoss -f tap` permet de lancer le test avec le détail d'exécution
|
||||
|
||||
|
26
goss/s-elk.yaml
Normal file
26
goss/s-elk.yaml
Normal file
@ -0,0 +1,26 @@
|
||||
port:
|
||||
tcp:5044:
|
||||
listening: true
|
||||
ip:
|
||||
- 0.0.0.0
|
||||
tcp:5601:
|
||||
listening: true
|
||||
ip:
|
||||
- 0.0.0.0
|
||||
tcp:9200:
|
||||
listening: true
|
||||
ip:
|
||||
- 0.0.0.0
|
||||
service:
|
||||
docker:
|
||||
enabled: true
|
||||
running: true
|
||||
interface:
|
||||
enp0s3:
|
||||
exists: true
|
||||
addrs:
|
||||
- 192.168.99.11/24
|
||||
enp0s8:
|
||||
exists: true
|
||||
addrs:
|
||||
- 172.16.0.11/24
|
@ -45,7 +45,9 @@ str6="curl -L https://github.com/aelsabbahy/goss/releases/download/${GOSSVER}/go
|
||||
#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=8.6.0
|
||||
|
||||
#METRICBEAT ET FILEBEAT
|
||||
ELKREL=8.5.3
|
||||
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"
|
||||
|
1
roles/filebeat-cli/defaults/main.yml
Normal file
1
roles/filebeat-cli/defaults/main.yml
Normal file
@ -0,0 +1 @@
|
||||
BEATVER: "8.5.3"
|
@ -1,4 +1,4 @@
|
||||
- name: start filebeat
|
||||
- name: restart filebeat
|
||||
service:
|
||||
name: filebeat
|
||||
state: started
|
||||
|
@ -1,12 +1,12 @@
|
||||
---
|
||||
- name: Récupération de filebeat
|
||||
get_url:
|
||||
url: http://s-adm.gsb.adm/gsbstore/filebeat-7.16.3-amd64.deb
|
||||
url: http://s-adm.gsb.adm/gsbstore/filebeat-${BEATVAR}-amd64.deb
|
||||
dest: /tmp/
|
||||
|
||||
- name: Installation de filebeat
|
||||
apt:
|
||||
deb: /tmp/filebeat-7.16.3-amd64.deb
|
||||
deb: /tmp/filebeat-${BEATVEAR}-amd64.deb
|
||||
|
||||
- name: Changement du fichier de conf
|
||||
copy:
|
||||
@ -15,9 +15,9 @@
|
||||
|
||||
- name: Configuration de filebeat
|
||||
shell: filebeat modules enable system
|
||||
notify: start filebeat
|
||||
notify: restart filebeat
|
||||
|
||||
- name: Lancement de la configuration de filebeat
|
||||
shell: filebeat setup -e
|
||||
notify: start filebeat
|
||||
notify: restart filebeat
|
||||
|
||||
|
@ -1,11 +1,16 @@
|
||||
# Fog
|
||||
|
||||
Ce rôle permet l'installation et la modification de Fog.
|
||||
|
||||
|
||||
## Fog, c'est quoi ?
|
||||
|
||||
|
||||
Fog permet le déploiement d'images disque tel que Windows ou bien Linux en utilisant PXE (Preboot Execution Environment).
|
||||
|
||||
|
||||
## Comment l'installer ?
|
||||
|
||||
Avant toute chose, lancer le fichier goss de s-fog ( présent dans gsb2023/goss/s-fog.yaml ) pour vérifier que la configuration réseau est correct et opérationel. Une fois l'installation principal effectué, il faut lancé le playbook ansible s-fog.yaml.
|
||||
Il faudra se rendre dans le dossier **fog** pour lancer le script **installfog.sh** ( fog/bin/ ). La configuration sera déjà établi via le fichier **.fogsettings**
|
||||
|
||||
Avant toute chose, lancer le fichier goss de s-fog ( présent dans gsb2023/goss/s-fog.yaml ) pour vérifier que la configuration réseau est correct et opérationnel. Une fois l'installation principale effectuée, il faut lancer le playbook ansible s-fog.yaml.
|
||||
Il faudra se rendre dans le dossier **fog** pour lancer le script **installfog.sh** ( fog/bin/ ). La configuration sera déjà établie via le fichier **.fogsettings**
|
||||
|
47
roles/fw-ferm/files/ferm-vp1.conf
Normal file
47
roles/fw-ferm/files/ferm-vp1.conf
Normal file
@ -0,0 +1,47 @@
|
||||
# -*- shell-script -*-
|
||||
|
||||
@def $DEV_VPN= wg0;
|
||||
|
||||
table filter {
|
||||
chain INPUT {
|
||||
policy DROP;
|
||||
|
||||
# connection tracking
|
||||
mod state state INVALID DROP;
|
||||
mod state state (ESTABLISHED RELATED) ACCEPT;
|
||||
|
||||
# allow local connections
|
||||
interface lo ACCEPT;
|
||||
interface $DEV_VPN{
|
||||
# respond to ping
|
||||
proto icmp icmp-type echo-request ACCEPT;
|
||||
# disallow ssh
|
||||
saddr proto tcp dport ssh DROP;
|
||||
}
|
||||
}#FIN INPUT
|
||||
|
||||
# outgoing connections are not limited
|
||||
chain OUTPUT {
|
||||
policy ACCEPT;
|
||||
interface $DEV_VPN{
|
||||
# allow ssh
|
||||
daddr proto tcp dport ssh ACCEPT;
|
||||
# respond to ping
|
||||
proto icmp icmp-type echo-request ACCEPT;
|
||||
}
|
||||
}#FIN OUTPUT
|
||||
|
||||
chain FORWARD {
|
||||
policy ACCEPT;
|
||||
|
||||
# connection tracking
|
||||
mod state state INVALID DROP;
|
||||
mod state state (ESTABLISHED RELATED) ACCEPT;
|
||||
|
||||
# connections from the internal net to the internet or to other
|
||||
# internal nets are allowed
|
||||
interface $DEV_VPN ACCEPT;
|
||||
|
||||
# the rest is dropped by the above policy
|
||||
}#FIN FO
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
|
||||
@def $DEV_PRIVATE = enp0s8;
|
||||
@def $DEV_WORLD = enp0s9;
|
||||
|
||||
@def $DEV_VPN= wg0;
|
||||
@def $NET_PRIVATE = 172.16.0.0/24;
|
||||
|
||||
table filter {
|
||||
@ -33,23 +33,33 @@ table filter {
|
||||
# we provide DNS and SMTP services for the internal net
|
||||
interface $DEV_PRIVATE saddr $NET_PRIVATE {
|
||||
proto (udp tcp) dport domain ACCEPT;
|
||||
proto udp dport bootps ACCEPT;
|
||||
proto udp dport bootps ACCEPT;
|
||||
}
|
||||
|
||||
# interface réseau
|
||||
# interface réseau
|
||||
interface $DEV_WORLD {
|
||||
|
||||
|
||||
}
|
||||
|
||||
# the rest is dropped by the above policy
|
||||
}#FIN INPUT
|
||||
|
||||
# outgoing connections are not limited
|
||||
chain OUTPUT policy ACCEPT;
|
||||
chain OUTPUT {policy ACCEPT;
|
||||
}#FIN OUTPUT
|
||||
|
||||
chain FORWARD {
|
||||
policy ACCEPT;
|
||||
|
||||
interface $DEV_VPN{
|
||||
# respond to ping
|
||||
proto icmp icmp-type echo-request ACCEPT;
|
||||
# disallow ssh
|
||||
saddr($DEV_VPN) proto tcp dport ssh DROP;
|
||||
# allow ssh
|
||||
daddr($DEV_VPN) proto tcp dport ssh ACCEPT;
|
||||
|
||||
}
|
||||
# connection tracking
|
||||
mod state state INVALID DROP;
|
||||
mod state state (ESTABLISHED RELATED) ACCEPT;
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
@def $DEV_PRIVATE = enp0s9;
|
||||
@def $DEV_WORLD = enp0s8;
|
||||
|
||||
@def $DEV_VPN= wg0;
|
||||
@def $NET_PRIVATE = 172.16.0.0/24;
|
||||
|
||||
table filter {
|
||||
@ -34,7 +34,12 @@ table filter {
|
||||
proto (udp tcp) dport domain ACCEPT;
|
||||
proto udp dport bootps ACCEPT;
|
||||
}
|
||||
|
||||
interface $DEV_VPN{
|
||||
# respond to ping
|
||||
proto icmp icmp-type echo-request ACCEPT;
|
||||
# disallow ssh
|
||||
saddr proto tcp dport ssh ACCEPT;
|
||||
}
|
||||
# interface réseau
|
||||
interface $DEV_WORLD {
|
||||
|
||||
@ -44,8 +49,14 @@ table filter {
|
||||
}#FIN INPUT
|
||||
|
||||
# outgoing connections are not limited
|
||||
chain OUTPUT policy ACCEPT;
|
||||
|
||||
chain OUTPUT {policy ACCEPT;
|
||||
interface $DEV_VPN{
|
||||
# allow ssh
|
||||
daddr proto tcp dport ssh DROP;
|
||||
# respond to ping
|
||||
proto icmp icmp-type echo-request ACCEPT;
|
||||
}
|
||||
}
|
||||
chain FORWARD {
|
||||
policy ACCEPT;
|
||||
|
||||
|
@ -13,16 +13,3 @@
|
||||
apt:
|
||||
name: nfs-common
|
||||
state: present
|
||||
|
||||
- name: montage nfs pour word press
|
||||
blockinfile:
|
||||
path: /etc/fstab
|
||||
block: |
|
||||
192.168.102.253:/home/wordpress /var/www/html nfs soft,timeo=5,intr,rsize=8192,wsize=8192,wsize=8192 0 0
|
||||
|
||||
- name: monte export wordpress
|
||||
ansible.posix.mount:
|
||||
path: /var/www/html
|
||||
state: mounted
|
||||
fstype: nfs
|
||||
src: 192.168.102.253:/exports/wordpress
|
||||
|
1
roles/metricbeat-cli/defaults/main.yml
Normal file
1
roles/metricbeat-cli/defaults/main.yml
Normal file
@ -0,0 +1 @@
|
||||
BEATVER: "8.5.3"
|
@ -1,5 +1,5 @@
|
||||
- name: start metricbeat
|
||||
- name: restart metricbeat
|
||||
service:
|
||||
name: metricbeat
|
||||
state: started
|
||||
state: restarted
|
||||
enabled: yes
|
||||
|
@ -1,12 +1,12 @@
|
||||
---
|
||||
- name: Récupération de metricbeat
|
||||
get_url:
|
||||
url: http://s-adm.gsb.adm/gsbstore/metricbeat-7.16.3-amd64.deb
|
||||
url: http://s-adm.gsb.adm/gsbstore/metricbeat-${BEATVER}-amd64.deb
|
||||
dest: /tmp/
|
||||
|
||||
- name: Installation de metricbeat
|
||||
apt:
|
||||
deb: /tmp/metricbeat-7.16.3-amd64.deb
|
||||
deb: /tmp/metricbeat-${BEATVER}-amd64.deb
|
||||
|
||||
- name: Changement du fichier de conf
|
||||
copy:
|
||||
@ -15,9 +15,9 @@
|
||||
|
||||
- name: Configuration de metricbeat
|
||||
shell: metricbeat modules enable system
|
||||
notify: start metricbeat
|
||||
notify: restart metricbeat
|
||||
|
||||
- name: Lancement de la configuration de metricbeat
|
||||
shell: metricbeat setup -e
|
||||
notify: start metricbeat
|
||||
notify: restart metricbeat
|
||||
|
||||
|
@ -26,6 +26,7 @@ define host {
|
||||
host_name localhost
|
||||
alias localhost
|
||||
address 127.0.0.1
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
||||
|
@ -9,5 +9,6 @@ define host{
|
||||
host_name s-adm
|
||||
alias debian-servers
|
||||
address 192.168.99.99
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
@ -9,5 +9,6 @@ define host{
|
||||
host_name s-appli
|
||||
alias debian-servers
|
||||
address 172.16.0.3
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
@ -9,5 +9,6 @@ define host{
|
||||
host_name s-backup
|
||||
alias serveur proxy
|
||||
address 172.16.0.4
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,7 @@ define host{
|
||||
host_name s-fog
|
||||
alias serveur proxy
|
||||
address 172.16.0.16
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
||||
|
@ -9,5 +9,6 @@ define host{
|
||||
host_name s-infra
|
||||
alias debian-servers
|
||||
address 172.16.0.1
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,7 @@ define host{
|
||||
host_name s-itil
|
||||
alias serveur proxy
|
||||
address 172.16.0.9
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
||||
|
@ -9,5 +9,6 @@ define host{
|
||||
host_name s-nxc
|
||||
alias debian-servers
|
||||
address 172.16.0.7
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,7 @@ define host{
|
||||
host_name s-proxy
|
||||
alias serveur proxy
|
||||
address 172.16.0.2
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
||||
|
@ -9,6 +9,7 @@ define host{
|
||||
host_name s-win
|
||||
alias serveur proxy
|
||||
address 172.16.0.6
|
||||
parents r-int
|
||||
}
|
||||
|
||||
|
||||
|
7
roles/post-lb/README.md
Normal file
7
roles/post-lb/README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# Rôle Post
|
||||
|
||||
Le rôle "post" copie la configuration des interfaces des cartes réseaux nécessaires selon la machine sur laquelle on exécute le rôle. Il place cette configuration dans /etc/network/interfaces.
|
||||
|
||||
Ensuite, on copie le fichier "resolv.conf" dans /etc/ lorsque que la machine qui exécute le rôle n'est pas "s-adm", "s-proxy" ou "r-vp2".
|
||||
|
||||
Cependant, si la machine qui exécute le rôle est "s-proxy", on copie le fichier "resolv.conf.s-proxy" dans /etc/resolv.conf
|
21
roles/post-lb/files/interfaces.s-lb-web1
Normal file
21
roles/post-lb/files/interfaces.s-lb-web1
Normal file
@ -0,0 +1,21 @@
|
||||
### 0.2 - putconf - jeudi 7 janvier 2016, 16:18:49 (UTC+0100)
|
||||
|
||||
# The loopback network interface
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
|
||||
# carte n-adm
|
||||
allow-hotplug enp0s3
|
||||
iface enp0s3 inet static
|
||||
address 192.168.99.101/24
|
||||
|
||||
# Réseau n-dmz-lb
|
||||
allow-hotplug enp0s8
|
||||
iface enp0s8 inet static
|
||||
address 192.168.101.1/24
|
||||
|
||||
# réseau n-dmz-db
|
||||
allow-hotplug enp0s9
|
||||
iface enp0s9 inet static
|
||||
address 192.168.102.1/24
|
||||
post-up mount -o rw 192.168.102.253:/home/wordpress /var/www/html
|
21
roles/post-lb/files/interfaces.s-lb-web2
Normal file
21
roles/post-lb/files/interfaces.s-lb-web2
Normal file
@ -0,0 +1,21 @@
|
||||
### 0.2 - putconf - jeudi 7 janvier 2016, 16:18:49 (UTC+0100)
|
||||
|
||||
# The loopback network interface
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
|
||||
# carte n-adm
|
||||
allow-hotplug enp0s3
|
||||
iface enp0s3 inet static
|
||||
address 192.168.99.101/24
|
||||
|
||||
# Réseau n-dmz-lb
|
||||
allow-hotplug enp0s8
|
||||
iface enp0s8 inet static
|
||||
address 192.168.101.1/24
|
||||
|
||||
# réseau n-dmz-db
|
||||
allow-hotplug enp0s9
|
||||
iface enp0s9 inet static
|
||||
address 192.168.102.1/24
|
||||
post-up mount -o rw 192.168.102.253:/home/wordpress /var/www/html
|
24
roles/post-lb/tasks/main.yml
Normal file
24
roles/post-lb/tasks/main.yml
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
|
||||
|
||||
- name: Copie interfaces
|
||||
copy: src=interfaces.{{ ansible_hostname }} dest=/etc/network/interfaces
|
||||
|
||||
- name: Copie resolv.conf
|
||||
copy: src=resolv.conf dest=/etc/
|
||||
when: ansible_hostname != "s-adm" and ansible_hostname != "s-proxy"
|
||||
|
||||
- name: pas de chgt resolv.conf pour r-vp2
|
||||
meta: end_play
|
||||
when: ansible_hostname == "r-vp2"
|
||||
|
||||
- name: Copie resolv.conf pour s-proxy
|
||||
copy: src=resolv.conf.s-proxy dest=/etc/resolv.conf
|
||||
when: ansible_hostname == "s-proxy"
|
||||
|
||||
#- name: Confirm
|
||||
# prompt: "<Entree> pour redemarrer ..."
|
||||
|
||||
#- name: Reboot
|
||||
# shell: reboot
|
||||
|
@ -1,19 +1,32 @@
|
||||
Procédure d'installation de **r-vp1** et de copie du fichier wg0-b.conf.
|
||||
|
||||
# <p align="center">Procédure d'installation </p>
|
||||
|
||||
de **r-vp1** et de copie du fichier wg0-b.conf.
|
||||
|
||||
***
|
||||
## Sur **r-vp1**:
|
||||
Attendre la fin de l'installation. Ensuite lancer un serveur http avec python3 pour récuperer le fichier wg0-b.conf sur **r-vp2** .
|
||||
|
||||
### 🛠️ Lancer le script
|
||||
```bash
|
||||
cd /tools/ansible/gsb2023/Scripts
|
||||
```
|
||||
```bash
|
||||
bash r-vp1-post.sh
|
||||
```
|
||||
## Sur **r-vp2**:
|
||||
|
||||
Depuis **r-vp1** se deplacer dans le repertoire **/tools/ansible/gsb2023** pour executer le playbook:
|
||||
**"ansible-playbook -i localhost, -c local r-vp1.yml"** puis reboot **r-vp1**.
|
||||
|
||||
|
||||
Sur **r-vp1**:
|
||||
|
||||
Attendre la fin de l'installation. Ensuite lancer un serveur http avec python3 pour récuperer le fichier
|
||||
wg0-b.conf sur **r-vp2** . Lancer le script **r-vp1-post.sh** dans **/tools/ansible/gsb2023/Scripts**.
|
||||
|
||||
|
||||
Sur **r-vp2**:
|
||||
|
||||
Lancer le script r-vp2-post.sh dans **/tools/ansible/gsb2023/Scripts** pour recuperer wg0-b.conf
|
||||
et qui renomme le fichier en **wg0.conf** . Il redémarre et active le service **wg-quick@wg0**.
|
||||
Lancer le script r-vp2-post.sh pour récuperer le fichier de configuration et activer l'interface wg0.
|
||||
### 🛠️ Lancer le script
|
||||
```bash
|
||||
cd /tools/ansible/gsb2023/Scripts
|
||||
```
|
||||
```bash
|
||||
bash r-vp2-post.sh
|
||||
```
|
||||
## Fin
|
||||
|
||||
redemarer les machines
|
||||
```bash
|
||||
reboot
|
||||
```
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
roles:
|
||||
- base
|
||||
- post
|
||||
- post-lb
|
||||
- lb-web
|
||||
- snmp-agent
|
||||
- ssh-cli
|
||||
|
@ -4,7 +4,8 @@
|
||||
|
||||
roles:
|
||||
- base
|
||||
- post
|
||||
- post-lb
|
||||
- lb-web
|
||||
- snmp-agent
|
||||
- ssh-cli
|
||||
|
||||
|
Reference in New Issue
Block a user