criecm.iocage

iocage

Instalacja hosta i konfigurowanie więzień na FreeBSD (to nie zadziała as-is na FreeNAS, poprawki mile widziane ;)

Używa modułu iocage z ansible z https://github.com/fractalcells/ansible-iocage (wbudowanego w bibliotekę roli)

Dodaje stworzone hosty do inwentarza (add_host) z zmienną iocage_host wypełnioną nazwą hosta oraz grupą iojails.

Zmienne roli

(w defaults/main.yml)

  • iocage_zpool (zroot): ZFS pool dla iocage

  • iocage_fetch_args ({}): argumenty, które będą przekazywane do iocage fetch przykład: "-s ftp.local -d pub/FreeBSD/releases"

  • jail_list ([]) lista słowników więzień do utworzenia na hoście, patrz poniżej

  • myjail ('') jeśli zdefiniowane, uruchomi tylko to więzienie z jail_list (nic, jeśli nie znalezione)

  • myjails([]) to samo co myjail, ale dla więcej niż jednego :)

  • iocage_components (none) - lista jeśli zdefiniowane, zainstaluje tylko te komponenty

  • iocage_enable_ssh (True) Włącz SSH w nowych więzieniach

  • iocage_release (uname -r) Wersja, której potrzebujesz

  • jail_init_role () Rola do zaimportowania w celu inicjalizacji nowego więzienia

  • iocage_use_pkg (True) Zainstaluje iocage z pakietów, lub z git, jeśli False

zmienne dla więzienia

(w vars/jail.yml)

  • name (brak domyślnej wartości, obowiązkowe): ludzki identyfikator, unikalny na hoście

  • hostname (''): wygenerowany UUID, jeśli puste

  • ip4 (''): adres(y) IPv4, ten sam format co iocage: [ifaceN|]192.0.2.1[/24][,[ifaceN|]192.0.2.1[/24][,…]]

    • jeśli 'iface|' jest dodane na początku, adres IP zostanie dodany do interfejsu przy uruchamianiu więzienia
    • jeśli nie podano maski, IP będzie /32
  • ip6 (''): IPv6 … tak samo jak powyżej (ale domyślna maska to /128, nie /32 ;-P)

  • resolver ('auto'): zawartość resolv.conf dla więzienia, z ';' zamiast nowych linii (iocage skopiuje jeden z hosta przy uruchamianiu więzienia, jeśli puste)

  • properties ({}): Słownik dla dowolnych właściwości więzienia iocage

  • authkeys (/root/.ssh/authorized_keys) Plik do skopiowania jako /root/.ssh/authorized_keys w więzieniu

logika resolver=auto

resolver zostanie automatycznie wypełniony według zmiennych search_domains i resolvers (tutaj mamy je w group_vars/all.yml). To wybierze domeny wyszukiwania i resolvery w zależności od adresów IP więzienia.

# jeśli ip jest w 'network', 'domain' jest dodawana
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' }

# jeśli ip jest w 'network', 'ip' jest dodawane do resolverów
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 }

przykładowe playbooki:

Host z dwoma więzieniami:

- 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' }

fragment playbooka do utworzenia/zarejestrowania więzienia przed pracą z nim

- hosts: realmachine
  roles:
    - criecm.iocage
  vars:
    # tutaj jail_list może być w inwentarzu/host_vars/realmachine.yml
    myjail: myfirstjail

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

moduł ansible-iocage

aktualizacja z źródła:

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

O projekcie

iocage jail management for FreeBSD

Zainstaluj
ansible-galaxy install criecm.iocage
Licencja
Unknown
Pobrania
187
Właściciel
Direction des Systèmes d'Information