Compare commits

..

16 Commits

Author SHA1 Message Date
de057fad9b roles awx-usser et awx-user-cli 2024-01-30 12:04:15 +01:00
30c7275ba6 filebeat... 2024-01-30 11:25:20 +01:00
33529f2781 ajout role zabbix-cli pour vm à superviser & token à jour avec BD 2024-01-30 10:48:57 +01:00
Flo
77a7f3c567 update zabbix 2024-01-29 21:15:11 +01:00
a3235af304 modifs diverses 2024-01-29 18:06:09 +01:00
17647b17da ajout role awx 2024-01-29 18:02:49 +01:00
78230b7f21 bash 2024-01-29 17:05:20 +01:00
7d90939ea3 clé pub & priv 2024-01-29 17:02:55 +01:00
7c01d0aa18 chgt role sshcli 2024-01-29 17:02:31 +01:00
ea513e616d explication savenextcloud 2024-01-29 16:47:47 +01:00
1d7fa35e48 maj README 2024-01-29 16:43:37 +01:00
250483501e Merge branch 'main' of https://gitea.lyc-lecastel.fr/gsb/gsb2024 2024-01-29 16:36:29 +01:00
4abf4d4950 maj script r-vp1 2024-01-29 16:35:03 +01:00
8ebf476e05 script clé publique 2024-01-29 16:34:12 +01:00
26ae726457 création readme s-backup 2024-01-29 16:16:24 +01:00
b1bd102d85 création readme s-backup 2024-01-29 16:04:05 +01:00
26 changed files with 287 additions and 16 deletions

View File

@ -1,12 +1,14 @@
---
- hosts: localhost
connection: local
become: yes
roles:
- base
- goss
- r-ext
- snmp-agent
- zabbix-cli
- ssh-cli
# - syslog-cli
- post

View File

@ -1,6 +1,7 @@
---
- hosts: localhost
connection: local
become: yes
roles:
- base
@ -9,5 +10,5 @@
- ssh-cli
# - syslog-cli
- dhcp
- snmp-agent
- zabbix-cli
- post

View File

@ -0,0 +1,20 @@
---
- name: Creation user awx
ansible.builtin.user:
name: awx
groups: sudo
append: yes
shell: /bin/bash
- name: Get awx key_pub
get_url:
url: s-adm.gsb.adm/gsbstore/id_rsa_awx.pub
dest: /tmp
- name: Set authorized key taken from file /tmp
ansible.posix.authorized_key:
user: awx
state: present
key: "{{ lookup('file', '/tmp/id_rsa_awx.pub') }}"

View File

@ -0,0 +1,14 @@
---
- name: Creation user awx, cle SSH et group sudo
ansible.builtin.user:
name: awx
groups: sudo
append: yes
shell: /bin/bash
generate_ssh_key: yes
- name: Copie cle publique dans gsbstore
copy:
src: /home/awx/.ssh/id_rsa.pub
dest: /var/www/html/gsbstore/id_rsa_awx.pub
remote_src: yes

21
roles/awx/README.md Normal file
View File

@ -0,0 +1,21 @@
# Rôle Kea
***
Rôle Kea: Configuration de 2 serveurs KEA en mode haute disponbilité.
## Tables des matières
1. [Que fait le rôle Kea ?]
2. [Installation et configuration de ka]
3. [Remarques]
## Que fait le rôle Kea ?
Le rôle KEA permet de configurer 1 serveurs kea (s-kea1 et s-kea2) en mode haute disponibilité.
- Le serveur **s-kea1** sera en mode **primary** il délivrera les baux DHCP sur le réseau n-user.
- Le serveur **s-kea2**, sera en mode **stand-by** le service DHCP basculera donc sur **s-kea2** en cas disponibilité du serveur**s-kea1**.
### Installation et configuration de kea
Le rôle kea installe les packets **kea dhcp4, hooks, admin** une fois les packets installer. Il configure un serveur kea pour qu'il distribue les ips sur le réseau n-user et soit en haute disponibilité.
### Remarquees ###
Une fois le playbook **s-kea** correctement terminé et la machine **s-kea** redemarrée, redémarrée le service **isc-kea-dhcp4.service** afin de prendre en compte les modifications éfféctuées sur la couche réseau par le role POST.

