From c9ddac70df842da26c1d7e390456fd084ece9322 Mon Sep 17 00:00:00 2001 From: Stephane M B079 Date: Mon, 17 Feb 2025 17:18:06 +0100 Subject: [PATCH] =?UTF-8?q?Ansible:=20plusieurs=20=C3=A9l=C3=A9ments=20int?= =?UTF-8?q?=C3=A9ressants?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 11-Ansible/Old/debian_fullserver_web.yml | 24 +++++++------- 11-Ansible/debian_fullserver_web.yml | 21 ++++++++---- 11-Ansible/sources/99-motd | 42 ++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 19 deletions(-) create mode 100644 11-Ansible/sources/99-motd diff --git a/11-Ansible/Old/debian_fullserver_web.yml b/11-Ansible/Old/debian_fullserver_web.yml index 26709ec..714062c 100644 --- a/11-Ansible/Old/debian_fullserver_web.yml +++ b/11-Ansible/Old/debian_fullserver_web.yml @@ -162,20 +162,18 @@ state: present become: yes - # 18. Redémarrer la machine - name: Redémarrer la machine - reboot: - msg: "Redémarrage après configuration." - pre_reboot_delay: 5 + command: "nohup bash -c 'sleep 5 && reboot' &" + async: 1 + poll: 0 + ignore_errors: yes become: yes - # 19. Attendre que la machine soit de nouveau accessible - - name: Attendre que la machine soit de nouveau accessible - wait_for_connection: - timeout: 300 - become: no - # 20. Confirmation - - name: Confirmer que la VM est de nouveau accessible - debug: - msg: "La VM {{ ansible_hostname }} est de nouveau accessible !" + # 18. Redémarrer la machine + #- name: Redémarrer la machine + # reboot: + #msg: "Redémarrage après configuration." + #pre_reboot_delay: 5 + #become: yes + #ignore_errors: yes diff --git a/11-Ansible/debian_fullserver_web.yml b/11-Ansible/debian_fullserver_web.yml index 714062c..624ad02 100644 --- a/11-Ansible/debian_fullserver_web.yml +++ b/11-Ansible/debian_fullserver_web.yml @@ -77,7 +77,7 @@ # 8. Installer les paquets nécessaires - name: Installer les paquets nécessaires apt: - name: ["sudo", "vim", "curl", "git", "htop", "gnupg", "apache2"] + name: ["sudo", "vim", "curl", "git", "htop", "gnupg", "apache2", "net-tools"] state: present become: yes @@ -145,12 +145,12 @@ state: restarted become: yes - # 16. Remplacer "clean" par le hostname dans /etc/hosts - - name: Remplacer "clean" par le hostname dans /etc/hosts - replace: + - name: Mettre à jour /etc/hosts avec le hostname + lineinfile: path: /etc/hosts - regexp: '\bclean\b' - replace: "{{ ansible_hostname }}" + regexp: '^127\.0\.0\.1\s+' + line: "127.0.0.1 localhost {{ ansible_hostname }}" + state: present become: yes # 17. Retirer 'PermitRootLogin yes' dans /etc/ssh/sshd_config @@ -162,6 +162,15 @@ state: present become: yes + - name: Déployer le script MOTD personnalisé + copy: + src: ../sources/99-motd # Chemin relatif depuis où tu exécutes le playbook + dest: /etc/update-motd.d/99-motd + owner: root + group: root + mode: '0755' + become: yes + - name: Redémarrer la machine command: "nohup bash -c 'sleep 5 && reboot' &" async: 1 diff --git a/11-Ansible/sources/99-motd b/11-Ansible/sources/99-motd new file mode 100644 index 0000000..33fec72 --- /dev/null +++ b/11-Ansible/sources/99-motd @@ -0,0 +1,42 @@ +#!/bin/bash + +# Définition des couleurs +GREEN='\033[0;32m' +BLUE='\033[0;34m' +PURPLE='\033[0;35m' +CYAN='\033[0;36m' +RED='\033[0;31m' +NC='\033[0m' # No Color + +# Récupération des informations +CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}') +RAM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}') +DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}') +IP_ADDRESS=$(hostname -I | cut -d' ' -f1) +HOSTNAME=$(hostname) +USERS_CONNECTED=$(who | wc -l) +OS_INFO=$(lsb_release -d | cut -f2) +OS_VERSION=$(lsb_release -r | cut -f2) +UPDATES_AVAILABLE=$(apt list --upgradable 2>/dev/null | grep -c "/") + +# Affichage de la bannière +echo -e "${NC}" +echo -e "${RED}----------------------------------------------------------------------${NC}" +echo -e "${GREEN}1. Utilisation du Processeur: ${CPU_USAGE}%${NC}" +echo -e "${BLUE}2. Utilisation de la RAM: ${RAM_USAGE}%${NC}" +echo -e "${PURPLE}3. Utilisation du disque: ${DISK_USAGE}${NC}" +echo -e "${CYAN}4. Adresse IP de la machine ipv4: ${IP_ADDRESS}${NC}" +echo -e "${GREEN}5. Nom de la machine: ${HOSTNAME}${NC}" +echo -e "${RED}6. Nombre d'utilisateurs connectés: ${USERS_CONNECTED}${NC}" +echo -e "${CYAN}7. Système d'exploitation: ${OS_INFO}${NC}" +echo -e "${CYAN}8. Version de l'OS: ${OS_VERSION}${NC}" +echo -e "${RED}----------------------------------------------------------------------${NC}" +echo -e "${NC}" + +if [ $UPDATES_AVAILABLE -gt 0 ]; then + echo -e "${RED}Des mises à jour sont disponibles.${NC}" + echo -e "${NC}" +else + echo -e "${GREEN}Aucune mise à jour disponible.${NC}" + echo -e "${NC}" +fi