Compare commits

..

52 Commits

Author SHA1 Message Date
3e98f7149f fix: changed services names in values.yaml 2023-04-04 10:43:31 +02:00
d29c428c46 ajout rvp2-fw 2023-04-04 10:32:42 +02:00
c446f35aed changement 2023-04-04 10:25:52 +02:00
41bd6ac61e feat: changed the way peertube role is handled 2023-04-04 10:24:41 +02:00
7ce68f6293 fix: misleading docs by redhat ;p 2023-04-04 09:38:16 +02:00
bac2f067a9 fix: sychronized roles for peertube 2023-04-04 09:27:12 +02:00
d6d4991c16 fix: edited postfix configuration 2023-04-04 09:20:33 +02:00
2f7544c3a1 fix: changed order of task in main.yaml 2023-04-04 09:01:02 +02:00
c83ba7c977 fix: changed the way peertube is installed for better comprehension 2023-04-04 08:56:47 +02:00
1532c8bdd0 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-04-04 08:42:51 +02:00
08c73d0416 fix: cluster reacheable during install process 2023-04-04 08:41:40 +02:00
083b112d03 push ferm.conf 2023-04-04 08:41:20 +02:00
252618618b fix: mispelling in main.yaml for peertube 2023-04-04 08:33:55 +02:00
34f3adb117 feat: peertube role changes resolv.conf 2023-04-04 08:24:52 +02:00
3565d85543 fix: fixed l3s cluster being unreacheable 2023-04-04 08:13:55 +02:00
de757a6b55 fix: changed default playbook for peertube 2023-04-03 11:53:43 +02:00
e38f8c6da5 fix: mispelling in peertube mail.yaml 2023-04-03 11:45:47 +02:00
40eadcc37a fix: needed helm repos to use peertube 2023-04-03 11:24:36 +02:00
68c05b0794 correction port 2023-04-03 11:22:58 +02:00
b36505bf78 fix: needed to add repos with helm 2023-04-03 11:08:53 +02:00
2546430f94 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-04-03 11:05:13 +02:00
0624f3da72 modification 2023-04-03 11:04:13 +02:00
40c8aeccd9 fix: changed paths in peertube role 2023-04-03 11:00:19 +02:00
5c21400e29 fix: wrong cp path in role 2023-04-03 10:47:41 +02:00
33a9c5e8f6 fix: try to solve an issue 2023-03-30 11:21:59 +02:00
6f25e4caa4 fix: wrong shell command 2023-03-30 11:14:41 +02:00
289877ce89 feat: add peertube repo part2 2023-03-30 11:09:48 +02:00
08afef422c feat: add peertube repo part1 2023-03-30 10:47:17 +02:00
47d6805612 fix: set default route for k3s 2023-03-30 09:53:03 +02:00
57780388e7 fix: fixed k3s not starting at boot 2023-03-30 09:38:27 +02:00
8c3fc380fa ajout regle iptables 2023-03-30 09:22:59 +02:00
b5abdda49d fix: swapped ansible modules in the peertube role 2023-03-30 09:06:55 +02:00
2b5fc38edb fix: added peertube to mkvm 2023-03-30 08:41:17 +02:00
dd8bb815cc feat: added peertube with mkvm 2023-03-30 08:36:20 +02:00
a35048dc9f feat: added peertube role 2023-03-30 08:21:21 +02:00
fe0629d1c3 fix: needed resolv.conf from last commit 2023-03-29 16:41:18 +02:00
1371b6b970 fix: nfs share working now 2023-03-29 16:34:50 +02:00
2bffbbedc0 nagios parents 2023-03-29 14:57:11 +02:00
272ef9ac07 modification 2023-02-07 17:02:52 +01:00
81478df279 modif 2023-02-03 09:51:32 +01:00
75126890b3 incrémentation des modif 2023-02-03 09:37:13 +01:00
851543db0a ajout ferm vpn 2023-02-03 09:21:56 +01:00
f9e48e7614 création ferm2.conf 2023-02-03 09:18:11 +01:00
16d22619bf typo 2023-02-02 22:34:47 +01:00
3fc572ca72 maj README 2023-02-02 22:32:43 +01:00
da25a9dda0 modif README 2023-02-02 11:56:36 +01:00
0af1984a3f Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-02-02 11:53:32 +01:00
fef6b25101 modif readme 2023-02-02 11:52:11 +01:00
797b65ef56 goss pour s-elk 2023-02-02 11:52:10 +01:00
e3694bb917 Merge branch 'main' of https://gitea.lyc-lecastel.fr/gadmin/gsb2023 2023-02-02 11:48:01 +01:00
e9b0ad453b filebeat metricbeat bonne version et instdepl aussi 2023-02-02 11:26:00 +01:00
559566e1d1 montage nfs marche stp 2023-02-02 11:25:32 +01:00
54 changed files with 573 additions and 160 deletions

