Les paquets sont installés par des rôles dédiés (gestionnaires de paquets)
This commit is contained in:
parent
0604af785f
commit
8655facec4
|
@ -1,11 +1,11 @@
|
||||||
hostname: fr.tild3.org
|
hostname: fr.tild3.org
|
||||||
roles: [ webserver, rust, ssg ]
|
roles: [ webserver ]
|
||||||
peers:
|
peers:
|
||||||
- name: tilde.netlib.re
|
- name: tilde.netlib.re
|
||||||
client_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEHsVZvvVX3VPj2sWxrb8LJrn3650aoLAZgbY7+CB+NU"
|
client_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEHsVZvvVX3VPj2sWxrb8LJrn3650aoLAZgbY7+CB+NU"
|
||||||
server_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHUAIuwEhFXTDfOEG+hQ2d/xeUwsgPJQF7oeNYr1ZXnG"
|
server_key: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHUAIuwEhFXTDfOEG+hQ2d/xeUwsgPJQF7oeNYr1ZXnG"
|
||||||
packages:
|
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 ]
|
rust: [ lsd ]
|
||||||
ssg: [ zola, ttbp ]
|
ssg: [ zola, ttbp ]
|
||||||
users:
|
users:
|
||||||
|
|
|
@ -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
|
- name: Installer le serveur
|
||||||
hosts: all
|
hosts: all
|
||||||
roles:
|
roles:
|
||||||
- common
|
- .common
|
||||||
|
|
||||||
|
|
|
@ -11,12 +11,6 @@
|
||||||
name: [ certbot, tor, sudo ]
|
name: [ certbot, tor, sudo ]
|
||||||
update_cache: yes
|
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
|
- name: setup certbot with contact email
|
||||||
copy:
|
copy:
|
||||||
src: ../files/letsencrypt_cli.ini
|
src: ../files/letsencrypt_cli.ini
|
||||||
|
@ -25,13 +19,17 @@
|
||||||
- include: tor.yml
|
- include: tor.yml
|
||||||
|
|
||||||
- name: Générer les comptes utilisateurices
|
- name: Générer les comptes utilisateurices
|
||||||
include: users/main.yml
|
include_tasks: users/main.yml
|
||||||
when: users is defined
|
when: users is defined
|
||||||
|
|
||||||
- name: Activer le peering
|
- name: Activer le peering
|
||||||
include: peering/main.yml
|
include: peering/main.yml
|
||||||
when: peers is defined
|
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
|
- name: Exécuter les rôles définis dans la config
|
||||||
include_role:
|
include_role:
|
||||||
name: "{{ current_role }}"
|
name: "{{ current_role }}"
|
|
@ -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
|
|
@ -0,0 +1,4 @@
|
||||||
|
- name: Installer les paquets Debian définis dans la config
|
||||||
|
apt:
|
||||||
|
state: present
|
||||||
|
name: "{{ packages.debian }}"
|
|
@ -50,5 +50,3 @@
|
||||||
cmd: "cargo install {{ item }}"
|
cmd: "cargo install {{ item }}"
|
||||||
creates: "/usr/local/bin/{{ item }}"
|
creates: "/usr/local/bin/{{ item }}"
|
||||||
loop: "{{ packages.rust }}"
|
loop: "{{ packages.rust }}"
|
||||||
when: packages is defined and packages.rust is defined
|
|
||||||
|
|
|
@ -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
|
- name: Vérifier quels SSG sont installés
|
||||||
stat:
|
stat:
|
||||||
path: "/usr/local/bin/{{ item }}"
|
path: "/usr/local/bin/{{ item }}"
|
||||||
loop: "{{ packages.ssg }}"
|
loop: "{{ packages.ssg }}"
|
||||||
register: ssg_exists
|
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"
|
- name: "Installer les générateurs de sites statiques activés dans la config"
|
||||||
include: "{{ item.item }}/main.yml"
|
include: "{{ item.item }}/main.yml"
|
Loading…
Reference in New Issue