View File

@ -0,0 +1,8 @@
#variable kea
kea_ver: "2.4.1"
kea_dbname: ""
kaa_dbuser: ""
kea_dbpasswd: ""
kea_dhcp4_dir: "/etc/kea/kea-dhcp4.conf"
kea_ctrl_dir: "/etc/kea/kea-ctrl-agent.conf"

View File

@ -0,0 +1,6 @@
---
- name: Restart isc-stork-server.service
ansible.builtin.service:
name: isc-stork-server.service
state: restarted
enabled: yes

47
roles/awx/tasks/main.yml Normal file
View File

@ -0,0 +1,47 @@
---
- name: Preparation
ansible.builtin.shell: curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.28.5+k3s1 sh -s - --write-kubeconfig-mode 644 --node-ip "{{ awx_ip }}" --flanel-iface "{{ awx_if }}"
- name: clonage du dépot awx-on-k3s
git:
repo: https://github.com/kurokobo/awx-on-k3s.git
dest: "{{ awx_dir }}"
clone: yes
force: yes
- name: Deploiement AWX Operator ...
ansible.builtin.shell: "kubectl apply -k operator"
args:
chdir: "{{ awx_dir }}"
- name: Git checkout
ansible.builtin.git:
repo: 'https://github.com/kurokobo/awx-on-k3s.git'
dest: "{{ awx_dir }}"
version: release-2.10.0
- name: Generation de certification auto-signé
ansible.builtin.shell: 'openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ./base/tls.crt -keyout ./base/tls.key -subj "/CN={{ awx_host }}/O={{ awx_host }}" -addext "subjectAltName = DNS:{{ awx_host }}"'
args:
chdir: "{{ awx_dir }}"
- name: creation du repertoire postgres-13
ansible.builtin.file:
path: /data/postgres-13
state: directory
mode: '0755'
- name: Creation repertoire projects
ansible.builtin.file:
path: /data/projects
state: directory
owner: 1000:0
- name: Deploiement d'AWX ...
ansible.builtin.shell: "kubectl apply -k base"
args:
chdir: "{{ awx_dir }}"

View File

@ -0,0 +1,52 @@
### database settings
### the address of a PostgreSQL database
STORK_DATABASE_HOST=localhost
### the port of a PostgreSQL database
STORK_DATABASE_PORT=5432
### the name of a database
STORK_DATABASE_NAME={{ stork_db_name }}
### the username for connecting to the database
STORK_DATABASE_USER_NAME={{ stork_db_user }}
### the SSL mode for connecting to the database
### possible values: disable, require, verify-ca, or verify-full
# STORK_DATABASE_SSLMODE=
### the location of the SSL certificate used by the server to connect to the database
# STORK_DATABASE_SSLCERT=
### the location of the SSL key used by the server to connect to the database
# STORK_DATABASE_SSLKEY=
### the location of the root certificate file used to verify the database server's certificate
# STORK_DATABASE_SSLROOTCERT=
### the password for the username connecting to the database
### empty password is set to avoid prompting a user for database password
STORK_DATABASE_PASSWORD={{stork_db_passwd }}
### REST API settings
### the IP address on which the server listens
# STORK_REST_HOST=
### the port number on which the server listens
# STORK_REST_PORT=
### the file with a certificate to use for secure connections
# STORK_REST_TLS_CERTIFICATE=
### the file with a private key to use for secure connections
# STORK_REST_TLS_PRIVATE_KEY=
### the certificate authority file used for mutual TLS authentication
# STORK_REST_TLS_CA_CERTIFICATE=
### the directory with static files served in the UI
STORK_REST_STATIC_FILES_DIR=/usr/share/stork/www
### the base URL of the UI - to be used only if the UI is served from a subdirectory
# STORK_REST_BASE_URL=
### enable Prometheus /metrics HTTP endpoint for exporting metrics from
### the server to Prometheus. It is recommended to secure this endpoint
### (e.g. using HTTP proxy).
# STORK_SERVER_ENABLE_METRICS=true
### Logging parameters
### Set logging level. Supported values are: DEBUG, INFO, WARN, ERROR
# STORK_LOG_LEVEL=DEBUG
### disable output colorization
# CLICOLOR=false
### path to the hook directory
# STORK_SERVER_HOOK_DIRECTORY=