View File

@ -1,6 +1,6 @@
# gsb2023 # gsb2023
2023-02-01 ps 2023-02-02 ps
Environnement et playbooks ansible pour le projet GSB 2023 Environnement et playbooks ansible pour le projet GSB 2023
@ -53,15 +53,15 @@ On utilsera le script (bash) **mkvm** ou (PowerShell) **mkvm.ps1** pour créeer
```shell ```shell
gsb2023> gsb2023>
cd pre cd scripts
$ mkvm -r s-adm $ mkvm -r s-adm
``` ```
### Machine s-adm ### Machine s-adm
* créer la machine virtuelle **s-adm** avec **mkvm * comme décrit plus haut. * 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 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 * utiliser le script **s-adm-start** : `bash s-adm-start` , puis redémarrer
* ou sinon : * ou sinon :
```shell ```shell
mkdir -p tools/ansible ; cd tools/ansible mkdir -p tools/ansible ; cd tools/ansible
@ -79,9 +79,9 @@ $ mkvm -r s-adm
### Pour chaque machine ### Pour chaque machine
- créer la machine avec **mkvm -r**, les cartes réseau sont paramétrées par **mkvm** selon les spécifications - 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 - redémarrer
- utiliser le script gsb-start --> bash gsb-start - utiliser le script **gsb-start** : `bash gsb-start`
- ou sinon: - ou sinon:
```shell ```shell
mkdir -p tools/ansible ; cd tools/ansible mkdir -p tools/ansible ; cd tools/ansible
@ -94,3 +94,16 @@ bash pull-config
``` ```
- redémarrer - redémarrer
- **Remarque** : une machine doit avoir été redémarrée pour prendre en charge la nouvelle configuration - **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
View 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

View File

@ -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=${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" 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" 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"

13
r-vp1-fw.yml Normal file
View File

@ -0,0 +1,13 @@
---
- hosts: localhost
connection: local
vars:
- ip1: 192.168.0.51
- remip: 192.168.0.52
- mynet: 192.168.1.0
- remnet: 172.16.128.0
roles:
- fw-ferm

View File

@ -12,10 +12,8 @@
- base - base
- goss - goss
# - snmp-agent # - snmp-agent
# - firewall-vpn-r
- post - post
- wireguard-r - wireguard-r
- fw-ferm
- ssh-cli - ssh-cli
- syslog-cli - syslog-cli

12
r-vp2-fw.yml Normal file
View File

@ -0,0 +1,12 @@
---
- hosts: localhost
connection: local
vars:
- ip1: 192.168.0.52
- remip: 192.168.0.51
- mynet: 172.16.128.0
- remnet: 192.168.1.0
roles:
- fw-ferm

View File

@ -15,10 +15,7 @@
- dns-agence - dns-agence
- ssh-root-access - ssh-root-access
# - snmp-agent # - snmp-agent
# - firewall-vpn-l
- wireguard-l - wireguard-l
# - x509-l - post
- fw-ferm
- ssh-cli - ssh-cli
- syslog-cli - syslog-cli
- post

View File

@ -1,23 +0,0 @@
// 0.2 - putconf - vendredi 12 avril 2013, 08:54:33 (UTC+0200)
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
172.16.0.1;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};

View File

@ -1,4 +0,0 @@
---
- name: restart bind9
service: name=bind9 state=restarted

View File

@ -1,11 +0,0 @@
---
- name: Installation bind9
apt: name=bind9 state=present update_cache=yes
- name: Copie named.conf.options
copy: src=named.conf.options dest=/etc/bind
notify:
- restart bind9

View File

@ -0,0 +1 @@
BEATVER: "8.5.3"

View File

@ -1,4 +1,4 @@
- name: start filebeat - name: restart filebeat
service: service:
name: filebeat name: filebeat
state: started state: started

