Compare commits

..

7 Commits

Author SHA1 Message Date
f9e801c39e MAJ doc README.md 2024-01-17 18:06:26 +01:00
85374ee503 s-fog.yml et s-fog-post.yml 2024-01-17 17:00:31 +01:00
5232d80321 syntax dans inst-depl 2024-01-17 15:08:29 +01:00
5acca816af inst-depl 2024-01-17 15:01:52 +01:00
394a8d8cd8 'fogsettings : short hostname 2024-01-17 14:53:47 +01:00
ff03ee66a5 fog: test goss et fogsettings adresse 2024-01-17 14:45:05 +01:00
1e30fd87a9 adapt diverses 2024-01-17 13:39:34 +01:00
7 changed files with 114 additions and 95 deletions

View File

@ -1,13 +1,13 @@
# gsb2024
2024-01-13 ps
2024-01-17 18h04 ps
Environnement et playbooks **ansible** pour le projet **GSB 2024**
## Quickstart
Prérequis :
* une machine Linux Debian Bookworm ou Windows
* une machine **Linux Debian Bookworm** ou **Windows**
* VirtualBox
* git
* fichier machines virtuelles **ova** :
@ -38,6 +38,8 @@ Prérequis :
* **s-lb-web2** : Serveur Wordpress 2 Load Balancer
* **s-lb-db** : Serveur Mariadb pour Wordpress
* **s-nas** : Serveur NFS pour application Wordpress avec LB
* **s-kea1** : Serveur DHCP Kea HA 1
* **s-kea2** : Serveur DHCP Kea HA 2
## Les playbooks
@ -98,37 +100,40 @@ bash chname <nouveau_nom_de_machine>` , puis redémarrer
### Pour chaque machine
#### Etape 1
#### Etape 1 - Nommage machine
- créer la machine avec **mkvm -r**, les cartes réseau sont paramétrées par **mkvm** selon les spécifications
- ouvrir une session sur la machine considérée
- renommer la machine soit
* en utilisant le script de renommage comme suit :
` /root/tools/ansible/gsb2024/scripts/chname <nouveau_nom_de_machine>`
* soit avec :
* soit (ici on renomme la machine en **s-infra**) avec :
```shell
NHOST=mavm
sed -i "s/bookworm/${NHOST}/g" /etc/host{s,name}
sudo reboot # on redemarre
export HOST=s-infra
curl 192.168.99.99/gsbstore/inst1|bash
reboot # on redemarre
```
#### Etape 2
#### Etape 2 - installation outils, depot gsb2024 et lancement playbook
- utiliser le script **gsb-start** : `bash gsb-start`
- ou sinon:
```shell
mkdir -p tools/ansible ; cd tools/ansible
git clone https://gitea.lyc-lecastel.fr/gsb/gsb2024.git
cd gsb2024/pre
DEPL=192.168.99.99 bash gsbboot
cd ../.. ; bash pull-config
curl 192.168.99.99/gsbstore/inst2|bash
```
- le script recupere le dépot **gsb2024.git**
- il lance ensuite le script **pull-config** avec le script porant le nom de la machine
- on peut alors redémarrer
#### Etape 3
#### Etape 3 - Redémarrage et tests
- 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, en particulier la couche réseau et l'adressage.
- selon les situations, il est possible qu'un seul playbook ne soit pas suffisant pour installer complètement une machine. Dans ce cas de figure, le second playbook s'appelle **s-machine-post.yml**.
Il est à lancer depuis ''tools/ansible/gsb2024'' :
```shell
ansible-playbook -i localhost, -c local s-machine-post.yml
```
## Les tests

View File

@ -1,68 +1,77 @@
file:
/tftpboot/default.ipxe:
exists: true
mode: "0644"
owner: root
group: root
filetype: file
contains: []
/tftpboot/default.ipxe:
exists: true
mode: "0644"
owner: root
group: root
filetype: file
contains: []
contents: null
package:
apache2:
installed: true
versions:
- 2.4.57-2
isc-dhcp-server:
installed: true
versions:
- 4.4.3-P1-2
mariadb-server:
installed: true
versions:
- 1:10.11.4-1~deb12u1
tftpd-hpa:
installed: true
versions:
- 5.2+20150808-1.4
apache2:
installed: true
versions:
- 2.4.56-1~deb11u2
isc-dhcp-server:
installed: true
versions:
- 4.4.1-2.3+deb11u2
mariadb-server:
installed: true
versions:
- 1:10.5.21-0+deb11u1
tftpd-hpa:
installed: true
versions:
- 5.2+20150808-1.2
port:
tcp:80:
listening: true
ip:
- 0.0.0.0
tcp:443:
listening: true
ip:
- 0.0.0.0
tcp:80:
listening: true
ip:
- 0.0.0.0
tcp:443:
listening: true
ip:
- 0.0.0.0
udp:67:
listening: true
ip:
- 0.0.0.0
udp:69:
listening: true
ip:
- 0.0.0.0
service:
apache2:
enabled: true
running: true
isc-dhcp-server:
enabled: true
running: true
nfs-server:
enabled: true
running: true
tftpd-hpa:
enabled: true
running: true
apache2:
enabled: true
running: true
isc-dhcp-server:
enabled: true
running: true
nfs-server:
enabled: true
running: true
tftpd-hpa:
enabled: true
running: true
command:
ping -c 4 192.168.99.99:
exit-status: 0
stdout:
- 0% packet loss
stderr: []
timeout: 10000
ping -c 4 google.fr:
exit-status: 0
stdout:
- 0% packet loss
stderr: []
timeout: 10000
ping -c 4 192.168.99.99:
exit-status: 0
stdout:
- 0% packet loss
stderr: []
timeout: 10000
ping -c 4 google.fr:
exit-status: 0
stdout:
- 0% packet loss
stderr: []
timeout: 10000
process:
apache2:
running: true
apache2:
running: true
interface:
enp0s9:
exists: true
addrs:
- 172.16.64.16/24
enp0s9:
exists: true
addrs:
- 172.16.64.16/24

View File

@ -2,6 +2,7 @@
## aa : 2023-01-18 15:25
## ps : 2023-02-01 15:25
## ps : 2023-12-18 15:25
## ps : 2024-01-17 15:25
set -o errexit
set -o pipefail
@ -83,7 +84,7 @@ cp goss /usr/local/bin
(cat <<'EOT' > "${STOREREP}/inst1"
#!/bin/bash
if [[ -z ${HOST+x} ]]; then
if [[ -z "${HOST+x}" ]]; then
echo "erreur : variable HOST indefinie"
echo " HOST : adresse serveur deploiement"
echo "export HOST=s-xyzt ; ./$0"
@ -93,7 +94,7 @@ fi
hostname=$(hostname)
echo "${HOST}" > /etc/hostname
hostnamectl set-hostname "${HOST}"
sed -i "s/${hostname}/${HOST}/g" /etc/host{s,name}
sed -i "s/${hostname}/${HOST}/g" /etc/hosts
echo "vous pouvez redemarrer ..."
EOT
)

View File

@ -4,11 +4,11 @@
## https://wiki.fogproject.org/wiki/index.php?title=.fogsettings
## Version: 1.5.10
## Install time: Mon Jan 15 23:16:31 2024
ipaddress='172.16.0.8'
ipaddress='172.16.0.16'
copybackold='0'
interface='eth2'
interface='enp0s9'
submask='255.255.255.0'
hostname='s-fog.gsb.lan'
hostname='s-fog'
routeraddress='172.16.64.254'
plainrouter='172.16.64.254'
dnsaddress='172.16.0.1'
@ -34,11 +34,12 @@ caCreated='yes'
httpproto='https'
startrange='172.16.64.120'
endrange='172.16.64.140'
bootfilename='undionly.kpxe'
packages='apache2 bc build-essential cpp curl g++ gawk gcc genisoimage gettext git gzip htmldoc isc-dhcp-server isolinux lftp libapache2-mod-php libc6 libcurl4 liblzma-dev m4 mariadb-client mariadb-server net-tools nfs-kernel-server openssh-server php php-bcmath php-cli php-curl php-fpm php-gd php-intl php-json php-ldap php-mbstring php-mysql tar tftp-hpa tftpd-hpa unzip vsftpd wget zlib1g'
noTftpBuild=''
tftpAdvOpts=''
sslpath='/opt/fog/snapins/ssl/'
backupPath='/home/'
#backupPath='/home/'
armsupport='0'
php_ver='7.4'
sslprivkey='/opt/fog/snapins/ssl//.srvprivate.key'

View File

@ -27,23 +27,28 @@
- vsftpd
- wget
- name: creation /root/tmp
file:
path: /root/tmp
state: directory
- name: fichier config fogsettings
copy:
src: fogsettings
dest: /tmp/
dest: /root/tmp/
- name: Récupération archive d'installation Fog
get_url:
url: "{{ depl_url }}/{{ depl_fog }}"
dest: "/tmp/"
dest: "/root/tmp/"
- name: Décompression de l'archive
ansible.builtin.unarchive:
src: "/tmp/{{ depl_fog }}"
dest: "/tmp/"
src: "/root/tmp/{{ depl_fog }}"
dest: "/root/tmp/"
#- name: Exécution du script d'installation Fog
# ansible.builtin.shell: sudo bash /tmp/fogproject-1.5.10/bin/installfog.sh --recreate-keys -f /tmp/fogsettings -y
# args:
# chdir: "/tmp/fogproject-1.5.10/"
- name: Exécution du script d'installation Fog
ansible.builtin.shell: sudo bash /root/tmp/fogproject-1.5.10/bin/installfog.sh --recreate-keys -f /root/tmp/fogsettings -y
args:
chdir: "/root/tmp/fogproject-1.5.10/"

View File

@ -7,8 +7,6 @@
- goss
#- dhcp-fog
# - ssh-cli
# - snmp-agent
# - syslog-cli
- fog
#- fog
#- - journald-snd
#- post
- post