Compare commits

..

15 Commits

35 changed files with 189 additions and 105 deletions

View File

@ -1,6 +1,6 @@
# gsb2023
2023-01-06
2023-01-18 ps
Environnement et playbooks ansible pour le projet GSB 2023
@ -8,15 +8,28 @@ Environnement et playbooks ansible pour le projet GSB 2023
prérequis :
* une machine Debian Bullseye
* VirtualBox
* fichier machines viruelles ova :
* debian-bullseye-gsb-2023a.ova
* debian-buster-gsb-2023a.ova
## Les machines
* s-adm
* s-infra
* r-int
* r-ext
* s-proxy
* s-adm : routeur adm, DHCP + NAT, deploiement, proxy squid
* s-infra : DNS maitre
* r-int : routaage, DHCP
* r-ext : routage, NAT
* 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

View File

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

View File

@ -1,5 +1,5 @@
#!/bin/bash
## ps : 2021-04-01 15:25
## aa : 2023-04-18 15:25
set -o errexit
set -o pipefail
@ -9,11 +9,11 @@ apt update && apt upgrade
apt install -y apache2 git
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"
FIREL=9.5
str2="https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi9.5%2B3.0/fusioninventory-9.5+3.0.tar.bz2"
FIREL=10.0.3+1.0
str2="https://github.com/fusioninventory/fusioninventory-for-glpi/releases/download/glpi${FIREL}/fusioninventory-${FIREL}.tar.bz2"
FIAGREL=2.6
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
str4="wget -nc https://github.com/FOGProject/fogproject/archive/${FOGREL}.tar.gz -O fogproject-${FOGREL}.tar.gz"
WPREL=5.8.2
str5="wget -nc https://fr.wordpress.org/wordpress-${WPREL}-fr_FR.tar.gz"
WPREL=6.1.1
#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"
DOCKERREL=1.29.2
str7="curl -L https://github.com/docker/compose/releases/download/${DOCKERREL}/docker-compose-$(uname -s)-$(uname -m) -o docker-compose"
#DOCKERREL=1.29.2
#str7="curl -L https://github.com/docker/compose/releases/download/${DOCKERREL}/docker-compose-$(uname -s)-$(uname -m) -o docker-compose"
GESTSUPREL=3.2.15
str8="wget -nc https://gestsup.fr/downloads/versions/current/version/gestsup_${GESTSUPREL}.zip"
#GESTSUPREL=3.2.30
#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"
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
${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
@ -90,4 +92,3 @@ EOT
)
cat "${STOREREP}/getall"

View File

@ -1,5 +1,9 @@
#!/bin/bash
dir=/root/tools/ansible
prj=gsb2023
opt=""
if [ -z ${UREP+x} ]; then
UREP=https://gitea.lyc-lecastel.fr/gadmin/gsb2023.git
fi
@ -11,6 +15,14 @@ dir=/root/tools/ansible
cd "${dir}" || exit 1
hostname > hosts
ansible-pull -i "${dir}/hosts" -C main -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

1
proxy
View File

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

View File

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

View File

@ -1,16 +1,16 @@
---
- name: Téléchargement getdocker.sh
ansible.builtin.get_url:
url: http://s-adm.gsb.adm/gsbstore/getdocker.sh
dest: /tmp
mode: '0755'
- name: Supprime le fichier getdocker.sh si déjà présent
file:
state: absent
path: /tmp/getdocker.sh
- 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
ansible.builtin.script:
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'
shell: bash /tmp/getdocker.sh

View File

@ -1,5 +1,6 @@
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_agentx64: "fusioninventory-agent_windows-x64_2.6.exe"
depl_fusioninventory_agentx86: "fusioninventory-agent_windows-x86_2.6.exe"

View File

@ -1,5 +1,6 @@
#!/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
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
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email nagios.gsb22@gmail.com
email {{ MAIL_DEST }}
}

View File

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

View File

