Freenas Jails mit Ansible einrichten

Ich möchte die Installation von Diensten in FreeBSD Jails auf meinem Freenas Server mit Ansible automatisieren und dokumentieren. Der Schwerpunkt liegt eher auf der Rekonstruktionsfähigkeit als der vollständigen automatisierung. Deswegen werden einige der Schritte noch händisch durchgeführt.

Auf dem Ansible Adminhost habe ich gemäß dieser Anleitung das python paramiko modul installiert

sudo apt install python3-paramiko

Das Inventory wird dann um eine Gruppe mit dem Host erweitert

[git2blog]
a4j ansible_connection=paramiko

Auf dem FreeBSD Host dann das Jail starten und auf die Console wechseln

iocage start a4j
iocage console a4j

Damit die Konfiguration ähnlich meinen Debian Konfigurationen ist führe ich auch direkt ein paar Basiskonfigurationen durch. Könnte man auch mit Ansible machen aber da ich eh schon da bin ….

pkg update
pkg install python37 sudo
adduser hbauer
echo 'hbauer ALL=(ALL) NOPASSWD: ALL' >/usr/local/etc/sudoers.d/allow-hbauer-user-login
service sshd onestart

Ja ich weiss die Sudo Regel ist ein Scheunentor aber es ist ein interner Rechner und SSH läuft normalerweise nicht.

Jetzt kann ich von meiner Ansible Station einen ersten Test mit Ansible machen.

ansible -u hbauer -i etc-hosts -m ping a4j --ask-pass

a4j | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/local/bin/python3.7"
    },
    "changed": false,
    "ping": "pong"
}

Von hier aus sollte alles normal wie auch bei dem für mich bekannten Debian laufen. Nur sind natürlich die Ansible Module etwas anders. So sieht es dann aus wenn man Software installiert

vi git2blog.yml 
- hosts: a4j
  tasks:
      - name: Add packages on FreeBSD 
        pkgng:
            name: rsync,curl,git,mosquitto


ansible-playbook -b -i etc-hosts git2blog.yml --ask-pass