yaazkal.bastille
ansible-role-bastille
Eine Ansible-Rolle, die dabei hilft, einen Server als BastilleBSD Host für das Ausführen von Containern (basierend auf Jails) in FreeBSD zu konfigurieren.
Dies ist eine Ansible-Rolle in Arbeit. Momentan wird die lokale Schnittstelle für das Networking angenommen. Benutze es auf eigenes Risiko.
Installation dieser Rolle
Führe einfach ansible-galaxy install yaazkal.bastille
auf deinem Rechner aus. Integriere dann die Rolle in dein eigenes Playbook (siehe das Beispiel unten).
Anforderungen
- Eine aktuelle unterstützte Version von FreeBSD. Siehe unterstützte Versionen
- Python auf dem Zielhost installiert.
ca_root_nss
wird empfohlen, insbesondere auf FreeBSD 11.4 (EOL), um beim Installieren einer benutzerdefinierten Bastille-Version aus einem GitHub-Tag keine Fehler zu erhalten.
Rollenvariablen
Dies sind die Rollenvariablen und ihre Standardwerte. Setze sie in deinen host_vars
oder in der Hostdefinition, wie du möchtest (siehe Beispiel).
Variable | Standardwert | Beschreibung |
---|---|---|
bastille_version | Wenn gesetzt, wird die angegebene Version (Tag) aus dem Bastille-Repo installiert statt der verfügbaren pkg-Version. | |
bastille_prefix | /usr/local/bastille | Wo Jails, Releases, Templates, Backups usw. gespeichert werden. |
bastille_zfs_enable | Auf YES setzen, um einige ZFS-Funktionen zu aktivieren (empfohlen). | |
bastille_zfs_zpool | Der ZFS-Pool, in dem Bastille seine Dateien und Jails hostet. | |
bastille_timezone | Etc/UTC | |
bastille_ext_if | vtnet0 | Externe Netzwerkschnittstelle. |
bastille_releases | 13.2-RELEASE | Liste der Releases, die für die Erstellung von Jails verfügbar sein sollen. |
bastille_templates | Liste der Git-Repos, in denen Templates gehostet werden. Diese Templates werden für Jails verfügbar sein. | |
bastille_jails | Liste der zu erstellenden Jails. Siehe Beispiel für Optionen. |
Abhängigkeiten
Keine.
Beispiel Playbook
Ein Playbook könnte so aussehen:
# Dateiname: bastille_provision.yml
- name: "Erstkonfiguration des Systems"
hosts: bastille
roles:
- yaazkal.bastille
Eine Inventar-Datei könnte so aussehen (dieses Beispiel überschreibt alle Standardvariablen):
# Dateiname: 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
Danach kannst du ausführen:
ansible-playbook -i hosts.yml bastille_provision.yml
Lizenz
BSD 3-Klausel. Siehe Lizenzdatei.
Autor-Informationen
@yaazkal - Juan David Hurtado G.
Helps configure a server as a BastilleBSD host
ansible-galaxy install yaazkal.bastille