@ -4,6 +4,7 @@
name:
- postfix
- mailutils
- libsasl2-modules
state: latest
- name: Copie du fichier sasl_passwd
@ -12,17 +13,75 @@
src: sasl_passwd
dest: /etc/postfix/sasl/
- name: Copie du fichier main.cf
tags: main.cf
template:
src: main.cf.j2
dest: /etc/postfix.main.cf
- name: ajout relay host gmail
tags: postfix
replace:
path: /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
command: postmap /etc/postfix/sasl/sasl_passwd
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
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

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

View File

@ -1,3 +1,3 @@
##Installation de nfs
# Installation de nfs-server
Ce rôle télécharge NFS puis copie un fichier de configuration pour partager le dossier /home/wordpress.
Ce rôle installe **nfs-server** puis copie le fichier de configuration **exports** pour exporter le répertoire **/home/wordpress** hébergeant le code **wordpress**.

View File

@ -9,13 +9,13 @@
name: wireguard-tools
state: present
- name: installation de sshpass
apt:
name: sshpass
state: present
#- name: installation de sshpass
# apt:
# name: sshpass
# state: present
- 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/"
#- 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/"
- name: renommage du fichier de configuration
command: "mv /etc/wireguard/wg0-b.conf /etc/wireguard/wg0.conf"

View File

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

View File

@ -1,21 +1,24 @@
#!/bin/bash
mkvmrelease="v1.2"
ovarelease="2023a"
ovafogrelease="2023a"
ovafile="$HOME/Téléchargements/debian-bullseye-gsb-${ovarelease}.ova"
ovafilefog="$HOME/Téléchargements/debian-buster-${ovafogrelease}.ova"
ovafilefog="$HOME/Téléchargements/debian-buster-gsb-${ovafogrelease}.ova"
deletemode=0
usage () {
echo "$0 - version ${ovarelease}"
echo "$0 - version ${mkvmrelease} - Ova version ${ovarelease}"
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
}
create_vm () {
nom="$1"
nomova=${ovafile}
local nom="$1"
local nomova="${ovafile}"
if [[ "${nom}" == "s-fog" ]] ; then
nomova="${ovafilefog}"
fi
@ -23,6 +26,9 @@ create_vm () {
echo "$0 : erreur ouverture fichier ${nomova} ..."
exit 3
fi
if [[ "${deletemode}" = 1 ]] ; then
VBoxManage unregistervm --delete "${nom}"
fi
vboxmanage import "${nomova}" --vsys 0 --vmname "${nom}"
}
@ -38,15 +44,25 @@ setif () {
create_if () {
# enp0s3
setif "$1" 1 "$2"
setif "$1" 2 "$3"
#(enp0s8)
setif "$1" 2 "$3"
#(enp0s9)
if [[ -n "$4" ]] ; then
setif "$1" 3 "$4"
fi
}
if [[ $# != 1 ]] ; then
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}"
@ -56,9 +72,7 @@ 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"
create_if "${vm}" "n-adm" "n-link" "n-wifi"
setif "${vm}" 4 "n-user"
setif "${vm}" 5 "n-infra"
elif [[ "${vm}" == "r-ext" ]] ; then
@ -74,9 +88,8 @@ elif [[ "${vm}" == "s-itil" ]] ; then
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-infra" "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"
@ -86,12 +99,10 @@ 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
@ -102,8 +113,7 @@ 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"
echo "$0 : vm ${vm} non prevue "
exit 2
fi

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
droits et créer des dossiers partagés.
- Une fois l'installation du serveur Windows, renommer le serveur en s-win et installer git.
- 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
cette machine puisse ping le serveur.
## Utilisation des comptes utilisateurs
Après il suffit de changer le domaine de cette machine et la redémarrer.
suite à ça, connecter vous avec les identifiants d'un utilisateurs.
- 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).
- Redémarrer puis se connecter avec les identifiants choisis.