View File

@ -1,12 +1,12 @@
--- ---
- name: Récupération de filebeat - name: Récupération de filebeat
get_url: 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/ dest: /tmp/
- name: Installation de filebeat - name: Installation de filebeat
apt: apt:
deb: /tmp/filebeat-7.16.3-amd64.deb deb: /tmp/filebeat-${BEATVEAR}-amd64.deb
- name: Changement du fichier de conf - name: Changement du fichier de conf
copy: copy:
@ -15,9 +15,9 @@
- name: Configuration de filebeat - name: Configuration de filebeat
shell: filebeat modules enable system shell: filebeat modules enable system
notify: start filebeat notify: restart filebeat
- name: Lancement de la configuration de filebeat - name: Lancement de la configuration de filebeat
shell: filebeat setup -e shell: filebeat setup -e
notify: start filebeat notify: restart filebeat

View File

@ -1,11 +1,16 @@
# Fog # Fog
Ce rôle permet l'installation et la modification de Fog. Ce rôle permet l'installation et la modification de Fog.
## Fog, c'est quoi ? ## Fog, c'est quoi ?
Fog permet le déploiement d'images disque tel que Windows ou bien Linux en utilisant PXE (Preboot Execution Environment). Fog permet le déploiement d'images disque tel que Windows ou bien Linux en utilisant PXE (Preboot Execution Environment).
## Comment l'installer ? ## 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**

View File

