Compare commits
6 Commits
v0.0.1n-ps
...
v0.0.1u-jm
Author | SHA1 | Date | |
---|---|---|---|
8cfbefc4dc | |||
0697ad4eec | |||
ae54eb5cb8 | |||
2fe557e70b | |||
877f0a054f | |||
74433d2655 |
43
README.md
43
README.md
@ -1,18 +1,22 @@
|
|||||||
# gsb2024
|
# gsb2024
|
||||||
|
|
||||||
2024-12-19 ps
|
2024-12-21 ps
|
||||||
|
|
||||||
Environnement et playbooks ansible pour le projet GSB 2024
|
Environnement et playbooks ansible pour le projet GSB 2024
|
||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
|
|
||||||
Prérequis :
|
Prérequis :
|
||||||
* une machine Debian Bookworm
|
* une machine LInux Debian Bookworm ou Windows
|
||||||
* VirtualBox
|
* VirtualBox
|
||||||
|
* git
|
||||||
* fichier machines virtuelles **ova** :
|
* fichier machines virtuelles **ova** :
|
||||||
* **debian-bookworm-gsb-2023c.ova**
|
* **debian-bookworm-gsb-2023c.ova**
|
||||||
* **debian-buster-gsb-2023a.ova**
|
* **debian-buster-gsb-2023a.ova**
|
||||||
|
|
||||||
|
|
||||||
|
## Les machines
|
||||||
|
|
||||||
* **s-adm** : routeur adm, DHCP + NAT, deploiement, proxy squid
|
* **s-adm** : routeur adm, DHCP + NAT, deploiement, proxy squid
|
||||||
* **s-infra** : DNS maitre, autoconfiguration navigateurs avec **wpad**
|
* **s-infra** : DNS maitre, autoconfiguration navigateurs avec **wpad**
|
||||||
* **r-int** : routage, DHCP
|
* **r-int** : routage, DHCP
|
||||||
@ -38,6 +42,7 @@ Prérequis :
|
|||||||
|
|
||||||
## Les playbooks
|
## Les playbooks
|
||||||
|
|
||||||
|
Il existe un playbook ansible pour chaque machine à installer, nommé comme la machine avec l'extension **.yml**
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
@ -49,25 +54,26 @@ et pour **s-fog** :
|
|||||||
* **debian-buster-2023a.ova** (2023-01-06)
|
* **debian-buster-2023a.ova** (2023-01-06)
|
||||||
* Debian Buster 10 - 2 cartes - 1 Go - stockage 20 Go
|
* Debian Buster 10 - 2 cartes - 1 Go - stockage 20 Go
|
||||||
|
|
||||||
|
Les images **.ova** doivent etre stockées dans le répertoire habituel de téléchargement de l'utilisateur courant.
|
||||||
|
|
||||||
### Création d'une VM
|
### Création d'une VM
|
||||||
|
|
||||||
Récupérer le dépot gsb2024.git avec :
|
Sur la machine physique, récupérer le dépot **gsb2024.git** avec :
|
||||||
```shell
|
```shell
|
||||||
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
|
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
|
||||||
cd gsb2024
|
|
||||||
```
|
```
|
||||||
|
|
||||||
On utilisera le script (bash) **mkvm** ou (PowerShell) **mkvm.ps1** pour créer une VM Virtualbox.
|
On utilisera le script (bash) **mkvm** ou (PowerShell) **mkvm.ps1** pour créer une VM Virtualbox.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
gsb2024>
|
cd gsb2024/scripts
|
||||||
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.
|
||||||
|
* démarrer la VM puis ouvir une session
|
||||||
* utiliser le script de renommage comme suit :
|
* utiliser le script de renommage comme suit :
|
||||||
```shell
|
```shell
|
||||||
bash chname <nouveau_nom_de_machine>` , puis redémarrer
|
bash chname <nouveau_nom_de_machine>` , puis redémarrer
|
||||||
@ -89,20 +95,35 @@ bash chname <nouveau_nom_de_machine>` , puis redémarrer
|
|||||||
|
|
||||||
### Pour chaque machine
|
### Pour chaque machine
|
||||||
|
|
||||||
|
#### Etape 1
|
||||||
|
|
||||||
- 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>`
|
- ouvrir une session sur la machine considérée
|
||||||
- redémarrer
|
- renomme la machine soit
|
||||||
|
* en utilisant le script de renommage comme suit :
|
||||||
|
` /root/tools/ansible/gsb2024/scripts/chname <nouveau_nom_de_machine>`
|
||||||
|
* soit avec :
|
||||||
|
```shell
|
||||||
|
NHOST=mavm
|
||||||
|
sed -i "s/bookworm/${NHOST}/g" /etc/host{s,name}
|
||||||
|
sudo reboot # on redemarre
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Etape 2
|
||||||
|
|
||||||
- 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
|
||||||
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
|
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
|
||||||
cd gsb2024/pre
|
cd gsb2024/pre
|
||||||
export DEPL=192.168.99.99
|
DEPL=192.168.99.99 bash gsbboot
|
||||||
bash gsbboot
|
|
||||||
cd ../..
|
cd ../..
|
||||||
bash pull-config
|
bash pull-config
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Etape 3
|
||||||
|
|
||||||
- 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
|
||||||
|
|
||||||
|
124
goss/s-adm.yaml
124
goss/s-adm.yaml
@ -1,72 +1,70 @@
|
|||||||
package:
|
package:
|
||||||
dnsmasq:
|
dnsmasq:
|
||||||
installed: true
|
installed: true
|
||||||
squid:
|
squid:
|
||||||
installed: true
|
installed: true
|
||||||
addr:
|
addr:
|
||||||
tcp://depl.sio.lan:80:
|
tcp://depl.sio.lan:80:
|
||||||
reachable: true
|
reachable: true
|
||||||
timeout: 500
|
timeout: 500
|
||||||
port:
|
port:
|
||||||
tcp:53:
|
tcp:53:
|
||||||
listening: true
|
listening: true
|
||||||
ip:
|
ip:
|
||||||
- 0.0.0.0
|
- 0.0.0.0
|
||||||
tcp6:53:
|
tcp6:53:
|
||||||
listening: true
|
listening: true
|
||||||
ip:
|
ip:
|
||||||
- '::'
|
- '::'
|
||||||
udp:53:
|
udp:53:
|
||||||
listening: true
|
listening: true
|
||||||
ip:
|
ip:
|
||||||
- 0.0.0.0
|
- 0.0.0.0
|
||||||
udp:67:
|
udp:67:
|
||||||
listening: true
|
listening: true
|
||||||
ip:
|
ip:
|
||||||
- 0.0.0.0
|
- 0.0.0.0
|
||||||
udp6:53:
|
udp6:53:
|
||||||
listening: true
|
listening: true
|
||||||
ip:
|
ip:
|
||||||
- '::'
|
- '::'
|
||||||
service:
|
service:
|
||||||
dnsmasq:
|
dnsmasq:
|
||||||
enabled: true
|
enabled: true
|
||||||
running: true
|
running: true
|
||||||
squid:
|
squid:
|
||||||
enabled: true
|
enabled: true
|
||||||
running: true
|
running: true
|
||||||
ssh:
|
ssh:
|
||||||
enabled: true
|
enabled: true
|
||||||
running: true
|
running: true
|
||||||
user:
|
user:
|
||||||
dnsmasq:
|
dnsmasq:
|
||||||
exists: true
|
exists: true
|
||||||
gid: 65534
|
gid: 65534
|
||||||
groups:
|
groups:
|
||||||
- nogroup
|
- nogroup
|
||||||
home: /var/lib/misc
|
home: /var/lib/misc
|
||||||
shell: /usr/sbin/nologin
|
shell: /usr/sbin/nologin
|
||||||
group:
|
|
||||||
ssh:
|
|
||||||
exists: true
|
|
||||||
command:
|
command:
|
||||||
/sbin/sysctl net.ipv4.ip_forward:
|
/sbin/sysctl net.ipv4.ip_forward:
|
||||||
exit-status: 0
|
exit-status: 0
|
||||||
stdout:
|
stdout:
|
||||||
- net.ipv4.ip_forward = 1
|
- net.ipv4.ip_forward = 1
|
||||||
stderr: []
|
stderr: []
|
||||||
timeout: 10000
|
timeout: 10000
|
||||||
dns:
|
dns:
|
||||||
depl.sio.lan:
|
depl.sio.lan:
|
||||||
resolveable: true
|
resolveable: true
|
||||||
timeout: 500
|
resolvable: null
|
||||||
|
timeout: 500
|
||||||
process:
|
process:
|
||||||
dnsmasq:
|
dnsmasq:
|
||||||
running: true
|
running: true
|
||||||
squid:
|
squid:
|
||||||
running: true
|
running: true
|
||||||
interface:
|
interface:
|
||||||
enp0s8:
|
enp0s8:
|
||||||
exists: true
|
exists: true
|
||||||
addrs:
|
addrs:
|
||||||
- 192.168.99.99/24
|
- 192.168.99.99/24
|
||||||
|
@ -5,7 +5,7 @@ prj=gsb2024
|
|||||||
opt=""
|
opt=""
|
||||||
|
|
||||||
if [ -z ${UREP+x} ]; then
|
if [ -z ${UREP+x} ]; then
|
||||||
UREP=https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
|
UREP=https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dir=/root/tools/ansible
|
dir=/root/tools/ansible
|
||||||
|
16
roles/journald-snd/README.md
Normal file
16
roles/journald-snd/README.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Role syslog : installation et configuration de syslog serveur (centralisation des logs)
|
||||||
|
***
|
||||||
|
|
||||||
|
Ce role a pour objectif de activer le module UDP dans le fichier /etc/rsyslog.conf pour accepter les logs entrants des machines concernées :
|
||||||
|
on décommente la ligne suivante :
|
||||||
|
'module(load="imudp"\)'
|
||||||
|
|
||||||
|
Ensuite le role active l'écoute du module UDP sur le port 514 afin de pouvoir envoyer les logs.
|
||||||
|
on décommente la ligne suivante dans le même fichier que ci-dessus :
|
||||||
|
'input\(type="imudp" port="514"\)'
|
||||||
|
|
||||||
|
pour finir le role va charger le module UDP afin que la machine **s-infra** puissent reçevoir les logs entrants.
|
||||||
|
Pour faire cela on décommente la ligne suivante dans le fichier /etc/systemd/journald.conf :
|
||||||
|
'ForwardToSyslog=yes'
|
||||||
|
|
||||||
|
pour finir le role va redemmarer automatiquement les services journald et rsyslog
|
10
roles/journald-snd/handlers/main.yml
Normal file
10
roles/journald-snd/handlers/main.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
- name: enable systemd-journal-upload
|
||||||
|
service:
|
||||||
|
name: systemd-journal-upload.service
|
||||||
|
state: enabled
|
||||||
|
|
||||||
|
- name: restart systemd-journal-upload
|
||||||
|
service:
|
||||||
|
name: systemd-journal-upload.service
|
||||||
|
state: restarted
|
31
roles/journald-snd/tasks/main.yml
Normal file
31
roles/journald-snd/tasks/main.yml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
- name: 1. installe systemd-journal-remote
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- systemd-journal-remote
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: 2. indique l'URL journald distant
|
||||||
|
replace:
|
||||||
|
path: /etc/systemd/journal-upload.conf
|
||||||
|
regexp: '^#URL='
|
||||||
|
replace: 'URL=http://syslog.gsb.adm:19532'
|
||||||
|
|
||||||
|
- name: 3. Just force systemd to reread configs (2.4 and above)
|
||||||
|
ansible.builtin.systemd_service:
|
||||||
|
daemon_reload: true
|
||||||
|
|
||||||
|
- name: 4. active le service systemd-journald-upload
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: systemd-journal-upload.service
|
||||||
|
enabled: yes
|
||||||
|
|
||||||
|
- name: 5. redemarre systemd-journal-upload.service
|
||||||
|
service:
|
||||||
|
name: systemd-journal-upload.service
|
||||||
|
state: restart
|
||||||
|
#notify:
|
||||||
|
#- enable systemd-journal-upload
|
||||||
|
#- restart systemd-journal-upload
|
||||||
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
|||||||
- dns-master
|
- dns-master
|
||||||
- webautoconf
|
- webautoconf
|
||||||
- snmp-agent
|
- snmp-agent
|
||||||
# - syslog-cli
|
- journald-snd
|
||||||
- ssh-cli
|
- ssh-cli
|
||||||
- post
|
- post
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user