Compare commits
16 Commits
v0.0.1n-as
...
v0.0.2e-ps
Author | SHA1 | Date | |
---|---|---|---|
49ca8325e8 | |||
08973e83b3 | |||
79c7bd34e6 | |||
0cd9f1bb4c | |||
4dd5b711e2 | |||
f4361d9ecb | |||
5d767a195d | |||
7092ed5963 | |||
a508e7e65c | |||
da5011466b | |||
e395c14752 | |||
c5c261893c | |||
b8d05aa7c5 | |||
ce6d9e4c57 | |||
8d241f8786 | |||
2822944c95 |
25
README.md
25
README.md
@ -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
|
||||
|
@ -1,8 +0,0 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
connection: local
|
||||
|
||||
roles:
|
||||
- goss
|
||||
- docker-graylog-pont
|
||||
- post
|
@ -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"
|
||||
|
||||
|
@ -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,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
|
||||
|
25
roles/lb-front/tasks/main.yml
Normal file
25
roles/lb-front/tasks/main.yml
Normal file
@ -0,0 +1,25 @@
|
||||
- name: install haproxy
|
||||
apt:
|
||||
name: haproxy
|
||||
state: present
|
||||
|
||||
- name: parametre backend et fontend
|
||||
blockinfile:
|
||||
path: /etc/haproxy/haproxy.cfg
|
||||
block: |
|
||||
frontend proxypublic
|
||||
bind 192.168.56.2:80
|
||||
default_backend fermeweb
|
||||
|
||||
backend fermeweb
|
||||
balance roundrobin
|
||||
option httpclose
|
||||
#option httpchk HEAD / HTTP/1.0
|
||||
server web1.test 192.168.56.3:80 check
|
||||
#server web2.test 192.168.56.4:80 check
|
||||
|
||||
- name: redemarre haproxy
|
||||
service:
|
||||
name: haproxy
|
||||
state: restarted
|
||||
enabled: yes
|
10
roles/lb-nfs-server/README.md
Normal file
10
roles/lb-nfs-server/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
# Role s-nas-server
|
||||
## Installation de nfs-server et mise en oeuvre du partage /home/wordpress
|
||||
|
||||
Ce rôle :
|
||||
* installe **nfs-server**
|
||||
* copie le fichier de configuration **exports** pour exporter le répertoire **/home/wordpress**
|
||||
* relance le service **nfs-server**
|
||||
|
||||
### Objectif
|
||||
Le répertoire **/home/wordpress** est exporté par **nfs** sur le réseau **n-dmz-db**
|
2
roles/lb-web/defaults/main.yml
Normal file
2
roles/lb-web/defaults/main.yml
Normal file
@ -0,0 +1,2 @@
|
||||
depl_url: "http://s-adm.gsb.adm/gsbstore/"
|
||||
depl_wordpress: "wordpress-6.1.1-fr_FR.tar.gz"
|
1
roles/nagios/defaults/main.yml
Normal file
1
roles/nagios/defaults/main.yml
Normal file
@ -0,0 +1 @@
|
||||
MAIL_DEST: "anthony.arnoux@protonmail.ch"
|
@ -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 }}
|
||||
}
|
||||
|
||||
|
||||
|
@ -4,32 +4,30 @@ Nextcloud et Traefik fonctionnent grâce à docker. Pour pouvoir faire fonctionn
|
||||
|
||||
## Premièrement
|
||||
|
||||
Le playbook va créer le dossier nxc à la racine de root. Deux fichier docker-compose "nextcloud.yml" et "traefik.yml" y seront copiés depuis le répertoire "files" du playbook.
|
||||
Enfin, dans le répertoire nxc, seront créé les dossier certs et config.
|
||||
Le playbook crée le dossier **nxc** à la racine de root. Les fichier docker-compose "nextcloud.yml" et "traefik.yml" y seront copiés depuis le répertoire "files" du playbook.
|
||||
Enfin, dans le répertoire nxc, seront créés les répertoires **certs** et **config**.
|
||||
|
||||
### Deuxièmement
|
||||
## 2. Copie des fichiers
|
||||
Le playbook copier les fichiers placés dans "files" et les placer dans les bons répertoires.
|
||||
|
||||
Le playbook va copier les fichiers placés dans "files" et les placer dans les bons répertoires.
|
||||
## 3. Génération du certificat
|
||||
|
||||
#### Troisièmement
|
||||
Le playbook crée un certificat **x509** grâce à **mkcert**, il s'agit d'une solution permettant de créer des certificats auto-signés. Pour celai, il télécharge **mkcert** sur **s-adm** (utiliser le script **getall**).
|
||||
|
||||
Le playbook va créer un certificat x509 grâce à mkcert, il s'agit d'une solution permettant de créer
|
||||
des certificats auto-signés. Pour cela il télécharge mkcert sur s-adm (utiliser le getall).
|
||||
**mkcert** est placé dans : /usr/local/bin/
|
||||
|
||||
mkcert sera placé dans : /usr/local/bin/
|
||||
|
||||
Pour créer le certificat le playbook va executer des lignes de commandes (lancé depuis nxc/) :
|
||||
Pour créer le certificat, le playbook exécute les commandes (lancé depuis nxc/) :
|
||||
```
|
||||
/usr/local/bin/mkcert -install # Installe mkcert
|
||||
/usr/local/bin/mkcert -key-file key.pem -cert-file cert.pem "hôte.domaine.local" "*.domaine.local" #Crée le certificat le DNS spécifié
|
||||
```
|
||||
##### Quatrièmement
|
||||
## 4. Lancement
|
||||
|
||||
Le playbook va lancer les fichier "docker-compose" à savoir : nextcloud.yml et traefik.yml.
|
||||
Cela va installer les solutions automatiquement. Nextcloud est alors fonctionnel avec
|
||||
un proxy inverse qui va rediriger en HTTPS.
|
||||
Le playbook lance les fichiers "docker-compose" à savoir : nextcloud.yml et traefik.yml qui démarrent les deux piles **docker**.
|
||||
|
||||
Nextcloud est alors fonctionnel avec le proxy inverse **traefik** assurant la redirection vers HTTPS.
|
||||
|
||||
|
||||
ATTENTION : Après avoir relancé la VM, executez le script "nxc-start.sh" afin d'installer les piles applicatives.
|
||||
Une fois le script fini, accedez au site :
|
||||
https://s-nxc.gsb.lan
|
||||
ATTENTION : Après avoir relancé la VM, executez le script "nxc-start.sh" afin d'installer les piles applicatives.
|
||||
|
||||
Une fois le script terminé, le site est disponible ici : https://s-nxc.gsb.lan
|
||||
|
@ -8,37 +8,30 @@ iface lo inet loopback
|
||||
# Reseau N-adm
|
||||
allow-hotplug enp0s3
|
||||
iface enp0s3 inet static
|
||||
address 192.168.99.12
|
||||
netmask 255.255.255.0
|
||||
address 192.168.99.12/24
|
||||
|
||||
|
||||
# Reseau liaison avec r-ext
|
||||
allow-hotplug enp0s8
|
||||
iface enp0s8 inet static
|
||||
address 192.168.200.254
|
||||
netmask 255.255.255.0
|
||||
address 192.168.200.254/24
|
||||
gateway 192.168.200.253
|
||||
up ip route add default via 192.168.200.253
|
||||
|
||||
|
||||
# Reseau wifi
|
||||
allow-hotplug enp0s9
|
||||
iface enp0s9 inet static
|
||||
address 172.16.65.254
|
||||
netmask 255.255.255.0
|
||||
address 172.16.65.254/24
|
||||
|
||||
|
||||
# Reseau user
|
||||
allow-hotplug enp0s10
|
||||
iface enp0s10 inet static
|
||||
address 172.16.64.254
|
||||
netmask 255.255.255.0
|
||||
address 172.16.64.254/24
|
||||
|
||||
|
||||
# Reseau infra
|
||||
allow-hotplug enp0s16
|
||||
iface enp0s16 inet static
|
||||
address 172.16.0.254
|
||||
netmask 255.255.255.0
|
||||
up /root/routagenat
|
||||
address 172.16.0.254/24
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -3,11 +3,11 @@
|
||||
- name: Copie du fichier sysctl.conf
|
||||
copy: src=sysctl.conf dest=/etc/
|
||||
|
||||
- name: copier le script de routage
|
||||
copy: src=routagenat dest=/root/
|
||||
#- name: copier le script de routage
|
||||
# copy: src=routagenat dest=/root/
|
||||
|
||||
- name: rendre executabe le script
|
||||
shell: chmod +x /root/routagenat
|
||||
#- name: rendre executabe le script
|
||||
# shell: chmod +x /root/routagenat
|
||||
|
||||
#- name: exectuer le script
|
||||
# script: /root/routagenat
|
||||
|
@ -1,2 +0,0 @@
|
||||
depl_url: "http://s-adm.gsb.adm/gsbstore/"
|
||||
depl_wordpress: "wordpress-5.8.2-fr_FR.tar.gz"
|
@ -1,11 +0,0 @@
|
||||
---
|
||||
- name: Installation d'HAproxy
|
||||
apt: pkg=haproxy state=present update_cache=yes
|
||||
|
||||
- name: Fichier de configuration
|
||||
copy: src=haproxy.cfg dest=/etc/haproxy/haproxy.cfg
|
||||
notify:
|
||||
- restart haproxy
|
||||
|
||||
- name: Copie de goss
|
||||
copy: src=goss.yaml dest=/root
|
@ -1,3 +0,0 @@
|
||||
##Installation de nfs
|
||||
|
||||
Ce rôle télécharge NFS puis copie un fichier de configuration pour partager le dossier /home/wordpress.
|
@ -8,7 +8,7 @@
|
||||
- s-ssh
|
||||
- dnsmasq
|
||||
- squid
|
||||
- local-store
|
||||
# - local-store
|
||||
- snmp-agent
|
||||
- syslog-cli
|
||||
- post
|
||||
|
@ -1,11 +0,0 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
connection: local
|
||||
|
||||
roles:
|
||||
- base
|
||||
- s-lb-web-ab
|
||||
- snmp-agent
|
||||
- s-nas-client
|
||||
- post
|
||||
|
@ -1,18 +0,0 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
connection: local
|
||||
vars:
|
||||
wp_mysql_db: "wordpress"
|
||||
wp_mysql_user: "wp"
|
||||
wp_mysql_password: "wp"
|
||||
wp_mysql_host: "192.168.102.50"
|
||||
|
||||
roles:
|
||||
- base
|
||||
- goss
|
||||
- apache2
|
||||
- s-lb-wordpress
|
||||
- snmp-agent
|
||||
- post
|
||||
- mysql
|
||||
- php-fpm
|
46
scripts/mkvm
46
scripts/mkvm
@ -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-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
|
||||
|
135
scripts/mkvm.pl
Executable file
135
scripts/mkvm.pl
Executable file
@ -0,0 +1,135 @@
|
||||
#!/usr/pbin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use v5.10;
|
||||
|
||||
my $ovarelease = "2023a";
|
||||
my $ovafogrelease = "2023a";
|
||||
my $home=$ENV{'HOME'};
|
||||
my $ovafile="$home/Téléchargements/debian-bullseye-gsb-".$ovarelease.".ova";
|
||||
my $ovafilefog="$home/Téléchargements/debian-buster-gsb-i".$ovafogrelease.".ova";
|
||||
|
||||
my %vmtab = (
|
||||
#name => "s-adm", params => ":1024:"
|
||||
name => "s-adm", params => ":1024:n-adm:n-infra",
|
||||
name => "s-infra", params => ":1024:n-adm:n-infra",
|
||||
name => "s-proxy", params => ":1024:n-adm:n-infra",
|
||||
name => "r-int", params => ":1024:n-adm:n-link:n-wifi:n-user:n-infra",
|
||||
name => "r-ext", params => ":1024:n-adm:n-dmz:eno1:n-linkvi:n-link",
|
||||
name => "s-mon", params => ":1024:n-adm:n-infra",
|
||||
name => "s-itil", params => ":1024:n-adm:n-infra",
|
||||
name => "s-appli", params => ":1024:n-adm:n-infra",
|
||||
name => "s-backup", params => ":1024:n-adm:n-infra",
|
||||
name => "s-fog", params => ":1024:n-adm:n-infra:n-user",
|
||||
name => "s-nxc", params => ":1024:n-adm:n-infra",
|
||||
|
||||
)
|
||||
|
||||
sub usage () {
|
||||
say "$0 - version ${ovarelease}";
|
||||
say "$0 : creation VM et parametrage interfaces";
|
||||
say "usage : $0 <s-infra|r-int|r-ext|s-proxy|s-mon>";
|
||||
exit 1 ;
|
||||
}
|
||||
|
||||
sub create_vm () {
|
||||
my $nom = shift ;
|
||||
my $nomova = shift ;
|
||||
if ( $nom == "s-fog" ) {
|
||||
$nomova = $ovafilefog;
|
||||
}
|
||||
if ( ! -r $nomova ) {
|
||||
say "$0 : erreur ouverture fichier $nomova ..."
|
||||
exit 3
|
||||
}
|
||||
qx (vboxmanage import $nomova --vsys 0 --vmname $nom);
|
||||
}
|
||||
|
||||
sub setif () {
|
||||
my ($vm, $interf, $parm) = @ARGV;
|
||||
qx(VBoxManage modifyvm $vm --nic"${2}" intnet);
|
||||
qx(VBoxManage modifyvm $vm --intnet"${2}" "$3");
|
||||
qx(VBoxManage modifyvm $vm --nictype"${2}" 82540EM);
|
||||
qx(VBoxManage modifyvm $vm --cableconnected"${2}" on);
|
||||
qx(VBoxManage modifyvm $vm --nicpromisc"${2}" allow-all);
|
||||
}
|
||||
|
||||
sub create_if () {
|
||||
# enp0s3
|
||||
setif "$1" 1 "$2"
|
||||
setif "$1" 2 "$3"
|
||||
#(enp0s8)
|
||||
}
|
||||
|
||||
|
||||
create_vm "${vm}"
|
||||
if [[ "${vm}" == "s-infra" ]] ; then
|
||||
create_if "${vm}" "n-adm" "n-infra"
|
||||
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"
|
||||
setif "${vm}" 4 "n-user"
|
||||
setif "${vm}" 5 "n-infra"
|
||||
elif [[ "${vm}" == "r-ext" ]] ; then
|
||||
./addint.r-ext
|
||||
elif [[ "${vm}" == "s-mon" ]] ; then
|
||||
create_if "${vm}" "n-adm" "n-infra"
|
||||
elif [[ "${vm}" == "s-appli" ]] ; then
|
||||
create_if "${vm}" "n-adm" "n-infra"
|
||||
elif [[ "${vm}" == "s-backup" ]] ; then
|
||||
create_if "${vm}" "n-adm" "n-infra"
|
||||
elif [[ "${vm}" == "s-itil" ]] ; then
|
||||
create_if "${vm}" "n-adm" "n-infra"
|
||||
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-dmz"
|
||||
elif [[ "${vm}" == "s-web-ext" ]] ; then
|
||||
create_if "${vm}" "n-adm" "n-dmz"
|
||||
elif [[ "${vm}" == "s-nxc" ]] ; then
|
||||
create_if "${vm}" "n-adm" "n-infra"
|
||||
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
|
||||
create_if "${vm}" "n-adm" "n-dmz-db"
|
||||
elif [[ "${vm}" == "r-vp1" ]] ; then
|
||||
./addint.r-vp1
|
||||
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"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
|
||||
sub usage () {
|
||||
print "usage : mkvm.pl <vm-name>\n";
|
||||
print "cree une VM a partir d'un fichier OVA et parametre les interfaces";
|
||||
exit 1 ;
|
||||
}
|
||||
|
||||
sub main () {
|
||||
my $vm = shift;
|
||||
usage unless ( $vm);
|
||||
|
||||
}
|
@ -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.
|
Reference in New Issue
Block a user