Ansible: plusieurs éléments intéressants
This commit is contained in:
parent
055e23acf0
commit
282871f0da
@ -54,7 +54,7 @@
|
|||||||
# 5. Configurer le hostname
|
# 5. Configurer le hostname
|
||||||
- name: Configurer le hostname
|
- name: Configurer le hostname
|
||||||
hostname:
|
hostname:
|
||||||
name: "Gitea"
|
name: "{{ ansible_hostname }}"
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
# 6. Changer le mot de passe root
|
# 6. Changer le mot de passe root
|
||||||
@ -80,17 +80,22 @@
|
|||||||
state: present
|
state: present
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
# 8. Ajouter le dépôt Sury pour PHP 8.3
|
- name: Installer les dépendances requises pour ajouter un dépôt
|
||||||
#- name: Ajouter le dépôt Sury pour PHP 8.3
|
apt:
|
||||||
#shell: echo "deb https://packages.sury.org/php/ bookworm main" | tee /etc/apt/sources.list.d/sury-php.list
|
name: ["apt-transport-https", "ca-certificates", "lsb-release", "curl"]
|
||||||
#become: yes
|
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
|
- name: Mettre à jour et upgrader le système
|
||||||
apt:
|
apt:
|
||||||
@ -146,4 +151,11 @@
|
|||||||
msg: "Redémarrage après configuration."
|
msg: "Redémarrage après configuration."
|
||||||
pre_reboot_delay: 5
|
pre_reboot_delay: 5
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
|
- name: Remplacer "clean" par le hostname dans /etc/hosts
|
||||||
|
replace:
|
||||||
|
path: /etc/hosts
|
||||||
|
regexp: '\bclean\b'
|
||||||
|
replace: "{{ ansible_hostname }}"
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
|||||||
22
11-Ansible/Old/install_fullserver_web.sh
Executable file
22
11-Ansible/Old/install_fullserver_web.sh
Executable file
@ -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
|
||||||
@ -68,26 +68,27 @@
|
|||||||
- name: Configurer l'utilisateur smauro
|
- name: Configurer l'utilisateur smauro
|
||||||
user:
|
user:
|
||||||
name: "{{ user }}"
|
name: "{{ user }}"
|
||||||
password: "{{ root_password | password_hash('sha512') }}"
|
password: "{{ user_password | password_hash('sha512') }}" # Utilisation de la variable dynamique
|
||||||
shell: /bin/bash
|
shell: /bin/bash
|
||||||
groups: sudo
|
groups: sudo
|
||||||
state: present
|
state: present
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
|
# 8. Installer les paquets nécessaires
|
||||||
- name: Installer les paquets nécessaires
|
- name: Installer les paquets nécessaires
|
||||||
apt:
|
apt:
|
||||||
name: ["sudo", "vim", "curl", "git", "htop", "gnupg", "apache2"]
|
name: ["sudo", "vim", "curl", "git", "htop", "gnupg", "apache2"]
|
||||||
state: present
|
state: present
|
||||||
become: yes
|
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
|
- name: Installer les dépendances requises pour ajouter un dépôt
|
||||||
apt:
|
apt:
|
||||||
name: ["apt-transport-https", "ca-certificates", "lsb-release", "curl"]
|
name: ["apt-transport-https", "ca-certificates", "lsb-release", "curl"]
|
||||||
state: present
|
state: present
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
|
# 10. Ajouter le dépôt Sury pour PHP 8.3
|
||||||
# 8. Ajouter le dépôt Sury pour PHP 8.3
|
|
||||||
- name: 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
|
shell: echo "deb https://packages.sury.org/php/ bookworm main" | tee /etc/apt/sources.list.d/sury-php.list
|
||||||
become: yes
|
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
|
shell: curl -fsSL https://packages.sury.org/php/apt.gpg | tee /etc/apt/trusted.gpg.d/sury-php.gpg > /dev/null
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
|
# 11. Mettre à jour et upgrader le système
|
||||||
- name: Mettre à jour et upgrader le système
|
- name: Mettre à jour et upgrader le système
|
||||||
apt:
|
apt:
|
||||||
update_cache: yes
|
update_cache: yes
|
||||||
upgrade: dist
|
upgrade: dist
|
||||||
become: yes
|
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
|
- name: Installer PHP 8.3 et modules requis
|
||||||
apt:
|
apt:
|
||||||
name:
|
name:
|
||||||
@ -125,33 +126,26 @@
|
|||||||
state: restarted
|
state: restarted
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
# 11. Configurer Apache avec PHP 8.3
|
# 13. Redémarrer Apache
|
||||||
#- name: Activer PHP 8.3 dans Apache
|
|
||||||
#command: a2enmod php8.3
|
|
||||||
#become: yes
|
|
||||||
|
|
||||||
- name: Redémarrer Apache
|
- name: Redémarrer Apache
|
||||||
systemd:
|
systemd:
|
||||||
name: apache2
|
name: apache2
|
||||||
state: restarted
|
state: restarted
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
|
# 14. Activer les modules rewrite et expires dans Apache
|
||||||
- name: Activer les modules rewrite et expires dans Apache
|
- name: Activer les modules rewrite et expires dans Apache
|
||||||
command: a2enmod rewrite expires
|
command: a2enmod rewrite expires
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
|
# 15. Redémarrer Apache après activation des modules
|
||||||
- name: Redémarrer Apache après activation des modules
|
- name: Redémarrer Apache après activation des modules
|
||||||
systemd:
|
systemd:
|
||||||
name: apache2
|
name: apache2
|
||||||
state: restarted
|
state: restarted
|
||||||
become: yes
|
become: yes
|
||||||
|
|
||||||
- name: Redémarrer la machine
|
# 16. Remplacer "clean" par le hostname dans /etc/hosts
|
||||||
reboot:
|
|
||||||
msg: "Redémarrage après configuration."
|
|
||||||
pre_reboot_delay: 5
|
|
||||||
become: yes
|
|
||||||
|
|
||||||
- name: Remplacer "clean" par le hostname dans /etc/hosts
|
- name: Remplacer "clean" par le hostname dans /etc/hosts
|
||||||
replace:
|
replace:
|
||||||
path: /etc/hosts
|
path: /etc/hosts
|
||||||
@ -159,3 +153,18 @@
|
|||||||
replace: "{{ ansible_hostname }}"
|
replace: "{{ ansible_hostname }}"
|
||||||
become: yes
|
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
|
||||||
|
|||||||
@ -1,12 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/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 l'adresse IP de la machine cible : " target_ip
|
||||||
read -p "Entrez le nouveau hostname : " ansible_hostname
|
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
|
# Vérification que l'IP, le hostname et le mot de passe ne sont pas vides
|
||||||
if [[ -z "$target_ip" || -z "$ansible_hostname" ]]; then
|
if [[ -z "$target_ip" || -z "$ansible_hostname" || -z "$smauro_password" ]]; then
|
||||||
echo "Erreur : L'adresse IP et le hostname ne peuvent pas être vides."
|
echo "Erreur : L'adresse IP, le hostname et le mot de passe ne peuvent pas être vides."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -16,7 +17,8 @@ echo "[server_web]" > $inventory_file
|
|||||||
echo "$target_ip ansible_user=root ansible_ssh_pass=testtest" >> $inventory_file
|
echo "$target_ip ansible_user=root ansible_ssh_pass=testtest" >> $inventory_file
|
||||||
|
|
||||||
# Exécution du playbook avec les variables dynamiques
|
# 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
|
# Supprimer le fichier d'inventaire dynamique après utilisation
|
||||||
rm -f $inventory_file
|
rm -f $inventory_file
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user