Compare commits

...

13 Commits

Author SHA1 Message Date
Your Name
725945c71e bdclient ... 2025-10-06 21:38:16 +02:00
sio user
8e0a6d1a4a maj bdcleint.sql 2025-10-06 17:21:03 +02:00
phil user
113a2e3e0a ajout payara 2025-10-06 13:10:54 +02:00
phil
2416c43647 typo 2025-10-02 23:13:44 +02:00
phil
6a0195d586 mise en forme readme pour zabbix 2025-10-02 23:08:25 +02:00
sio user
9c2a453d85 doc : ajout journald-remote 2025-09-25 14:29:45 +02:00
sio user
e2bfe5de51 schema d2 + nettoyage 2025-02-21 10:30:04 +01:00
phil
10379acf6f typo 2025-02-19 23:26:17 +01:00
phil
bf15f643c7 Ajout caddy avec jenkins 2025-02-19 23:05:21 +01:00
sio user
b33711c33d ajuste install-jenkins pour certs ... 2025-02-13 11:45:07 +01:00
phil
fcf2e401c2 ajout restic-minio - non finalise 2025-02-10 13:10:14 +01:00
phil
3816043214 jenkins + Vagrantfile 2025-02-07 23:23:27 +01:00
phil
55330d41e1 ajout jenkins 2025-02-07 23:02:17 +01:00
16 changed files with 448 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
# vagrant
le 2025-02-02 11h30 - ps
le 2025-09-25 13h30 - ps
Ce dépôt héberge des **Vagrantfile** dont :
* **dns** : Vagrantfile pour 2 serveurs **Bind9** (1 maitre et un esclave), tests **goss** chainés
@@ -16,6 +16,8 @@ Ce dépôt héberge des **Vagrantfile** dont :
* **dvlpt** : Vagrantfile pour VM Debian 11 LAMP + phpmyadmin
* **glpi** : Vagrantfile pour VM Debian 11 GLPI 10.0.7
* **guacamole** : Vagrantfile pour Apache Guacamole dockerise sans frontal
* **jenkins** : Vagrantfile et script d'installation de Jenkins sur Debian 12
* **journald-remote** : Vagrantfile pour centralisation des logs système avec **jounald-remote**
* **k8s** : kubernetes 1.26.00 + playbook pour master **k8s-master** et 2 noeuds **node-1** et **node-2**
* **k3s-awx** : Vagrantfile + script **inst-awx** pour installation **Ansible AWX** sur **k3s** avec **awx-on-k3s**
* **kea-dhcp-ha** : Vagrantfile pour serveur DHCP kea - HA avec serveur stork - machines **kea1**, **kea2** et **stork**

12
jenkins/README.md Normal file
View File

@@ -0,0 +1,12 @@
# Jenkins
## Présentation
Le script **install-jenkins.sh** installe l'application CI/CD **jenkins** sur Debian 12 avec openJDK 17 à partir du dépot jenkins.
Il installe également les applications **git** et **ansible**.
Jenkins est accessible sur le port 8080
Le script fonctionne sur une VM KVM ou sur un conteneur LXC.

71
jenkins/Vagrantfile vendored Normal file
View File

@@ -0,0 +1,71 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "debian/bookworm64"
config.vm.hostname = "jenkins"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
vb.memory = "2048"
end
#
# View the documentation for the provider you are using for more
# information on available options.
# Enable provisioning with a shell script. Additional provisioners such as
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
# documentation for more information about their specific syntax and use.
config.vm.provision "shell",
inline: "timedatectl set-timezone Europe/Paris ; apt-get update ; apt-get install -y vim curl wget"
config.vm.provision "shell", path: "provision/install-jenkins.sh"
end

9
jenkins/jenkins-proxy.d2 Normal file
View File

@@ -0,0 +1,9 @@
direction: right
client.shape: cloud
client -> jenkins: " :443"
jenkins: {
caddy
jenkins
caddy -> jenkins: ":8080"
}

View File

@@ -0,0 +1,11 @@
192.168.1.30:443 {
tls internal
reverse_proxy localhost:8080
}
jenkins:443 {
tls internal
reverse_proxy localhost:8080
}

View File

@@ -0,0 +1,6 @@
#!/bin/bash
sudo apt-get update
sudo apt-get install -y caddy

View File

