criecm.iocage

iocage

Instalación/configuración de host y jaulas en FreeBSD (esto no funcionará tal cual en FreeNAS, se aceptan parches ;)

Usa el módulo iocage de ansible de https://github.com/fractalcells/ansible-iocage (integrado en la biblioteca del rol)

Agrega los hosts creados en el inventario (add_host) con una variable iocage_host rellenada con inventory_hostname del host y un grupo iojails.

Variables del rol

(en defaults/main.yml)

  • iocage_zpool (zroot): Pool ZFS para iocage

  • iocage_fetch_args ({}): argumentos que se pasarán a iocage fetch ejemplo: "-s ftp.local -d pub/FreeBSD/releases"

  • jail_list ([]) lista de diccionarios de jaulas que se crearán en el host, consulta abajo

  • myjail ('') si se define, ejecutará solo esta jaula de jail_list (ninguna si no se encuentra)

  • myjails([]) igual que myjail, pero para más de uno :)

  • iocage_components (none) - lista si se define, solo se instalarán estos componentes

  • iocage_enable_ssh (True) Habilitar ssh en nuevas jaulas

  • iocage_release (uname -r) La versión que necesitas

  • jail_init_role () Rol a importar para inicializar una nueva jaula

  • iocage_use_pkg (True) Instalará iocage desde paquetes o desde git si es False

Variables por jaula

(en vars/jail.yml)

  • name (sin valor predeterminado, obligatorio): identificador humano, único en el host

  • hostname (''): UUID generado si está vacío

  • ip4 (''): direcciones IPv4, mismo formato que iocage: [ifaceN|]192.0.2.1[/24][,[ifaceN|]192.0.2.1[/24][,…]]

    • si se antepone 'iface|', la IP se añadirá a la interfaz al iniciar la jaula
    • si no se da máscara, la IP será /32
  • ip6 (''): IPv6 … igual que arriba. (pero la máscara predeterminada es /128, no /32 ;-P )

  • resolver ('auto'): contenido de resolv.conf para la jaula, con ';' en lugar de saltos de línea (iocage copiará el del host al iniciar la jaula si está vacío)

  • properties ({}): Diccionario para todas las propiedades de la jaula de iocage disponibles

  • authkeys (/root/.ssh/authorized_keys) Archivo a copiar como /root/.ssh/authorized_keys en la jaula

Lógica de resolver=auto

resolver se llenará automáticamente según las variables search_domains y resolvers (aquí las tenemos en group_vars/all.yml). Esto seleccionará el/los dominio(s) de búsqueda y resolutores dependiendo de las direcciones IP de la jaula.

# si la IP está en 'network', se agrega 'domain'
search_domains:
  - { network: '192.0.2.0/24', domain: 'our.example.net' }
  - { network: '198.51.100.0/24', domain: 'ryd.example.org' }
  - { network: '2001:0DB8:fe43::/32', domain: 'ipv6.example.org' }
  - { network: '0.0.0.0/0', domain: 'example.com' }

# si la IP está en 'network', 'ip' se agrega a resolvers
resolvers:
  - { network: '192.0.2.0/24', ip: 192.0.2.1 }
  - { network: '198.51.100.0/24', ip: 192.0.2.1 }
  - { network: '2001:0DB8:fe43::/56', ip: 2001:0DB8::1 }
  - { network: '0.0.0.0/0', ip: 8.8.8.8 }
  - { network: '::/0', ip: 2620:0:ccc::2 }

Ejemplos de playbooks:

Un host de jaula con dos jaulas:

- hosts: realmachine
  roles:
    - criecm.iocage
  vars:
    jail_list:
      - { name: myfirstjail, hostname: myfirstjail.example.org, ip4_addr: 'bge0|198.51.100.0' }
      - { name: mysecjail, hostname: mysecjail.example.org, ip4_addr: 'bge0|198.51.100.8' }

Un fragmento de playbook para crear/registrar la jaula antes de trabajar en ella

- hosts: realmachine
  roles:
    - criecm.iocage
  vars:
    # aquí jail_list puede estar en inventory/host_vars/realmachine.yml
    myjail: myfirstjail

- hosts: myfirstjail
  roles:
    - criecm.apache
  […]

Módulo ansible-iocage

actualizar desde la fuente:

git subtree pull -P roles/criecm.iocage/library/src/iocage https://github.com/criecm/ansible-iocage.git master

Acerca del proyecto

iocage jail management for FreeBSD

Instalar
ansible-galaxy install criecm.iocage
Licencia
Unknown
Descargas
187
Propietario
Direction des Systèmes d'Information