View File

@ -8,6 +8,7 @@
apt:
deb: "/tmp/filebeat-{{ BEATVER }}-amd64.deb"
<<<<<<< HEAD
- name: Chgt filebeat.yml - localhost:9200 - Elastic
replace:
path: /etc/filebeat/filebeat.yml
@ -22,10 +23,29 @@
replace: 's-elk.gsb.adm:5601'
backup: yes
- name: Chgt filebeat.yml - user - Kibana
replace:
path: /etc/filebeat/filebeat.yml
regexp: 'user:5601'
replace: 's-elk.gsb.adm:5601'
backup: yes
#- name: Changement du fichier de conf
# copy:
# src: filebeat.yml
# dest: /etc/filebeat/filebeat.yml
=======
- name: sorie pou debug
fail:
msg: "packet installe"
- name: Changement du fichier de conf
copy:
src: filebeat.yml
dest: /etc/filebeat/filebeat.yml
>>>>>>> d16ccae (maj pour elk-filebeat-cli)
- name: Configuration de filebeat
shell: filebeat modules enable system

View File

@ -0,0 +1,19 @@
Ce script Bash a pour objectif d'automatiser le processus de sauvegarde du serveur NextCloud, qui est exécuté dans un environnement Docker.
## 1. Activation du mode maintenance :
- La première commande Docker est utilisée pour mettre le serveur NextCloud en mode maintenance. Cette mesure préventive garantit qu'aucune modification n'est apportée pendant la sauvegarde, assurant ainsi la cohérence des données.
## 2. Copie des fichiers de sauvegarde :
- La commande `cd /root/nxc` change le répertoire de travail vers `/root/nxc`.
- Ensuite, la commande `rsync -Aavx nextcloud/ nextcloud-dirbkp/` effectue une copie récursive des fichiers du dossier `nextcloud/` vers `nextcloud-dirbkp/`. Ceci crée une copie locale des fichiers de NextCloud à des fins de sauvegarde.
## 3. Sauvegarde de la base de données MySQL/MariaDB :
- La ligne suivante utilise `docker compose exec` pour exécuter la commande `mysqldump` dans le conteneur de la base de données. Cela génère une sauvegarde de la base de données NextCloud qui est enregistrée dans le fichier `nextcloud-sqlbkp.bak`.
## 4. Désactivation du mode maintenance :
- Après la sauvegarde, une autre commande Docker est utilisée pour désactiver le mode maintenance de NextCloud, permettant ainsi la reprise normale des opérations.
## 5. Création d'une archive compressée :
- Enfin, la dernière ligne crée une archive compressée `nxc.tgz` qui regroupe la sauvegarde de la base de données (`nextcloud-sqlbkp.bak`) et la copie locale des fichiers NextCloud (`nextcloud-dirbkp/`).
Ce script simplifie et automatise le processus de sauvegarde de NextCloud en mettant en place la mise en mode maintenance, la copie des fichiers locaux, la sauvegarde de la base de données, la désactivation du mode maintenance, et la création d'une archive compressée consolidant l'ensemble des éléments de sauvegarde.

View File