@@ -0,0 +1,19 @@
#!/bin/bash
sudo apt-get update
sudo apt-get install -y gnupg openjdk-17-jdk
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \ /usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install -y jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
sudo systemctl status jenkins
sudo apt-get install -y git ansible

86
payara/Vagrantfile vendored Normal file
View File

@@ -0,0 +1,86 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "debian/bookworm64"
config.vm.hostname = "paya"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 8080, host: 8080
config.vm.network "forwarded_port", guest: 4848, host: 4848
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine and only allow access
# via 127.0.0.1 to disable public access
# config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
# Disable the default share of the current code directory. Doing this
# provides improved isolation between the vagrant box and your host
# by making sure your Vagrantfile isn't accessible to the vagrant box.
# If you use this you may want to enable additional shared subfolders as
# shown above.
# config.vm.synced_folder ".", "/vagrant", disabled: true
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
vb.memory = "2048"
end
#
# View the documentation for the provider you are using for more
# information on available options.
# Enable provisioning with a shell script. Additional provisioners such as
# Ansible, Chef, Docker, Puppet and Salt are also available. Please see the
# documentation for more information about their specific syntax and use.
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y vim wget curl
if ! which docker ; then
curl -s -o getdocker.sh https://get.docker.com
bash getdocker.sh
gpasswd -a vagrant docker
fi
SHELL
end

27
payara/compose.yml Normal file
View File

@@ -0,0 +1,27 @@
services:
payara:
image: payara/server-full:6.2025.9-jdk17
container_name: payara
ports:
- "8080:8080"
- "4848:4848"
env_file:
- "variables.env"
#environment:
#SCRIPT_DIR: ""
# volumes:
#- ./data/payara:/opt/payara
#- ./payara/apps:/opt/payara/deployments
# depends_on:
# - db
db:
image: mariadb
container_name: db
ports:
- "3336:3306"
env_file:
- "variables.env"
volumes:
- ./data/db_data:/var/lib/mysql
- ./init:/docker-entrypoint-initdb.d

80
payara/init/bdclient.sql Normal file
View File

