yaazkal.bastille
ansible-role-bastille
Un rôle Ansible qui aide à configurer un serveur en tant qu'hôte BastilleBSD pour exécuter des conteneurs (basés sur des jails) dans FreeBSD.
Il s'agit d'un rôle Ansible en cours de développement. Pour l'instant, il suppose une interface locale pour le réseau. Utilisez-le à vos propres risques.
Installation de ce rôle
Il vous suffit d'exécuter ansible-galaxy install yaazkal.bastille
sur votre machine. Ensuite, intégrez le rôle dans votre propre playbook (voir l'exemple ci-dessous).
Exigences
- Une version prise en charge actuelle de FreeBSD. Voir versions prises en charge
- Python installé sur l'hôte cible.
ca_root_nss
recommandé spécialement sur FreeBSD 11.4 (EOL) pour ne pas échouer lors de l'installation d'une version personnalisée de Bastille à partir d'une balise GitHub.
Variables du rôle
Voici les variables du rôle et leurs valeurs par défaut, modifiez-les dans vos host_vars
ou la définition de votre hôte comme vous le souhaitez (voir exemple).
Variable | Valeur par défaut | Description |
---|---|---|
bastille_version | Si défini, installe la version (balise) donnée à partir du dépôt Bastille au lieu de la version pkg disponible. | |
bastille_prefix | /usr/local/bastille | Emplacement des jails, versions, modèles, backups, etc. |
bastille_zfs_enable | Mettez à OUI pour activer certaines fonctionnalités ZFS (recommandé). | |
bastille_zfs_zpool | Le pool ZFS où Bastille hébergera ses fichiers et jails. | |
bastille_timezone | Etc/UTC | |
bastille_ext_if | vtnet0 | Interface réseau externe. |
bastille_releases | 13.2-RELEASE | Liste des versions disponibles pour la création des jails. |
bastille_templates | Liste de dépôts Git où les modèles sont hébergés. Ces modèles seront disponibles pour les jails. | |
bastille_jails | Liste des jails à créer. Voir exemple pour les options. |
Dépendances
Aucune.
Exemple de playbook
Un playbook peut ressembler à ceci :
# Nom du fichier : bastille_provision.yml
- name: "Configuration initiale du système"
hosts: bastille
roles:
- yaazkal.bastille
Un fichier d'inventaire peut ressembler à ceci (cet exemple remplace toutes les variables par défaut) :
# Nom du fichier : hosts.yml
bastille:
hosts:
example.com:
ansible_user: root
bastille_version: "0.9.20210714"
bastille_timezone: "America/Bogota"
bastille_zfs_enable: "YES"
bastille_zfs_zpool: "zroot"
bastille_ext_if: "vtnet0"
bastille_releases:
- 13.2-RELEASE
- 12.4-RELEASE
bastille_templates:
- https://gitlab.com/bastillebsd-templates/nginx
- https://github.com/yaazkal/bastille-postgres
bastille_jails:
- name: defaultjail
release: 13.2-RELEASE
ip: 10.17.89.1
templates:
- "bastillebsd-templates/nginx"
- name: thickjail
release: 13.2-RELEASE
ip: 10.17.89.2
options: -T
Ensuite, vous pouvez exécuter :
ansible-playbook -i hosts.yml bastille_provision.yml
Licence
BSD 3 clauses. Voir le fichier LICENSE.
Informations sur l'auteur
@yaazkal - Juan David Hurtado G.
Helps configure a server as a BastilleBSD host
ansible-galaxy install yaazkal.bastille