@ -4,7 +4,7 @@
@def $DEV_PRIVATE = enp0s8; @def $DEV_PRIVATE = enp0s8;
@def $DEV_WORLD = enp0s9; @def $DEV_WORLD = enp0s9;
@def $DEV_VPN= wg0;
@def $NET_PRIVATE = 172.16.0.0/24; @def $NET_PRIVATE = 172.16.0.0/24;
table filter { table filter {
@ -33,23 +33,24 @@ table filter {
# we provide DNS and SMTP services for the internal net # we provide DNS and SMTP services for the internal net
interface $DEV_PRIVATE saddr $NET_PRIVATE { interface $DEV_PRIVATE saddr $NET_PRIVATE {
proto (udp tcp) dport domain ACCEPT; proto (udp tcp) dport domain ACCEPT;
proto udp dport bootps ACCEPT; proto udp dport bootps ACCEPT;
}
# interface réseau
interface $DEV_WORLD {
} }
# interface réseau
# the rest is dropped by the above policy # the rest is dropped by the above policy
}#FIN INPUT }#FIN INPUT
# outgoing connections are not limited # outgoing connections are not limited
chain OUTPUT policy ACCEPT; chain OUTPUT {
policy ACCEPT;
# interface $DEV_VPN proto ssh dport 22 ACCEPT;
}#FIN OUTPUT
chain FORWARD { chain FORWARD {
policy ACCEPT; policy ACCEPT;
proto icmp icmp-type echo-request ACCEPT;
# connection tracking # connection tracking
mod state state INVALID DROP; mod state state INVALID DROP;
mod state state (ESTABLISHED RELATED) ACCEPT; mod state state (ESTABLISHED RELATED) ACCEPT;

View File

@ -4,7 +4,7 @@
@def $DEV_PRIVATE = enp0s9; @def $DEV_PRIVATE = enp0s9;
@def $DEV_WORLD = enp0s8; @def $DEV_WORLD = enp0s8;
@def $DEV_VPN= wg0;
@def $NET_PRIVATE = 172.16.0.0/24; @def $NET_PRIVATE = 172.16.0.0/24;
table filter { table filter {
@ -34,7 +34,12 @@ table filter {
proto (udp tcp) dport domain ACCEPT; proto (udp tcp) dport domain ACCEPT;
proto udp dport bootps 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 réseau
interface $DEV_WORLD { interface $DEV_WORLD {
@ -44,8 +49,14 @@ table filter {
}#FIN INPUT }#FIN INPUT
# outgoing connections are not limited # 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 { chain FORWARD {
policy ACCEPT; policy ACCEPT;

View File

@ -0,0 +1,43 @@
# Définir la politique par défaut
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# Autoriser le trafic pour le VPN
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
# Autoriser les connexions établies et connexes
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autoriser les connexions sur l'interface loopback
iptables -A INPUT -i lo -j ACCEPT
# Autoriser les requêtes ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# Autoriser les connexions SSH depuis le réseau privé et depuis certains hôtes internet
iptables -A INPUT -p tcp -s 172.16.0.0/24,81.209.165.42 --dport ssh -j ACCEPT
# Autoriser les connexions DNS et SMTP sur l'interface privée
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p udp --dport domain -j ACCEPT
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p tcp --dport domain -j ACCEPT
iptables -A INPUT -i enp0s9 -s 172.16.0.0/24 -p udp --dport bootps -j ACCEPT
# Autoriser les requêtes ping sur l'interface VPN
iptables -A INPUT -i wg0 -p icmp --icmp-type echo-request -j ACCEPT
# Interdire les connexions SSH sur l'interface VPN
iptables -A INPUT -i wg0 -s 0.0.0.0/0 -p tcp --dport ssh -j DROP
# Interdire les connexions SSH sortantes sur l'interface VPN
iptables -A OUTPUT -o wg0 -d 0.0.0.0/0 -p tcp --dport ssh -j DROP
# Autoriser le trafic sur l'interface publique
iptables -A INPUT -i enp0s8 -j ACCEPT
# Autoriser les connexions depuis l'interface privée vers l'interface publique ou une autre interface privée
iptables -A FORWARD -i enp0s9 -o enp0s8 -j ACCEPT
iptables -A FORWARD -i enp0s9 -o enp0s9 -j ACCEPT
# Interdire toutes les autres connexions de forwarding
iptables -A FORWARD -j DROP

View File

@ -0,0 +1,50 @@
# Politique par défaut : DROP
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Autoriser les connexions VPN entrantes
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
# Autoriser les connexions établies et apparentées
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autoriser les connexions depuis l'interface locale
iptables -A INPUT -i lo -j ACCEPT
# Autoriser les requêtes ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# Autoriser les connexions SSH depuis le réseau privé et depuis certains hôtes Internet
iptables -A INPUT -s 172.16.0.0/24 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 81.209.165.42 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# Autoriser les connexions DNS et SMTP depuis le réseau privé
iptables -A INPUT -i enp0s8 -s 172.16.0.0/24 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i enp0s8 -s 172.16.0.0/24 -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i enp0s8 -s 172.16.0.0/24 -p udp --dport 67 -j ACCEPT
# Autoriser le trafic sortant
iptables -A OUTPUT -j ACCEPT
# Autoriser les requêtes ping sortantes
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
# Autoriser les connexions SSH sortantes
iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# Autoriser les connexions VPN sortantes
iptables -A FORWARD -i wg0 -o enp0s9 -j ACCEPT
iptables -A FORWARD -i enp0s9 -o wg0 -j ACCEPT
# Interdire les connexions SSH entrantes depuis l'interface VPN
iptables -A FORWARD -i wg0 -p tcp --dport 22 -j DROP
# Autoriser les connexions SSH sortantes vers l'interface VPN
iptables -A FORWARD -o wg0 -p tcp --dport 22 -j ACCEPT
# Autoriser les connexions établies et apparentées
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Autoriser le trafic depuis le réseau privé
iptables -A FORWARD -i enp0s8 -o enp0s9 -j ACCEPT

View File

@ -13,16 +13,3 @@
apt: apt:
name: nfs-common name: nfs-common
state: present 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

View File

@ -0,0 +1 @@
BEATVER: "8.5.3"

View File

@ -1,5 +1,5 @@
- name: start metricbeat - name: restart metricbeat
service: service:
name: metricbeat name: metricbeat
state: started state: restarted
enabled: yes enabled: yes

View File

@ -1,12 +1,12 @@
--- ---
- name: Récupération de metricbeat - name: Récupération de metricbeat
get_url: 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/ dest: /tmp/
- name: Installation de metricbeat - name: Installation de metricbeat
apt: apt:
deb: /tmp/metricbeat-7.16.3-amd64.deb deb: /tmp/metricbeat-${BEATVER}-amd64.deb
- name: Changement du fichier de conf - name: Changement du fichier de conf
copy: copy:
@ -15,9 +15,9 @@
- name: Configuration de metricbeat - name: Configuration de metricbeat
shell: metricbeat modules enable system shell: metricbeat modules enable system
notify: start metricbeat notify: restart metricbeat
- name: Lancement de la configuration de metricbeat - name: Lancement de la configuration de metricbeat
shell: metricbeat setup -e shell: metricbeat setup -e
notify: start metricbeat notify: restart metricbeat

View File

@ -26,6 +26,7 @@ define host {
host_name localhost host_name localhost
alias localhost alias localhost
address 127.0.0.1 address 127.0.0.1
parents r-int
} }

View File

@ -9,5 +9,6 @@ define host{
host_name s-adm host_name s-adm
alias debian-servers alias debian-servers
address 192.168.99.99 address 192.168.99.99
parents r-int
} }

View File

@ -9,5 +9,6 @@ define host{
host_name s-appli host_name s-appli
alias debian-servers alias debian-servers
address 172.16.0.3 address 172.16.0.3
parents r-int
} }

View File

@ -9,5 +9,6 @@ define host{
host_name s-backup host_name s-backup
alias serveur proxy alias serveur proxy
address 172.16.0.4 address 172.16.0.4
parents r-int
} }

View File

@ -9,6 +9,7 @@ define host{
host_name s-fog host_name s-fog
alias serveur proxy alias serveur proxy
address 172.16.0.16 address 172.16.0.16
parents r-int
} }

View File

@ -9,5 +9,6 @@ define host{
host_name s-infra host_name s-infra
alias debian-servers alias debian-servers
address 172.16.0.1 address 172.16.0.1
parents r-int
} }

View File

@ -9,6 +9,7 @@ define host{
host_name s-itil host_name s-itil
alias serveur proxy alias serveur proxy
address 172.16.0.9 address 172.16.0.9
parents r-int
} }

View File

@ -9,5 +9,6 @@ define host{
host_name s-nxc host_name s-nxc
alias debian-servers alias debian-servers
address 172.16.0.7 address 172.16.0.7
parents r-int
} }

View File

@ -9,6 +9,7 @@ define host{
host_name s-proxy host_name s-proxy
alias serveur proxy alias serveur proxy
address 172.16.0.2 address 172.16.0.2
parents r-int
} }

