From 282871f0daca78c02a9d647998ff26186f86d856 Mon Sep 17 00:00:00 2001 From: Stephane M B079 Date: Wed, 12 Feb 2025 12:05:18 +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 | 34 +++++++++++++------- 11-Ansible/Old/install_fullserver_web.sh | 22 +++++++++++++ 11-Ansible/debian_fullserver_web.yml | 41 +++++++++++++++--------- 11-Ansible/install_fullserver_web.sh | 12 ++++--- 4 files changed, 77 insertions(+), 32 deletions(-) create mode 100755 11-Ansible/Old/install_fullserver_web.sh diff --git a/11-Ansible/Old/debian_fullserver_web.yml b/11-Ansible/Old/debian_fullserver_web.yml index c7b8057..2fd4ea4 100644 --- a/11-Ansible/Old/debian_fullserver_web.yml +++ b/11-Ansible/Old/debian_fullserver_web.yml @@ -54,7 +54,7 @@ # 5. Configurer le hostname - name: Configurer le hostname hostname: - name: "Gitea" + name: "{{ ansible_hostname }}" become: yes # 6. Changer le mot de passe root @@ -80,17 +80,22 @@ state: present become: yes - # 8. Ajouter le dépôt Sury pour PHP 8.3 - #- name: Ajouter le dépôt Sury pour PHP 8.3 - #shell: echo "deb https://packages.sury.org/php/ bookworm main" | tee /etc/apt/sources.list.d/sury-php.list - #become: yes + - name: Installer les dépendances requises pour ajouter un dépôt + apt: + name: ["apt-transport-https", "ca-certificates", "lsb-release", "curl"] + state: present + become: yes + + + # 8. Ajouter le dépôt Sury pour PHP 8.3 + - name: Ajouter le dépôt Sury pour PHP 8.3 + shell: echo "deb https://packages.sury.org/php/ bookworm main" | tee /etc/apt/sources.list.d/sury-php.list + become: yes + + - name: Ajouter la clé GPG du dépôt Sury + shell: curl -fsSL https://packages.sury.org/php/apt.gpg | tee /etc/apt/trusted.gpg.d/sury-php.gpg > /dev/null + become: yes - # 9. Ajouter la clé GPG du dépôt Sury - #- name: Ajouter la clé GPG du dépôt Sury via apt_key - # apt_key: - #url: https://packages.sury.org/php/apt.gpg - #state: present - #become: yes - name: Mettre à jour et upgrader le système apt: @@ -146,4 +151,11 @@ msg: "Redémarrage après configuration." pre_reboot_delay: 5 become: yes + + - name: Remplacer "clean" par le hostname dans /etc/hosts + replace: + path: /etc/hosts + regexp: '\bclean\b' + replace: "{{ ansible_hostname }}" + become: yes diff --git a/11-Ansible/Old/install_fullserver_web.sh b/11-Ansible/Old/install_fullserver_web.sh new file mode 100755 index 0000000..a99cc7a --- /dev/null +++ b/11-Ansible/Old/install_fullserver_web.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Demande à l'utilisateur l'adresse IP et le hostname +read -p "Entrez l'adresse IP de la machine cible : " target_ip +read -p "Entrez le nouveau hostname : " ansible_hostname + +# Vérification que l'IP et le hostname ne sont pas vides +if [[ -z "$target_ip" || -z "$ansible_hostname" ]]; then + echo "Erreur : L'adresse IP et le hostname ne peuvent pas être vides." + exit 1 +fi + +# Créer un fichier d'inventaire dynamique +inventory_file="dynamic_inventory.ini" +echo "[server_web]" > $inventory_file +echo "$target_ip ansible_user=root ansible_ssh_pass=testtest" >> $inventory_file + +# Exécution du playbook avec les variables dynamiques +ansible-playbook -i "$inventory_file" -u root --ask-become-pass playbooks/debian_fullserver_web.yml -e "ansible_hostname=$ansible_hostname" + +# Supprimer le fichier d'inventaire dynamique après utilisation +rm -f $inventory_file diff --git a/11-Ansible/debian_fullserver_web.yml b/11-Ansible/debian_fullserver_web.yml index 2fd4ea4..e5e07f5 100644 --- a/11-Ansible/debian_fullserver_web.yml +++ b/11-Ansible/debian_fullserver_web.yml @@ -68,26 +68,27 @@ - name: Configurer l'utilisateur smauro user: name: "{{ user }}" - password: "{{ root_password | password_hash('sha512') }}" + password: "{{ user_password | password_hash('sha512') }}" # Utilisation de la variable dynamique shell: /bin/bash groups: sudo state: present become: yes + # 8. Installer les paquets nécessaires - name: Installer les paquets nécessaires apt: name: ["sudo", "vim", "curl", "git", "htop", "gnupg", "apache2"] state: present become: yes + # 9. Installer les dépendances requises pour ajouter un dépôt - name: Installer les dépendances requises pour ajouter un dépôt apt: name: ["apt-transport-https", "ca-certificates", "lsb-release", "curl"] state: present become: yes - - # 8. Ajouter le dépôt Sury pour PHP 8.3 + # 10. Ajouter le dépôt Sury pour PHP 8.3 - name: Ajouter le dépôt Sury pour PHP 8.3 shell: echo "deb https://packages.sury.org/php/ bookworm main" | tee /etc/apt/sources.list.d/sury-php.list become: yes @@ -96,14 +97,14 @@ shell: curl -fsSL https://packages.sury.org/php/apt.gpg | tee /etc/apt/trusted.gpg.d/sury-php.gpg > /dev/null become: yes - + # 11. Mettre à jour et upgrader le système - name: Mettre à jour et upgrader le système apt: update_cache: yes upgrade: dist become: yes - # 10. Installer PHP 8.3 et ses extensions + # 12. Installer PHP 8.3 et modules requis - name: Installer PHP 8.3 et modules requis apt: name: @@ -125,33 +126,26 @@ state: restarted become: yes - # 11. Configurer Apache avec PHP 8.3 - #- name: Activer PHP 8.3 dans Apache - #command: a2enmod php8.3 - #become: yes - + # 13. Redémarrer Apache - name: Redémarrer Apache systemd: name: apache2 state: restarted become: yes + # 14. Activer les modules rewrite et expires dans Apache - name: Activer les modules rewrite et expires dans Apache command: a2enmod rewrite expires become: yes + # 15. Redémarrer Apache après activation des modules - name: Redémarrer Apache après activation des modules systemd: name: apache2 state: restarted become: yes - - name: Redémarrer la machine - reboot: - msg: "Redémarrage après configuration." - pre_reboot_delay: 5 - become: yes - + # 16. Remplacer "clean" par le hostname dans /etc/hosts - name: Remplacer "clean" par le hostname dans /etc/hosts replace: path: /etc/hosts @@ -159,3 +153,18 @@ replace: "{{ ansible_hostname }}" become: yes + # 17. Retirer 'PermitRootLogin yes' dans /etc/ssh/sshd_config + - name: Retirer ou modifier 'PermitRootLogin yes' dans /etc/ssh/sshd_config + lineinfile: + path: /etc/ssh/sshd_config + regexp: '^PermitRootLogin\s+yes' + line: 'PermitRootLogin no' + 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 + become: yes diff --git a/11-Ansible/install_fullserver_web.sh b/11-Ansible/install_fullserver_web.sh index a99cc7a..16e8592 100755 --- a/11-Ansible/install_fullserver_web.sh +++ b/11-Ansible/install_fullserver_web.sh @@ -1,12 +1,13 @@ #!/bin/bash -# Demande à l'utilisateur l'adresse IP et le hostname +# Demande à l'utilisateur l'adresse IP, le hostname et le mot de passe pour l'utilisateur "smauro" read -p "Entrez l'adresse IP de la machine cible : " target_ip read -p "Entrez le nouveau hostname : " ansible_hostname +read -p "Entrez le mot de passe pour l'utilisateur smauro : " smauro_password -# Vérification que l'IP et le hostname ne sont pas vides -if [[ -z "$target_ip" || -z "$ansible_hostname" ]]; then - echo "Erreur : L'adresse IP et le hostname ne peuvent pas être vides." +# Vérification que l'IP, le hostname et le mot de passe ne sont pas vides +if [[ -z "$target_ip" || -z "$ansible_hostname" || -z "$smauro_password" ]]; then + echo "Erreur : L'adresse IP, le hostname et le mot de passe ne peuvent pas être vides." exit 1 fi @@ -16,7 +17,8 @@ echo "[server_web]" > $inventory_file echo "$target_ip ansible_user=root ansible_ssh_pass=testtest" >> $inventory_file # Exécution du playbook avec les variables dynamiques -ansible-playbook -i "$inventory_file" -u root --ask-become-pass playbooks/debian_fullserver_web.yml -e "ansible_hostname=$ansible_hostname" +ansible-playbook -i "$inventory_file" -u root --ask-become-pass playbooks/debian_fullserver_web.yml -e "ansible_hostname=\"$ansible_hostname\" user_password=\"$smauro_password\"" # Supprimer le fichier d'inventaire dynamique après utilisation rm -f $inventory_file +