@@ -0,0 +1,80 @@
-- phpMyAdmin SQL Dump
-- version 5.2.1deb1+deb12u1
-- https://www.phpmyadmin.net/
--
-- Hôte : localhost:3306
-- Généré le : sam. 04 oct. 2025 à 13:39
-- Version du serveur : 10.11.14-MariaDB-0+deb12u2
-- Version de PHP : 8.2.29
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de données : `bdclient`
--
CREATE DATABASE IF NOT EXISTS `bdclient` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `bdclient`;
-- --------------------------------------------------------
--
-- Structure de la table `client`
--
CREATE TABLE IF NOT EXISTS `client` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nom` varchar(25) NOT NULL,
`prenom` varchar(25) NOT NULL,
`mail` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Déchargement des données de la table `client`
--
INSERT INTO `client` (`id`, `nom`, `prenom`, `mail`) VALUES
(1, 'Thevenot', 'Delphine', ''),
(2, 'Sevre', 'Philippe', ''),
(3, 'Dupuis', 'JM', ''),
(4, 'thevenot', 'Eric', 'eric@gmail.com'),
(5, 'chabert', 'thomas', '');
-- --------------------------------------------------------
--
-- Structure de la table `salarie`
--
CREATE TABLE IF NOT EXISTS `salarie` (
`idSal` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(25) NOT NULL,
`mdp` varchar(25) NOT NULL,
`estAdmin` tinyint(1) NOT NULL,
PRIMARY KEY (`idSal`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Déchargement des données de la table `salarie`
--
INSERT INTO `salarie` (`idSal`, `login`, `mdp`, `estAdmin`) VALUES
(1, 'dthevenot', 'dt', 1),
(2, 'mdavid', 'md', 0);
COMMIT;
DROP USER 'adminBDClient'@'%';
CREATE USER 'adminBDClient' IDENTIFIED BY "mdpBDClient";
GRANT ALL PRIVILEGES ON bdclient.* TO 'adminBDClient'@'%' WITH GRANT OPTION;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

9
payara/variables.env Normal file
View File

@@ -0,0 +1,9 @@
MYSQL_DATABASE=bdclient
MYSQL_HOST=db
MYSQL_PORT=3306
MYSQL_USER=adminBDClient
MYSQL_PASSWORD=mdpBDClient
MYSQL_ROOT_PASSWORD=dbpwd
#JDBC_RESOURCE_NAME=jdbc/cesibigapp
#JMS_RESOURCE_NAME=jms/cesibigapp

38
restic-minio/README.md Normal file
View File

@@ -0,0 +1,38 @@
# Serveur Wazuh All in One et machine wazuh-agent debian 12
## Présentation
Cette `Vagrantfile` permet d'installer :
* un serveur Wazuh **wazuh** All-In-One ( indexer + manager + Dashboard) - Ubuntu 24.04
* un serveur Linux **wazuh-cli** ( wazuh-agent ) - Debian 12.9
La Vagrantfile utilise les playbooks ansible suivants :
* **provision/setup-wazuh.yml** qui:
* coupe le service **unattended-upgrades**
* recupère le script **wazuh-install.sh** et le lance
* **provision/setup-wazuh-cli.yml** qui:
* installe les dépots pour wazuh
* installe le paquet **wazuh-agent** en enregistrant la machine **wazuh-cli**
* relance le service **wazuh-agent**
## Utilisation de la Vagrantfile
L'installation du serveur **wazuh** est assez longue ( ~ 15 minutes ).
````shell
vagrant up wazuh
vagrant up wazuhcli
````
Le mot de passe du compte **admin** se trouve dans le fichier `wazuh-install-files/wazuh-passwords.txt`, lui-même contenu dans le ficher `wazuh-install-files.tar` à extraire avec la commande :
````shell
sudo tar xvf wazuh-install-file.tar
````
On peut alors se connecter au serveur **wazuh** avec un navigateur : http://adresse
(admin/mdp)
Une fois connecté, on doit autoriser chacun des deux serveurs **kea1** et **kea2** inscrits

47
restic-minio/Vagrantfile vendored Normal file
View File

@@ -0,0 +1,47 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# Base VM OS configuration.
config.vm.box = "debian/bookworm64"
config.ssh.insert_key = false
config.vm.synced_folder '.', '/vagrant', disabled: true
# General VirtualBox VM configuration.
config.vm.provider :virtualbox do |v|
v.memory = 1024
v.cpus = 1
v.linked_clone = true
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--ioapic", "on"]
v.check_guest_additions = false
end
# Minio.
config.vm.define "minio" do |minio|
minio.vm.box = "debian/bookworm64"
minio.vm.hostname = "minio"
minio.vm.network :private_network, ip: "192.168.56.5"
minio.vm.provider :virtualbox do |v|
v.customize ["modifyvm", :id, "--memory", 1024]
v.cpus = 1
end
minio.vm.provision "shell",
inline: "timedatectl set-timezone Europe/Paris ; apt-get update ; apt-get install -y vim curl wget"
minio.vm.provision "shell", path: "provision/install-minio.sh"
end
# Restic.
config.vm.define "restic" do |restic|
restic.vm.hostname = "restic"
restic.vm.network :private_network, ip: "192.168.56.2"
restic.vm.provider :virtualbox do |v|
v.customize ["modifyvm", :id, "--memory", 1024]
end
restic.vm.provision "shell",
inline: "timedatectl set-timezone Europe/Paris ; apt-get update ; apt-get install -y vim curl wget"
restic.vm.provision "shell", path: "provision/install-restic.sh"
end
end

View File

@@ -0,0 +1,14 @@
#!/bin/bash
sudo apt-get update
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20250203210304.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb
sudo groupadd -r minio
sudo useradd -M -r -g minio minio
echo -e "mkdir ~/minio\nminio server ~/minio --console-address :9001"

View File

@@ -0,0 +1,11 @@
#!/bin/bash
sudo apt-get update
apt install restic
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/mc

View File

@@ -10,8 +10,9 @@ Cette Vagrantfile :
## Mode opératoire
- vagrant up zabbix7
- vagrant up web1
- une fois connecté à zabbix7 (Admin/zabbix)
ajouter l'hote avec son adresse IP 192.168.56.10 et les templates :
linux serveur
serveur web apache zabbix-agent 2
- une fois connecté à **zabbix7** (Admin/zabbix)
ajouter l'hote **web1** avec son adresse IP 192.168.56.10 et les templates suivantes :
* *linux serveur*
* *serveur web apache*
* *zabbix-agent 2*