From 0976b61b0a08672903b5ee42242e096d57e8ec31 Mon Sep 17 00:00:00 2001 From: lucasdpt Date: Thu, 4 Jun 2026 10:15:46 +0200 Subject: [PATCH] feat: remove useless files --- README.md | 66 ----------- scripts/install-deps-linux.sh | 210 ---------------------------------- 2 files changed, 276 deletions(-) delete mode 100644 README.md delete mode 100644 scripts/install-deps-linux.sh diff --git a/README.md b/README.md deleted file mode 100644 index 91c2cb4..0000000 --- a/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# TP Final - Vagrant + Terraform + Ansible - -## Objectif - -- 1 VM Ubuntu et 1 VM Debian sur le réseau privé `192.168.56.0/24` -- MySQL dans Docker sur Ubuntu -- Mot de passe MySQL généré par Terraform -- UFW sur Ubuntu : ports 22 et 3306, avec 3306 seulement depuis `192.168.56.0/24` -- Test MySQL depuis Debian via Ansible -- Copie du fichier SQL sur Debian -- Exécution du SQL depuis Debian vers MySQL Ubuntu -- Vérification avec `SHOW TABLES` sur Ubuntu -- Bonus : utilisateur Debian non sudo `mysqlcaller` - -## Prérequis - -- VirtualBox -- Vagrant -- Terraform -- Ansible installé sur la machine hôte -- Collection Ansible `community.general` pour le module `ufw` : - -```bash -ansible-galaxy collection install community.general -``` - -## Installation rapide sous Linux - -Un script est fourni pour Debian/Ubuntu : - -```bash -bash scripts/install-deps-linux.sh -``` - -Le script ajoute les dépôts officiels HashiCorp et Oracle VirtualBox, installe `VirtualBox`, `Vagrant`, `Terraform`, `Ansible`, puis la collection `community.general`. - -## Lancer - -```bash -terraform init -terraform apply -``` - -## Récupérer le mot de passe MySQL - -```bash -terraform output --raw mysql_password -``` - -## Relancer uniquement Ansible - -```bash -ANSIBLE_CONFIG=ansible/ansible.cfg ansible-playbook -i ansible/inventory.ini ansible/site.yml -``` - -## Nettoyer - -```bash -terraform destroy -``` - -Si vous avez modifié manuellement le `Vagrantfile` entre deux exécutions et que Vagrant garde des entrées obsolètes, vous pouvez nettoyer son cache avec : - -```bash -vagrant global-status --prune -``` diff --git a/scripts/install-deps-linux.sh b/scripts/install-deps-linux.sh deleted file mode 100644 index cd1a483..0000000 --- a/scripts/install-deps-linux.sh +++ /dev/null @@ -1,210 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -HASHICORP_KEYRING="/usr/share/keyrings/hashicorp-archive-keyring.gpg" -HASHICORP_LIST="/etc/apt/sources.list.d/hashicorp.list" -VIRTUALBOX_KEYRING="/usr/share/keyrings/oracle-virtualbox-2016.gpg" -VIRTUALBOX_LIST="/etc/apt/sources.list.d/virtualbox.list" -VIRTUALBOX_PACKAGE="" - -log() { - printf '[install] %s\n' "$*" -} - -warn() { - printf '[install] Warning: %s\n' "$*" >&2 -} - -die() { - printf '[install] Error: %s\n' "$*" >&2 - exit 1 -} - -run_root() { - if [[ "${EUID}" -eq 0 ]]; then - "$@" - else - require_command sudo - sudo "$@" - fi -} - -require_command() { - command -v "$1" >/dev/null 2>&1 || die "Commande requise introuvable: $1" -} - -contains() { - local value="$1" - shift - - local item - for item in "$@"; do - if [[ "$item" == "$value" ]]; then - return 0 - fi - done - - return 1 -} - -get_codename() { - if [[ -n "${VERSION_CODENAME:-}" ]]; then - printf '%s\n' "${VERSION_CODENAME}" - return 0 - fi - - if command -v lsb_release >/dev/null 2>&1; then - lsb_release -cs - return 0 - fi - - die "Impossible de determiner le codename de la distribution." -} - -ensure_supported_distribution() { - require_command apt-get - require_command dpkg - - if [[ ! -r /etc/os-release ]]; then - die "Le fichier /etc/os-release est introuvable." - fi - - # shellcheck disable=SC1091 - . /etc/os-release - - DISTRO_ID="${ID:-}" - CODENAME="$(get_codename)" - ARCH="$(dpkg --print-architecture)" - - if [[ "${ARCH}" != "amd64" ]]; then - die "Ce script cible les hotes Debian/Ubuntu amd64 pour VirtualBox. Architecture detectee: ${ARCH}." - fi - - case "${DISTRO_ID}" in - ubuntu) - if ! contains "${CODENAME}" focal jammy noble oracular; then - warn "Ubuntu ${CODENAME} n'etait pas dans la liste testee au moment d'ecrire ce script. Je continue avec les depots officiels." - fi - ;; - debian) - if ! contains "${CODENAME}" bullseye bookworm; then - warn "Debian ${CODENAME} n'etait pas dans la liste testee au moment d'ecrire ce script. Je continue avec les depots officiels." - fi - ;; - *) - die "Distribution non prise en charge: ${DISTRO_ID:-inconnue}. Ce script supporte Debian et Ubuntu." - ;; - esac -} - -install_base_packages() { - log "Installation des prerequis APT..." - run_root apt-get update - run_root apt-get install -y \ - apt-transport-https \ - ca-certificates \ - curl \ - gnupg \ - lsb-release \ - software-properties-common \ - wget -} - -configure_hashicorp_repo() { - local tmpdir - tmpdir="$(mktemp -d)" - - log "Configuration du depot HashiCorp..." - curl -fsSL "https://apt.releases.hashicorp.com/gpg" -o "${tmpdir}/hashicorp.gpg" - run_root gpg --yes --dearmor -o "${HASHICORP_KEYRING}" "${tmpdir}/hashicorp.gpg" - printf 'deb [signed-by=%s] https://apt.releases.hashicorp.com %s main\n' "${HASHICORP_KEYRING}" "${CODENAME}" \ - | run_root tee "${HASHICORP_LIST}" >/dev/null - rm -rf "${tmpdir}" -} - -configure_virtualbox_repo() { - local tmpdir - tmpdir="$(mktemp -d)" - - log "Configuration du depot Oracle VirtualBox..." - curl -fsSL "https://www.virtualbox.org/download/oracle_vbox_2016.asc" -o "${tmpdir}/oracle_vbox_2016.asc" - run_root gpg --yes --dearmor -o "${VIRTUALBOX_KEYRING}" "${tmpdir}/oracle_vbox_2016.asc" - printf 'deb [arch=amd64 signed-by=%s] https://download.virtualbox.org/virtualbox/debian %s contrib\n' "${VIRTUALBOX_KEYRING}" "${CODENAME}" \ - | run_root tee "${VIRTUALBOX_LIST}" >/dev/null - rm -rf "${tmpdir}" -} - -select_virtualbox_package() { - local packages=() - local package="" - - mapfile -t packages < <(apt-cache search --names-only '^virtualbox-[0-9]+\.[0-9]+$' | awk '{print $1}' | sort -V) - - if [[ "${#packages[@]}" -gt 0 ]]; then - package="${packages[$(("${#packages[@]}" - 1))]}" - elif apt-cache show virtualbox >/dev/null 2>&1; then - package="virtualbox" - else - die "Aucun paquet VirtualBox compatible n'a ete trouve apres l'ajout du depot Oracle." - fi - - VIRTUALBOX_PACKAGE="${package}" - log "Paquet VirtualBox selectionne: ${VIRTUALBOX_PACKAGE}" -} - -install_project_dependencies() { - select_virtualbox_package - - log "Installation de VirtualBox, Vagrant, Terraform et Ansible..." - run_root apt-get update - run_root apt-get install -y \ - ansible \ - terraform \ - vagrant \ - "${VIRTUALBOX_PACKAGE}" -} - -install_ansible_collection() { - log "Installation de la collection Ansible community.general..." - run_root mkdir -p /usr/share/ansible/collections - run_root ansible-galaxy collection install community.general --collections-path /usr/share/ansible/collections --force -} - -print_versions() { - log "Verification des versions installees:" - VBoxManage --version - vagrant --version - terraform version - ansible --version -} - -print_next_steps() { - cat <<'EOF' - -Installation terminee. - -Etapes suivantes: - 1. terraform init - 2. terraform apply - -Note: - - Si Secure Boot est actif, VirtualBox peut demander une validation ou une signature de modules noyau avant de pouvoir demarrer des VMs. -EOF -} - -main() { - ensure_supported_distribution - install_base_packages - configure_hashicorp_repo - configure_virtualbox_repo - install_project_dependencies - install_ansible_collection - print_versions - print_next_steps -} - -DISTRO_ID="" -CODENAME="" -ARCH="" - -main "$@"