yaazkal.bastille
ansible-role-bastille
Un rol de Ansible que ayuda a configurar un servidor como un host de BastilleBSD para ejecutar contenedores (basados en jails) en FreeBSD.
Este es un rol de Ansible en progreso. En este momento, se asume una interfaz local para la red. Úsalo bajo tu propio riesgo.
Instalar este rol
Simplemente ejecuta ansible-galaxy install yaazkal.bastille
en tu máquina. Luego, integra el rol en tu propio playbook (ver el ejemplo a continuación).
Requisitos
- Una versión actual soportada de FreeBSD. Consulta versiones soportadas
- Python instalado en el host objetivo.
- Se recomienda
ca_root_nss
, especialmente en FreeBSD 11.4 (EOL), para evitar errores al instalar una versión personalizada de Bastille desde un tag de github.
Variables del rol
Estas son las variables del rol y sus valores predeterminados. Establece los valores en tus host_vars
o en la definición del host como desees (ver ejemplo).
Variable | Valor predeterminado | Descripción |
---|---|---|
bastille_version | Si se establece, instala la versión (tag) dada del repo de Bastille en lugar de la versión pkg disponible. | |
bastille_prefix | /usr/local/bastille | Donde viven los jails, releases, plantillas, backups, etc. |
bastille_zfs_enable | Establecer en YES para activar algunas funcionalidades de ZFS (recomendado). | |
bastille_zfs_zpool | El pool ZFS donde Bastille alojará sus archivos y jails. | |
bastille_timezone | Etc/UTC | |
bastille_ext_if | vtnet0 | Interfaz de red externa. |
bastille_releases | 13.2-RELEASE | Lista de releases disponibles para la creación de jails. |
bastille_templates | Lista de repos de git donde se alojan las plantillas. Estas plantillas estarán disponibles para jails. | |
bastille_jails | Lista de jails a crear. Consulta el ejemplo para ver las opciones. |
Dependencias
Ninguna.
Ejemplo de Playbook
Un playbook puede lucir así:
# Nombre de archivo: bastille_provision.yml
- name: "Configuración inicial del sistema"
hosts: bastille
roles:
- yaazkal.bastille
Un archivo de inventario puede lucir así (este ejemplo sobrescribe todas las variables predeterminadas):
# Nombre de archivo: 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
Luego puedes ejecutar:
ansible-playbook -i hosts.yml bastille_provision.yml
Licencia
BSD 3 cláusulas. Consulta el archivo LICENSE.
Información del autor
@yaazkal - Juan David Hurtado G.
Helps configure a server as a BastilleBSD host
ansible-galaxy install yaazkal.bastille