Les paquets sont installés par des rôles dédiés (gestionnaires de paquets)

This commit is contained in:
southerntofu 2020-04-15 19:19:35 +00:00
parent 0604af785f
commit 8655facec4
20 changed files with 29 additions and 13 deletions

View File

@ -1,11 +1,11 @@
hostname: fr.tild3.org
roles: [ webserver, rust, ssg ]
roles: [ webserver ]
peers:
- name: tilde.netlib.re
client_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEHsVZvvVX3VPj2sWxrb8LJrn3650aoLAZgbY7+CB+NU"
server_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHUAIuwEhFXTDfOEG+hQ2d/xeUwsgPJQF7oeNYr1ZXnG"
packages:
debian: [ subversion, mercurial, htop, tmux, vim, emacs, mutt, weechat, elinks, rsync, dnsutils, make, g++, libssl-dev, mosh, gopher ]
debian: [ subversion, mercurial, htop, tmux, vim, emacs, mutt, weechat, elinks, rsync, dnsutils, make, g++, libssl-dev, mosh, gopher, sl ]
rust: [ lsd ]
ssg: [ zola, ttbp ]
users:

View File

@ -1,4 +1,7 @@
# Les rôles dont le nom est préfixé d'un . ne sont pas faits pour être activés dans la config
- name: Installer le serveur
hosts: all
roles:
- common
- .common

View File

@ -11,12 +11,6 @@
name: [ certbot, tor, sudo ]
update_cache: yes
- name: Installer les paquets définis dans la config
apt:
state: present
name: "{{ packages.debian }}"
when: packages is defined and packages.debian is defined
- name: setup certbot with contact email
copy:
src: ../files/letsencrypt_cli.ini
@ -25,13 +19,17 @@
- include: tor.yml
- name: Générer les comptes utilisateurices
include: users/main.yml
include_tasks: users/main.yml
when: users is defined
- name: Activer le peering
include: peering/main.yml
when: peers is defined
- name: Installer des paquets supplémentaires
include_tasks: packages.yml
when: packages is defined
- name: Exécuter les rôles définis dans la config
include_role:
name: "{{ current_role }}"

View File

@ -0,0 +1,10 @@
# Quand packages est vide, on arrive pas ici
# Les gestionnaires de paquets sont des rôles qui commencent par .
- name: Exécuter les gestionnaires de paquets
include_role:
# Chaque gestionnaire de paquets peut estimer que sa liste n'est pas vide
name: ".{{ current_role.key }}"
loop: "{{ packages | dict2items }}"
loop_control:
loop_var: current_role

View File

@ -0,0 +1,4 @@
- name: Installer les paquets Debian définis dans la config
apt:
state: present
name: "{{ packages.debian }}"

View File

@ -50,5 +50,3 @@
cmd: "cargo install {{ item }}"
creates: "/usr/local/bin/{{ item }}"
loop: "{{ packages.rust }}"
when: packages is defined and packages.rust is defined

View File

@ -1,9 +1,12 @@
# Pour l'instant, il n'est pas possible d'avoir un paquet qui ne porte pas le nom de son binaire
# parce qu'on vérifie que le binaire est installé
# A terme, ça sera à chaque paquet de vérifier lui-même s'il est installé
- name: Vérifier quels SSG sont installés
stat:
path: "/usr/local/bin/{{ item }}"
loop: "{{ packages.ssg }}"
register: ssg_exists
when: packages is defined and packages.ssg is defined
- name: "Installer les générateurs de sites statiques activés dans la config"
include: "{{ item.item }}/main.yml"