diff --git a/README.md b/README.md index 3edfbf7..09df3a4 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,73 @@ -# role_modele +# role_apt -Modèle \ No newline at end of file +Rôle de configuration du gestionnaire de paquet *apt* et de déploiement/suppression de paquets. + +## Variables + +### apt_distribution_name + +Nom de la distribution utilisée. + +Valeur par défaut: `debian` + +### apt_distribution_release + +Nom de la version de la distribution utilisée. + +Valeur par défaut: `bullseye` + +### apt_distribution_sections + +Sections où seront chercher les paquets (exemple : `main contrib non-free`). + +Valeur par défaut: `main` + +### apt_remove + +Liste de paquets qui seront désinstallés. + +Valeur par défaut: aucune + +### apt_install + +Liste de paquets qui seront installés. + +Valeur par défaut: aucune + +## Exemple d'utilisation + +### inventory.yml + + +```yaml +--- + +all: + hosts: + host1.ykn.local: +``` + +### group_vars/all.yml + +```yaml +--- + +apt_remove: + - cloud-guest-utils + - cloud-init + +apt_install: + - fail2ban + - nftables + - tmux +``` + +### playbook.yml + +```yaml +--- + +- hosts: 'all' + roles: + - name: apt +``` diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..c6c4b28 --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,9 @@ +--- +# defaults file for apt + +apt_distribution_name: debian +apt_distribution_release: bullseye +apt_distribution_sections: main + +apt_remove: [] +apt_install: [] diff --git a/meta/main.yml b/meta/main.yml index c58bebf..75764d6 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,7 +1,7 @@ galaxy_info: namespace: ykn author: pulsar89.5 - description: Rôle modèle + description: Configurer apt et gérer les paquets communs license: GPL-3.0-or-later diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..78fe938 --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,49 @@ +--- +# tasks file for apt + +- name: Déployer la configuration du gestionnaire + ansible.builtin.template: + src: apt.conf.j2 + dest: /etc/apt/apt.conf.d/99-custom + owner: root + group: root + mode: u=rw,g=r,o=r + become: true + +- name: Déployer la configuration des sources + ansible.builtin.template: + src: sources.list.j2 + dest: /etc/apt/sources.list + owner: root + group: root + mode: u=rw,g=r,o=r + become: true + +- name: Mettre à jour le cache + ansible.builtin.apt: + name: sudo + become: true + +- name: Installer sudo + ansible.builtin.apt: + name: sudo + become: true + +- name: Désinstaller les paquets communs + ansible.builtin.apt: + state: absent + purge: true + autoremove: true + name: "{{ apt_remove }}" + become: true + +- name: Mettre à jour la distribution + become: true + ansible.builtin.apt: + update_cache: true + upgrade: dist + +- name: Installer les paquets communs + ansible.builtin.apt: + name: "{{ apt_install }}" + become: true diff --git a/templates/apt.conf.j2 b/templates/apt.conf.j2 new file mode 100644 index 0000000..203286f --- /dev/null +++ b/templates/apt.conf.j2 @@ -0,0 +1,8 @@ +# {{ ansible_managed }} + +APT::Install-Recommends "false"; +APT::Install-Suggests "false"; +APT::Get::Show-Versions "true"; +APT::Get::Show-Upgraded "true"; +APT::Get::Purge "true"; +APT::Get::List-Cleanup "true"; diff --git a/templates/sources.list.j2 b/templates/sources.list.j2 new file mode 100644 index 0000000..10a0338 --- /dev/null +++ b/templates/sources.list.j2 @@ -0,0 +1,3 @@ +# {{ ansible_managed }} + +{{ apt_repositories[apt_distribution_name] }} diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..3a9e94d --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,9 @@ +--- +# vars file for apt + +apt_repositories: + debian: | + deb http://deb.debian.org/debian {{ apt_distribution_release }} {{ apt_distribution_sections }} + deb http://security.debian.org/debian-security {{ apt_distribution_release }}-security {{ apt_distribution_sections }} + deb http://deb.debian.org/debian {{ apt_distribution_release }}-updates {{ apt_distribution_sections }} + deb https://deb.debian.org/debian/ {{ apt_distribution_release }}-backports {{ apt_distribution_sections }}