@ -1 +1,17 @@
###Génération de clé publique et privée###
Ce script génère et distribue une paire de clés SSH (clé privée et clé publique).
## 1. Génération de la clé privée :
- Cette étape crée une clé privée de type RSA destinée à être utilisée pour des opérations liées à s-backup.
- La clé privée est enregistrée dans le chemin spécifié (`/root/id_rsa_sbackup`).
- L'attribut `state: present` garantit que la clé privée est générée si elle n'existe pas déjà.
## 2. Copie de la clé publique dans gsbstore :
- Cette étape copie la clé publique associée à la clé privée générée précédemment (`/root/id_rsa_sbackup.pub`).
- La clé publique est déplacée vers un répertoire spécifié (`/var/www/html/gsbstore`) sur la machine distante.
- Les permissions de la clé publique sont définies avec `mode: 0644`, et `remote_src: yes` indique que la source du fichier est sur la machine distante.
## 3. Copie de la clé privée dans gsbstore :
- Cette étape copie la clé privée générée dans le même répertoire que la clé publique sur la machine distante (`/var/www/html/gsbstore`).
- Les permissions de la clé privée sont également définies avec `mode: 0644`, et `remote_src: yes` indique que la source du fichier est sur la machine distante.
Ce script automatise la création d'une paire de clés SSH et déplace ces clés vers un emplacement spécifique (`/var/www/html/gsbstore`) sur une machine distante. Ces clés pourraient être utilisées dans des processus de sauvegarde sécurisés, garantissant l'authentification sécurisée lors des opérations liées à s-backup.

View File

@ -1,4 +1,5 @@
###récupération d'une clé publique###
# récupération d'une clé publique
Ce script permet de récupérer un clé publique créer depuis la machine s-adm:
1. Création du répertoire .ssh :
- Il crée le répertoire `~/.ssh` avec des permissions strictes (0700) pour l'utilisateur.

View File

@ -0,0 +1,9 @@
# script de récupération de la clé publique générer par s-adm
Ce script Ansible utilise le module `ansible.posix.authorized_key` pour gérer les clés SSH autorisées sur un système conforme aux normes POSIX. Plus précisément, la tâche vise à garantir la présence d'une clé publique spécifiée dans le fichier des clés autorisées pour l'utilisateur `root`.
- `user: root` : Indique que la clé SSH est associée à l'utilisateur root.
- `state: present` : Spécifie que la clé doit être présente dans le fichier des clés autorisées. Si la clé n'existe pas, elle sera ajoutée.
- `key: http://s-adm.gsb.adm/gsbstore/id_rsa_sbackup.pub` : Indique l'URL à partir de laquelle la clé publique (`id_rsa_sbackup.pub`) doit être récupérée. Ansible télécharge la clé publique depuis cette URL et l'ajoute au fichier des clés autorisées pour l'utilisateur root.
Ce script Ansible assure que la clé publique spécifiée est présente dans le fichier des clés autorisées pour l'utilisateur root sur un système compatible POSIX, en récupérant la clé publique à partir de l'URL fournie.

View File

@ -6,9 +6,21 @@
mode: 0700
state: directory
- name: Copie cle publiique depuis s-adm
- name: Copie cle publique depuis s-adm
ansible.posix.authorized_key:
user: root
state: present
key: http://s-adm.gsb.adm/id_rsa.pub
- name: Creation user gsbadm
ansible.builtin.user:
name: gsbadm
groups: sudo
append: yes
shell: /bin/bash
- name: Copie cle publique oour gsbadm depuis s-adm
ansible.posix.authorized_key:
user: gsbadm
state: present
key: http://s-adm.gsb.adm/id_rsa.pub

View File