View File

@ -9,6 +9,7 @@ define host{
host_name s-win host_name s-win
alias serveur proxy alias serveur proxy
address 172.16.0.6 address 172.16.0.6
parents r-int
} }

View File

View File

@ -0,0 +1,23 @@
---
- name: mise a jour de resolv.conf...
copy:
src: /root/tools/ansible/gsb2023/roles/peertube/files/resolv.conf
dest: /etc/
mode: '0644'
- name: installation de docker...
shell: curl https://releases.rancher.com/install-docker/20.10.sh | sh
- name: attente de l'installation...
wait_for:
timeout: 30
host: localhost
- name: installation de k3s...
shell: curl -sfL https://get.k3s.io | sh -s - --docker
- name: mise a jour de resolv.conf...
copy:
src: /root/tools/ansible/gsb2023/roles/peertube/files/resolv.conf
dest: /etc/
mode: '0644'

0
roles/peertube/README.md Normal file
View File

View File

@ -0,0 +1 @@
nameserver 192.168.99.99

View File

@ -0,0 +1,139 @@
replicaCount: 1
image:
repository: chocobozzz/peertube
pullPolicy: IfNotPresent
tag: "v5.0.1-bullseye"
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
create: false
annotations: {}
name: ""
podAnnotations: {}
podSecurityContext: {}
securityContext: {}
service:
type: ClusterIP
port: 9000
nginxPort: 9001
## default config for postgresql should work, but feel free to modify it if required.
# must stay consistent with peertube configuration, otherwise peertube will crash
postgresql:
enabled: true
primary:
persistence:
enabled: true
existingClaim: "pvc-postgres"
global:
postgresql:
auth:
postgrePassword: "admin"
username: "user"
password: "user"
database: "peertube"
## the main list of variables tha will be applied in the peertube container
# any error or misconfiguration will make peertube crash.
peertube:
env:
dbUser: user # must be consistent with postgresql configuration
dbPasswd: user # must be consistent with postgresql configuration
dbSsl: false # disabled by default WARNING: ssl connection feature not tested, use at your own risk
dbHostname: peertube-gsb-postgresql # must be consistent with postgresql configuration
webHostname: peertube # must be changed to your local setup
secret: b2753b0f37444974de0e81f04815e6a889fcf8960bd203a01b624d8fa8a37683
smtpHostname: peertube-mail # must be consistent with mail configuration
smtpPort: 587 # must be consistent with mail configuration
smtpFrom: noreply@lan.lan # not configured by default, add something meaningfull if you want
smtpTls: false # disabled by default WARNING: tls connection feature not tested, use at your own risk
smtpDisableStartTls: false # unless crashes related to tls/ssl, this should be unchanged
adminEmail: root@localhost.lan # use this if you want peopleto be able to reach you
redisHostname: peertube-gsb-redis-master # must be consistent with redis configuration
redisAuth: peertube # must be consistent with redis configuration
app:
userCanRegister: true # control if people can register by themselves
rootPasswd: rootroot # CHANGE THIS! the default admin username is 'root' this variable define the password
## the next section configure at wich quality videos will be transcoded
transcoding360: true
transcoding480: true
transcoding720: true
transcoding1080: false
transcoding2160: false
## the configuration of the postfix server called 'mail' here
# change these settings if you know what you are doing
mail:
enbled: true
config:
general:
ALLOWED_SENDER_DOMAINS: "yes"
DKIM_AUTOGENERATE: "yes"
opendkim:
RequireSafeKeys: "no"
postfix:
smtp_tls_security_level: "secure" # works by default, any other tls level is untested
persistence:
enabled: false
service:
port: 587
## the configuration of the redis server
redis:
master:
persistence:
enabled: true
existingClaim: "pvc-redis"
replica:
persistence:
enabled: true
existingClaim: "pvc-redis"
auth:
enbled: true
password: "peertube"
## ingress configuration is very specific this part must be configured or else you'll get 503 or 404 errors
ingress:
enabled: false
className: ""
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/proxy-body-size: 4G # this caps the size of imported videos, if set low this might prevent you from uploading videos
# kubernetes.io/tls-acme: "true"
hosts:
- host: # your domain here
paths:
- path: /
pathType: ImplementationSpecific
tls:
# - secretName: chart-example-tls
- hosts:
- # your domain here
resources: {}
autoscaling:
enabled: false
minimumReplicas: 3
maximumReplicas: 20
targetCPUUtilizationPercentage: 90
targetMemoryUtilizationPercentage: 75
windowSeconds: 120
minCPUPercentage: 20
minMemoryPercentage: 30
## this section should be configured to match your needs and available ressources
persistence:
enabled: true
reclaimPolicy: Retain
redisVolumeStorage: 1Gi
peertubeVolumeStorage: 5Gi
postgresqlVolumeStorage: 1Gi
accessMode: ReadWriteOnce
nodeSelector: {}
tolerations: []
affinity: {}

