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