@ -17,7 +17,7 @@ Attendre la fin de l'installation. Ensuite lancer le scipt r-vp1-post.sh
### 🛠️ Lancer le script r-vp1-post.sh
```bash
cd /tools/ansible/gsb2023/Scripts
cd tools/ansible/gsb2024/scripts
```
```bash
bash r-vp1-post.sh
@ -30,7 +30,7 @@ Puis lancer le script r-vp2-post.sh pour récuperer le fichier de configuration
### 🛠️ Lancer le script
```bash
cd /tools/ansible/gsb2023/Scripts
cd tools/ansible/gsb2024/scripts
```
```bash
bash r-vp2-post.sh
@ -44,4 +44,4 @@ reboot
Veuillez maintenant vous rendre dans le dossier du role ferm :
*gsb2024/roles/fw-ferm*
*Modification : jm*
*Modification : jm*

View File

@ -11,7 +11,7 @@ Rôle du Zabbix client pour la supervision des différentes machines en active
Il permet de configurer les agents zabbix en active sur le serveur.
### Installation et configuration de Zabbix-agent
Le rôle Zabbix-cli va installer Zabbix-agent sur les serveurs Debian. Vous pouvez modifier les paramètres dans le fichier 'defaults'. Il s'agit d'une configuration en mode actif, ce qui signifie que du côté du serveur, il suffit de définir les hôtes avec leur nom, le type d'OS, et pour notre cas, préciser qu'il s'agit d'une machine virtuelle sur le serveur Zabbix.
Le rôle Zabbix-cli installe Zabbix-agent sur Debian. Les paramètres sont modifiable dans le fichier 'defaults'. Il s'agit d'une configuration en mode actif(remonte lui seule au serveur zabbix), ce qui signifie que du côté du serveur, il suffit de définir les hôtes avec leur nom, le type d'OS, et pour notre cas, préciser qu'il s'agit d'une machine virtuelle sur le serveur Zabbix.(Le script hostcreate.sh remonte automatiquement les machines uniquement si la clée d'api est valide)
### Partie Windows !
Le fonctionnement de Zabbix-agent n'est pas différent de celui sur Linux. Cependant, lorsque vous êtes sur le site de Zabbix pour installer l'agent, veillez à choisir la version classique de Zabbix-agent plutôt que la version 2, car elle requiert plus de ressources pour une faible supervision supplémentaire.

View File

@ -1,3 +1,3 @@
SERVER: "127.0.0.1"
SERVERACTIVE: "192.168.99.8"
TOKENAPI: "f72473b7e5402a5247773e456f3709dcdd5e41792360108fc3451bbfeed8eafe"
TOKENAPI: "a44e2a4977d61a869437739cb6086ae42f4b9937fbb96aed24bbad028469a1cf"

View File

@ -1,6 +1,8 @@
---
- hosts: localhost
connection: local
become: yes
roles:
- base

17
s-awx.yml Normal file
View File

@ -0,0 +1,17 @@
---
- hosts: localhost
connection: local
vars:
awx_host: "s-awx.gsb.lan"
awx_dir: "/root/tools/awx-on-k3s"
awx_ip: "192.168.0.2"
awx_if: "enp0s3"
roles:
- base
# - goss
#- ssh-cli
- awx
# - zabbix-cli
#- journald-snd
#- post

View File

@ -1,6 +1,7 @@
---
- hosts: localhost
connection: local
become: yes
vars:
stork_db_user: "stork-server"
stork_db_passwd: "Azerty1+"

View File

@ -1,14 +1,16 @@
---
- hosts: localhost
connection: local
become: yes
# include: config.yml
roles:
- base
# - zabbix-cli
- goss
- zabbix-cli
- goss
- dns-master
- webautoconf
- elk-filebeat-cli
# - elk-filebeat-cli
# - journald-snd
- ssh-cli
- post

View File

@ -1,7 +1,7 @@
---
- hosts: localhost
connection: local
become: yes
#vars:
#glpi_version: "10.0.11"
#glpi_dir: "/var/www/html/glpi"

View File

@ -1,7 +1,8 @@
---
- hosts: localhost
connection: local
become: yes
roles:
- base
- goss

View File

@ -1,4 +1,4 @@
!/bin/bash
#!/bin/bash
#Ancien scipt 2023
#stoper le fw