View File

@ -0,0 +1,31 @@
---
- name: création du répertoire du dépot peertube...
file:
path: /root/tools/peertube
state: directory
mode: '0755'
- name: clonage du dépot peertube...
git:
repo: https://github.com/Elam-Monnot/Peertube-helm.git
dest: /root/tools/peertube
clone: yes
force: yes
- name: copie de values.yaml...
copy:
src: /root/tools/ansible/gsb2023/roles/peertube/files/values.yaml
dest: /root/tools/peertube/helm/
mode: '0644'
- name: installation de helm...
shell: curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
- name: exposition du cluster...
shell: export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
- name: installation de peertube...
shell: helm repo add postgresql https://charts.bitnami.com/bitnami && helm repo add redis https://charts.bitnami.com/bitnami && helm repo add mail https://bokysan.github.io/docker-postfix
- name: lancement du helm chart peertube...
shell: helm install --create-namespace -n peertube peertube-gsb /root/tools/peertube/helm

7
roles/post-lb/README.md Normal file
View 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

View 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

View 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

View File

@ -0,0 +1,4 @@
search gsb.lan
domain gsb.lan
nameserver 172.16.0.1

View 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

View File

@ -1,26 +0,0 @@
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
#auto lo
#iface lo inet loopback
#cote N-adm
allow-hotplug enp0s3
iface enp0s3 inet dhcp
# reseau entre vpn
allow-hotplug enp0s8
iface enp0s8 inet static
address 192.168.0.51
netmask 255.255.255.0
# reseau interne n-linkv
allow-hotplug enp0s9
iface enp0s9 inet static
address 192.168.1.2
netmask 255.255.255.0
up route add -net 172.16.128.0/24 gw 192.168.1.2
up route add default gw 192.168.1.1
# post-up /bin/bash /root/iptables-vpn
post-up /etc/init.d/ipsec restart

