95 lines
2.4 KiB
YAML
95 lines
2.4 KiB
YAML
---
|
|
- hosts: debian_vm
|
|
gather_facts: yes
|
|
|
|
vars_prompt:
|
|
- name: "hostname_var"
|
|
prompt: "Entrez le nom d'hôte pour la machine"
|
|
private: no
|
|
|
|
- name: "user_name"
|
|
prompt: "Entrez le nom de l'utilisateur à créer"
|
|
private: no
|
|
|
|
- name: "user_password"
|
|
prompt: "Entrez le mot de passe pour l'utilisateur"
|
|
private: yes # Le mot de passe ne sera pas affiché lors de la saisie
|
|
|
|
- name: "root_password"
|
|
prompt: "Entrez le mot de passe pour root"
|
|
private: yes # Le mot de passe ne sera pas affiché lors de la saisie
|
|
|
|
tasks:
|
|
# 1. Installer sudo si nécessaire
|
|
- name: Passer à root et installer sudo
|
|
become: yes
|
|
become_user: root
|
|
become_method: su
|
|
command: apt install sudo -y
|
|
vars:
|
|
ansible_become_pass: "{{ root_password }}"
|
|
register: result
|
|
async: 60
|
|
poll: 0
|
|
|
|
- name: Afficher le résultat de l'installation de sudo
|
|
debug:
|
|
var: result
|
|
|
|
# 2. Ajouter l'utilisateur au groupe sudo
|
|
- name: Ajouter l'utilisateur au groupe sudo
|
|
user:
|
|
name: "{{ user_name }}"
|
|
groups: sudo
|
|
append: yes
|
|
become: yes
|
|
become_user: root
|
|
become_method: su
|
|
vars:
|
|
ansible_become_pass: "{{ root_password }}"
|
|
|
|
# 3. Mettre à jour les paquets
|
|
- name: Mettre à jour les paquets
|
|
apt:
|
|
update_cache: yes
|
|
become: yes
|
|
become_user: root
|
|
become_method: su
|
|
vars:
|
|
ansible_become_pass: "{{ root_password }}"
|
|
|
|
# 4. Configurer le hostname
|
|
- name: Configurer le hostname
|
|
hostname:
|
|
name: "{{ hostname_var }}"
|
|
become: yes
|
|
become_user: root
|
|
become_method: su
|
|
vars:
|
|
ansible_become_pass: "{{ root_password }}"
|
|
|
|
# 5. Changer le mot de passe root
|
|
- name: Changer le mot de passe root
|
|
user:
|
|
name: root
|
|
password: "{{ root_password | password_hash('sha512') }}"
|
|
become: yes
|
|
become_user: root
|
|
become_method: su
|
|
vars:
|
|
ansible_become_pass: "{{ root_password }}"
|
|
|
|
# 6. Configurer l'utilisateur spécifié
|
|
- name: Configurer l'utilisateur
|
|
user:
|
|
name: "{{ user_name }}"
|
|
password: "{{ user_password | password_hash('sha512') }}"
|
|
shell: /bin/bash
|
|
groups: sudo
|
|
state: present
|
|
become: yes
|
|
become_user: root
|
|
become_method: su
|
|
vars:
|
|
ansible_become_pass: "{{ root_password }}"
|