View File

@ -1,25 +0,0 @@
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
#auto lo
#iface lo inet loopback
# cote N-adm
allow-hotplug enp0s3
iface enp0s3 inet dhcp
# cote Agence
allow-hotplug enp0s8
iface enp0s8 inet static
address 172.16.128.254
netmask 255.255.255.0
# cote VPN
allow-hotplug enp0s9
iface enp0s9 inet static
address 192.168.0.52
netmask 255.255.255.0
up route add -net 192.168.1.0/24 gw 172.16.128.254
# post-up /bin/bash /root/iptables-vpn
post-up /etc/init.d/ipsec restart

View File

@ -0,0 +1,17 @@
### 0.1 - putconf - jeudi 30 mars 2023, 8:11:30 (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.120/24
gateway 192.168.99.99
# Réseau n-dmz
allow-hotplug enp0s8
iface enp0s8 inet static
address 192.168.100.20/24
post-up systemctl start k3s && sleep 20 && export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

View File

@ -21,4 +21,3 @@
#- name: Reboot #- name: Reboot
# shell: reboot # shell: reboot

View File

@ -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: Lancer le script r-vp2-post.sh pour récuperer le fichier de configuration et activer l'interface wg0.
**"ansible-playbook -i localhost, -c local r-vp1.yml"** puis reboot **r-vp1**. ### 🛠️ Lancer le script
```bash
cd /tools/ansible/gsb2023/Scripts
Sur **r-vp1**: ```
```bash
Attendre la fin de l'installation. Ensuite lancer un serveur http avec python3 pour récuperer le fichier bash r-vp2-post.sh
wg0-b.conf sur **r-vp2** . Lancer le script **r-vp1-post.sh** dans **/tools/ansible/gsb2023/Scripts**. ```
## Fin
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**.
redemarer les machines
```bash
reboot
```

View File

@ -4,7 +4,7 @@
roles: roles:
- base - base
- post - post-lb
- lb-web - lb-web
- snmp-agent - snmp-agent
- ssh-cli - ssh-cli

View File

@ -4,7 +4,8 @@
roles: roles:
- base - base
- post - post-lb
- lb-web - lb-web
- snmp-agent - snmp-agent
- ssh-cli - ssh-cli

11
s-peertube.yml Normal file
View File

@ -0,0 +1,11 @@
---
- hosts: localhost
connection: local
roles:
- base
- post
- snmp-agent
- ssh-cli
- peertube-k3s
- peertube

18
scripts/addint.s-peertube Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
nom=s-peertube
# N-adm (enp0s3)
VBoxManage modifyvm $nom --nic1 intnet
VBoxManage modifyvm $nom --intnet1 "n-adm"
VBoxManage modifyvm $nom --nictype1 82540EM
VBoxManage modifyvm $nom --cableconnected1 on
VBoxManage modifyvm $nom --nicpromisc1 allow-all
# N-dmz (enp0s8)
VBoxManage modifyvm $nom --nic2 intnet
VBoxManage modifyvm $nom --intnet2 "n-dmz"
VBoxManage modifyvm $nom --nictype2 82540EM
VBoxManage modifyvm $nom --cableconnected2 on
VBoxManage modifyvm $nom --nicpromisc2 allow-all

View File

@ -110,6 +110,8 @@ 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
create_if "${vm}" "n-adm" "n-dmz-db" create_if "${vm}" "n-adm" "n-dmz-db"
elif [[ "${vm}" == "s-peertube" ]] ; then
./addint.s-peertube
elif [[ "${vm}" == "r-vp1" ]] ; then elif [[ "${vm}" == "r-vp1" ]] ; then
./addint.r-vp1 ./addint.r-vp1
elif [[ "${vm}" == "r-vp2" ]] ; then elif [[ "${vm}" == "r-vp2" ]] ; then

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
#recuperation du fichier de config #recuperation du fichier de config
wget http://r-vp1.gsb.adm:8800/wg0-b.conf wget http://r-vp1.gsb.adm:8000/wg0-b.conf
#renomage fichier et mv #renomage fichier et mv
mv ./wg0-b.conf /etc/wireguard/wg0.conf mv ./wg0-b.conf /etc/wireguard/wg0.conf
#activation interface wg0 #activation interface wg0