aboutsummaryrefslogtreecommitdiffstats
path: root/tasks
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-05-13 00:13:57 +0300
committerJan Tuomi <jan@jantuomi.fi>2026-05-16 18:42:27 +0300
commitb5860daf11ac353049cb1654b9414a129e5cfb96 (patch)
tree87ed89711e4f0e85ace0a97fa123199152c67302 /tasks
parent4715a28fdcd87440400d17154bfa361d99db29cc (diff)
Rework
Diffstat (limited to 'tasks')
-rw-r--r--tasks/email.yml50
-rw-r--r--tasks/general.yml167
-rw-r--r--tasks/jail_diddle.yml63
-rw-r--r--tasks/jail_homepage.yml52
-rw-r--r--tasks/jail_hommabot.yml62
-rw-r--r--tasks/jail_ingress.yml211
-rw-r--r--tasks/jail_postgres.yml10
-rw-r--r--tasks/jails.yml49
-rw-r--r--tasks/jails_dataset.yml61
-rw-r--r--tasks/jails_single.yml27
-rw-r--r--tasks/network.yml48
-rw-r--r--tasks/pkg_jail_install.yml9
-rw-r--r--tasks/zfs.yml48
13 files changed, 0 insertions, 857 deletions
diff --git a/tasks/email.yml b/tasks/email.yml
deleted file mode 100644
index 3585c3f..0000000
--- a/tasks/email.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-- name: Create dma config directory
- file:
- path: /etc/dma
- state: directory
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Configure dma.conf
- template:
- src: etc_dma_dma.conf.j2
- dest: /etc/dma/dma.conf
- owner: root
- group: wheel
- mode: "0644"
- register: etc_dma_dma_conf
-
-- name: Configure auth.conf
- template:
- src: etc_dma_auth.conf.j2
- dest: /etc/dma/auth.conf
- owner: root
- group: mail
- mode: "0640"
- register: etc_dma_auth_conf
-
-- name: Configure aliases
- template:
- src: etc_aliases.j2
- dest: /etc/aliases
- owner: root
- group: wheel
- mode: "0644"
- register: etc_aliases_conf
-
-- name: Run newaliases
- shell: newaliases
- when: etc_aliases_conf.changed
-
-- name: Test mail delivery
- when: etc_dma_dma_conf.changed or etc_dma_auth_conf.changed or etc_aliases_conf.changed
- block:
- - name: Send email
- shell: echo "DMA test message from Ansible" | mail -s "Test DMA" root
- register: mail_result
- changed_when: false
-
- - name: Show mail result
- debug:
- var: mail_result
diff --git a/tasks/general.yml b/tasks/general.yml
deleted file mode 100644
index 0ec9219..0000000
--- a/tasks/general.yml
+++ /dev/null
@@ -1,167 +0,0 @@
-- name: Install packages
- package:
- name: "{{ item }}"
- state: present
- loop:
- - rsync
- - dma
- - jq
- - curl
- - bash
- - python
- - py311-pip
- - fastfetch
-
-- name: Install amd64-specific packages
- package:
- name: "{{ item }}"
- state: present
- loop:
- - vm-bhyve
- - drm-kmod
- when: not is_test_vm
-
-- name: Set up periodic.conf
- template:
- src: etc_periodic.conf.j2
- dest: /etc/periodic.conf
- owner: root
- group: wheel
- mode: "0644"
-
-- name: Set up /etc/rc.conf
- template:
- src: etc_rc.conf.j2
- dest: /etc/rc.conf
- owner: root
- group: wheel
- mode: "0644"
- register: rc_conf
-
-- name: Set up fstab
- template:
- src: etc_fstab.j2
- dest: /etc/fstab
- owner: root
- group: wheel
- mode: "0644"
- register: fstab
- when: not is_test_vm
-
-- name: Run mount -a
- shell: mount -a
- when: not is_test_vm and fstab.changed
-
-- name: Start auditd
- service:
- name: auditd
- state: started
-
-- name: Check if pylogsentinel is installed
- shell: pip show pylogsentinel
- register: pylogsentinel_check
- failed_when: false
- changed_when: false
-
-- name: Install pylogsentinel
- shell: pip install pylogsentinel==0.3.0 --force --no-input
- when: pylogsentinel_check.rc != 0
-
-- name: Install pylogsentinel.conf
- template:
- src: usr_local_etc_pylogsentinel.conf.j2
- dest: /usr/local/etc/pylogsentinel.conf
- owner: root
- group: wheel
- mode: "0644"
-
-- name: Install pylogsentinel-batch-email.sh
- template:
- src: usr_local_bin_pylogsentinel-batch-email.sh.j2
- dest: /usr/local/bin/pylogsentinel-batch-email.sh
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Set up crontab
- template:
- src: etc_crontab.j2
- dest: /etc/crontab
- owner: root
- group: wheel
- mode: "0644"
- register: etc_crontab
-
-- name: Restart cron
- service:
- name: cron
- state: restarted
- when: etc_crontab.changed
-
-- name: Install logto
- template:
- src: usr_local_bin_logto.sh.j2
- dest: /usr/local/bin/logto
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Copy backup SSH private key
- copy:
- src: "{{ backup_ssh_privkey_file }}"
- dest: /root/.ssh/backup
- owner: root
- group: wheel
- mode: "0600"
- when: not is_test_vm
-
-- name: Copy backup SSH public key
- copy:
- src: "{{ backup_ssh_pubkey_file }}"
- dest: /root/.ssh/backup.pub
- owner: root
- group: wheel
- mode: "0644"
- when: not is_test_vm
-
-- name: Copy SSH config
- template:
- src: root_ssh_config.j2
- dest: /root/.ssh/config
- owner: root
- group: wheel
- mode: "0644"
- when: not is_test_vm
-
-- name: Copy backup script
- template:
- src: usr_local_bin_backup.sh.j2
- dest: /usr/local/bin/backup
- owner: root
- group: wheel
- mode: "0755"
- when: not is_test_vm
-
-- name: Check if zroot/vm exists
- shell: zfs list zroot/vm
- register: zroot_vm_check
- failed_when: false
- changed_when: false
- when: not is_test_vm
-
-- name: Add vm dataset for bhyve and init
- when: not is_test_vm and zroot_vm_check.rc != 0
- block:
- - name: Create vm dataset
- shell: zfs create zroot/vm
-
- - name: Run vm init
- shell: vm init
-
-- name: Install .bashrc
- copy:
- src: templates/root_bashrc
- dest: /root/.bashrc
- owner: root
- group: wheel
- mode: "0644"
diff --git a/tasks/jail_diddle.yml b/tasks/jail_diddle.yml
deleted file mode 100644
index 73424f5..0000000
--- a/tasks/jail_diddle.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-- name: Install packages inside jail
- loop:
- - { jail: diddle, package: python311 }
- - { jail: diddle, package: py311-sqlite3 }
- - { jail: diddle, package: git }
- include_tasks: pkg_jail_install.yml
-
-- name: Install clone.sh
- template:
- src: root_clone.sh
- dest: /usr/local/jails/containers/diddle/root/clone.sh
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Clone & update diddle
- shell: jexec diddle sh /root/clone.sh https://github.com/jantuomi/diddle.git /root/diddle
- register: diddle_git
- changed_when: diddle_git.rc == 100
- failed_when: diddle_git.rc != 0 and diddle_git.rc != 100
-
-- name: Install diddle env file
- template:
- src: diddle/root_diddle_env.j2
- dest: /usr/local/jails/containers/diddle/root/diddle/.env
- owner: root
- group: wheel
- mode: "0600"
- register: diddle_env
-
-- name: Install diddle startup script
- template:
- src: diddle/usr_local_bin_diddle
- dest: /usr/local/jails/containers/diddle/usr/local/bin/diddle
- owner: root
- group: wheel
- mode: "0755"
- register: diddle_bin
-
-- name: Install diddle service
- template:
- src: diddle/usr_local_etc_rc.d_diddle
- dest: /usr/local/jails/containers/diddle/usr/local/etc/rc.d/diddle
- owner: root
- group: wheel
- mode: "0755"
- register: diddle_rc
-
-- name: Check if diddle service is running
- command: service -j diddle diddle status
- changed_when: false
- failed_when: false
- register: diddle_status
-
-- name: Ensure diddle service is enabled
- shell: service -j diddle diddle enable
- changed_when: false
- failed_when: false
-
-- name: (Re)start diddle service
- shell: service -j diddle diddle restart
- when: diddle_git.changed or diddle_bin.changed
- or diddle_rc.changed or diddle_env.changed or diddle_status.rc != 0
diff --git a/tasks/jail_homepage.yml b/tasks/jail_homepage.yml
deleted file mode 100644
index 6751ad5..0000000
--- a/tasks/jail_homepage.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-- name: Install packages inside jail
- loop:
- - { jail: homepage, package: nginx }
- - { jail: homepage, package: rsync }
- - { jail: homepage, package: bash }
- include_tasks: pkg_jail_install.yml
-
-- name: Create /var/www
- file:
- path: /usr/local/jails/containers/homepage/var/www
- state: directory
- owner: www
- group: www
- mode: "0755"
-
-# It's important to run this after generating certs, because nginx.conf refers to files
-# generated by certbot. Certbot will fail validation if nginx.conf is configured too early.
-- name: Configure nginx.conf
- template:
- src: homepage/usr_local_etc_nginx_nginx.conf.j2
- dest: /usr/local/jails/containers/homepage/usr/local/etc/nginx/nginx.conf
- owner: root
- group: wheel
- mode: "0644"
- register: homepage_nginx_conf
-
-- name: Check if nginx is enabled
- shell: service -j homepage nginx status
- changed_when: false
- failed_when: false
- register: homepage_nginx_enabled
-
-- name: Enable and start nginx
- shell: |
- service -j ingress nginx enable
- service -j ingress nginx restart
- when: homepage_nginx_enabled.rc != 0 or homepage_nginx_conf.changed
-
-- name: Set up crontab
- template:
- src: homepage/etc_crontab.j2
- dest: /usr/local/jails/containers/homepage/etc/crontab
- owner: root
- group: wheel
- mode: "0644"
- register: jail_homepage_etc_crontab
-
-- name: Restart cron
- service:
- name: cron
- state: restarted
- when: jail_homepage_etc_crontab.changed
diff --git a/tasks/jail_hommabot.yml b/tasks/jail_hommabot.yml
deleted file mode 100644
index b86d5d6..0000000
--- a/tasks/jail_hommabot.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-- name: Install packages inside jail
- loop:
- - { jail: hommabot, package: npm }
- include_tasks: pkg_jail_install.yml
-
-- name: Build hommabot on this machine
- delegate_to: localhost
- shell: |
- cd ../hommabot2
- npm run build
-
-- name: Create hommabot directory
- file:
- path: /usr/local/jails/containers/hommabot/root/hommabot
- state: directory
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Install index.js
- copy:
- src: "{{ item }}"
- dest: /usr/local/jails/containers/hommabot/root/hommabot/
- owner: root
- group: wheel
- mode: "0644"
- loop:
- - "../hommabot2/build/index.js"
- - "../hommabot2/package.json"
- - "../hommabot2/package-lock.json"
-
-- name: Install hommabot env file
- template:
- src: hommabot/root_hommabot_env.j2
- dest: /usr/local/jails/containers/hommabot/root/hommabot/.env
- owner: root
- group: wheel
- mode: "0600"
-
-- name: Install deps.sh
- copy:
- src: templates/hommabot/root_hommabot_deps.sh
- dest: /usr/local/jails/containers/hommabot/root/hommabot/deps.sh
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Install dependencies
- shell: jexec hommabot /root/hommabot/deps.sh
-
-- name: Set up crontab
- template:
- src: hommabot/etc_crontab.j2
- dest: /usr/local/jails/containers/hommabot/etc/crontab
- owner: root
- group: wheel
- mode: "0644"
- register: jail_hommabot_etc_crontab
-
-- name: Restart cron
- shell: jexec hommabot service cron restart
- when: jail_hommabot_etc_crontab.changed
diff --git a/tasks/jail_ingress.yml b/tasks/jail_ingress.yml
deleted file mode 100644
index 5945e42..0000000
--- a/tasks/jail_ingress.yml
+++ /dev/null
@@ -1,211 +0,0 @@
-- name: Ensure ingress goaccess mount points exist
- file:
- path: "{{ item }}"
- state: directory
- owner: root
- group: wheel
- mode: "0755"
- loop:
- - /usr/local/jails/containers/goaccess/var/www/goaccess
- - /usr/local/jails/containers/ingress/mnt/www_goaccess
-
-- name: Start ingress jail
- shell: service jail start ingress
- register: ingress_jail_start
- failed_when: false
- changed_when: "'already running' not in ingress_jail_start.stderr"
-
-- name: Install packages inside jail
- loop:
- - { jail: ingress, package: nginx }
- - { jail: ingress, package: py311-certbot }
- - { jail: ingress, package: py311-certbot-nginx }
- - { jail: ingress, package: goaccess }
- include_tasks: pkg_jail_install.yml
-
-- name: Configure pf.conf
- template:
- src: ingress/etc_pf.conf.j2
- dest: /usr/local/jails/containers/ingress/etc/pf.conf
- owner: root
- group: wheel
- mode: "0644"
- register: ingress_pf_conf
-
-- name: Reload pf.conf
- shell: jexec ingress pfctl -f /etc/pf.conf
- when: ingress_pf_conf.changed
-
-- name: Check if gateway mode is enabled
- shell: jexec ingress sysrc gateway_enable | grep -q "YES"
- register: ingress_gateway_enabled
- failed_when: false
- changed_when: false
-
-- name: Enable gateway mode
- shell: jexec ingress sysrc gateway_enable=YES
- when: ingress_gateway_enabled.rc != 0
-
-- name: Check if IP forwarding is enabled
- shell: jexec ingress sysctl net.inet.ip.forwarding | grep -q "1"
- register: ingress_ip_forwarding_enabled
- failed_when: false
- changed_when: false
-
-- name: Enable IP forwarding
- shell: jexec ingress sysctl net.inet.ip.forwarding=1
- when: ingress_ip_forwarding_enabled.rc != 0
-
-- name: Install pf-ban-socket.py
- copy:
- src: templates/ingress/pf-ban-socket.py
- dest: /usr/local/jails/containers/ingress/usr/local/bin/pf-ban-socket.py
- owner: root
- group: wheel
- mode: "0755"
- register: ingress_pf_ban_socket_py
-
-- name: Install pf-ban-socket service
- copy:
- src: templates/ingress/usr_local_etc_rc.d_pf_ban_socket
- dest: /usr/local/jails/containers/ingress/usr/local/etc/rc.d/pf_ban_socket
- owner: root
- group: wheel
- mode: "0755"
- register: ingress_pf_ban_socket_service
-
-- name: Check if pf enabled
- shell: jexec ingress sysrc pf_enable | grep -q "YES"
- register: ingress_pf_enabled
- failed_when: false
- changed_when: false
-
-- name: Enable pf
- shell: jexec ingress sysrc pf_enable=YES
- when: ingress_pf_enabled.rc != 0
-
-- name: Check if pf is running
- shell: service -j ingress pf status
- register: ingress_pf_status
- changed_when: ingress_pf_status.rc != 0
-
-- name: Start pf
- shell: service -j ingress pf start
- when: ingress_pf_status.rc != 0
-
-- name: Enable pf-ban-socket service
- shell: |
- service -j ingress pf_ban_socket enable
- service -j ingress pf_ban_socket restart
- when: ingress_pf_ban_socket_service.changed or ingress_pf_ban_socket_py.changed
-
-- name: Copy acme-dns-auth.py
- copy:
- src: templates/ingress/acme-dns-auth.py
- dest: /usr/local/jails/containers/ingress/usr/local/bin/acme-dns-auth.py
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Check if LetsEncrypt certs are generated
- shell: ls /usr/local/jails/containers/ingress/usr/local/etc/letsencrypt/live/{{ cert_name }}
- register: cert_exists
- failed_when: false
- changed_when: false
-
-- name: Manually get certs with certbot and DNS challenge
- pause:
- prompt: |
- /usr/local/etc/letsencrypt/live/{{ cert_name }} does not exist. This means that this is the first run of this playbook.
- The {{ cert_name }} cert contains all of the @ and * certs for all domains.
- Check the ingress crontab template and run the certbot command manually in the ingress jail. Remove the "-n" flag.
- Add the requested DNS records manually into Hetzner DNS. Continue after this is done.
- when: cert_exists.rc != 0
-
-- name: Configure nginx.conf
- template:
- src: ingress/usr_local_etc_nginx_nginx.conf.j2
- dest: /usr/local/jails/containers/ingress/usr/local/etc/nginx/nginx.conf
- owner: root
- group: wheel
- mode: "0644"
- register: nginx_conf
-
-- name: Create nginx snippets directory
- file:
- path: "/usr/local/jails/containers/ingress/usr/local/etc/nginx/snippets"
- state: directory
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Include ban.inc
- template:
- src: ingress/nginx_snippet_ban.inc
- dest: /usr/local/jails/containers/ingress/usr/local/etc/nginx/snippets/ban.inc
- owner: root
- group: wheel
- mode: "0644"
-
-- name: Create static directories
- loop: "{{ ingress_routes | selectattr('static', 'defined') | map(attribute='static') | unique | list }}"
- file:
- path: "/usr/local/jails/containers/ingress{{ item }}"
- state: directory
- recurse: yes
- owner: 80
- group: 80
- mode: "0755"
-
-- name: Check if nginx is enabled
- shell: service -j ingress nginx status
- changed_when: false
- failed_when: false
- register: ingress_nginx_enabled
-
-- name: Enable and start nginx
- shell: |
- service -j ingress nginx enable
- service -j ingress nginx restart
- when: ingress_nginx_enabled.rc != 0 or nginx_conf.changed
-
-- name: Install hetzner_ddns.sh
- template:
- src: ingress/usr_local_bin_hetzner_ddns.sh.j2
- dest: /usr/local/jails/containers/ingress/usr/local/bin/hetzner_ddns.sh
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Set up hetzner_auth
- template:
- src: ingress/usr_local_etc_hetzner_auth.j2
- dest: /usr/local/jails/containers/ingress/usr/local/etc/hetzner_auth
- owner: root
- group: wheel
- mode: "0600"
-
-- name: Set up gen_goaccess.sh
- template:
- src: ingress/usr_local_bin_gen_goaccess.sh.j2
- dest: /usr/local/jails/containers/ingress/usr/local/bin/gen_goaccess.sh
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Set up crontab
- template:
- src: ingress/etc_crontab.j2
- dest: /usr/local/jails/containers/ingress/etc/crontab
- owner: root
- group: wheel
- mode: "0644"
- vars:
- tls_hosts: "{{ ingress_routes | map(attribute='host') | unique }}"
- register: jail_ingress_etc_crontab
-
-- name: Restart cron
- service:
- name: cron
- state: restarted
- when: jail_ingress_etc_crontab.changed
diff --git a/tasks/jail_postgres.yml b/tasks/jail_postgres.yml
deleted file mode 100644
index 42cdacf..0000000
--- a/tasks/jail_postgres.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-- name: Install packages inside jail
- loop:
- - { jail: postgres, package: postgresql18-server }
- include_tasks: pkg_jail_install.yml
-
-- name: Enable postgresql service inside jail
- shell: |
- service -j postgres postgresql enable
- changed_when: false
-# Run initdb and start manually, not managed by Ansible
diff --git a/tasks/jails.yml b/tasks/jails.yml
deleted file mode 100644
index 58d22d8..0000000
--- a/tasks/jails.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-- name: Ensure jails directory exists
- file:
- path: /usr/local/jails
- state: directory
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Create ZFS datasets
- loop:
- - { name: "zroot/jails", mountpoint: "/usr/local/jails" }
- - { name: "zroot/jails/media" }
- - { name: "zroot/jails/templates" }
- - {
- name: "zroot/jails/templates/{{ jail_userland_14_3 }}",
- userland: "{{ jail_userland_14_3 }}",
- }
- - {
- name: "zroot/jails/templates/{{ jail_userland_15_0 }}",
- userland: "{{ jail_userland_15_0 }}",
- }
- - { name: "zroot/jails/containers" }
- loop_control:
- loop_var: dataset
- include_tasks: jails_dataset.yml
-
-- name: Configure jails
- block:
- - name: Configure jail.conf
- template:
- src: etc_jail.conf.j2
- dest: /etc/jail.conf
- owner: root
- group: wheel
- mode: "0644"
-
- - name: Configure devfs.rules
- template:
- src: etc_devfs.rules.j2
- dest: /etc/devfs.rules
- owner: root
- group: wheel
- mode: "0644"
-
- - name: Configure individual jails
- loop: "{{ jails }}"
- loop_control:
- loop_var: jail
- include_tasks: jails_single.yml
diff --git a/tasks/jails_dataset.yml b/tasks/jails_dataset.yml
deleted file mode 100644
index 9e2748c..0000000
--- a/tasks/jails_dataset.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-- name: "Check if dataset {{ dataset.name }} exists"
- shell: zfs list -o name | grep -Fxq "{{ dataset.name }}"
- changed_when: false
- failed_when: false
- register: check_dataset_exists
-
-- name: "Create ZFS dataset {{ dataset.name }}"
- shell: |
- {% if dataset.mountpoint is defined %}
- zfs create -o "mountpoint={{ dataset.mountpoint }}" -p "{{ dataset.name }}"
- {% else %}
- zfs create -p "{{ dataset.name }}"
- {% endif %}
- when: check_dataset_exists.rc != 0
-
-- name: Check if userland snapshot already exists
- shell: zfs list -t snapshot -o name | grep -Fxq "{{ dataset.name }}@base"
- failed_when: false
- changed_when: false
- register: zfs_userland_check
- when: dataset.userland is defined
-
-- name: Set up userland
- when: dataset.userland is defined and zfs_userland_check.rc != 0
- block:
- - name: Download userland
- get_url:
- url: https://download.freebsd.org/ftp/releases/{{ arch }}/{{ dataset.userland }}/base.txz
- dest: /usr/local/jails/media/{{ dataset.userland }}-base.txz
- owner: root
- group: wheel
- mode: "0644"
-
- - name: Unarchive userland
- shell: tar -xzf /usr/local/jails/media/{{ dataset.userland }}-base.txz -C /usr/local/jails/templates/{{ dataset.userland }}
-
- - name: Copy localtime to jail userland
- copy:
- remote_src: true
- src: /etc/localtime
- dest: /usr/local/jails/templates/{{ dataset.userland }}/etc/localtime
-
- - name: Copy resolv.conf to jail userland
- template:
- src: etc_resolv.conf.j2
- dest: /usr/local/jails/templates/{{ dataset.userland }}/etc/resolv.conf
- owner: root
- group: wheel
- mode: "0644"
-
- - name: Disable resolvconf in the template
- shell: echo 'resolvconf=NO' >> /usr/local/jails/templates/{{ dataset.userland }}/etc/resolvconf.conf
-
- - name: Update userland to latest patch level
- shell: freebsd-update -b /usr/local/jails/templates/{{ dataset.userland }}/ fetch install
-
- - name: Disable syslogd in the template
- shell: echo 'syslogd_enable="NO"' >> /usr/local/jails/templates/{{ dataset.userland }}/etc/rc.conf
-
- - name: Create userland ZFS snapshot
- shell: zfs snapshot zroot/jails/templates/{{ dataset.userland }}@base
diff --git a/tasks/jails_single.yml b/tasks/jails_single.yml
deleted file mode 100644
index 7c5dd74..0000000
--- a/tasks/jails_single.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-- name: "Check if jail directory for {{ jail.name }} exists"
- shell: zfs list -o name | grep -Fxq "zroot/jails/containers/{{ jail.name }}"
- failed_when: false
- changed_when: false
- register: check_jail_directory
-
-- name: "ZFS clone snapshot to jail directory for {{ jail.name }}"
- shell: zfs clone zroot/jails/templates/{{ jail.userland }}@base "zroot/jails/containers/{{ jail.name }}"
- when: check_jail_directory.rc != 0
-
-- name: Configure jail.conf.d/{{ jail.name }}.conf
- template:
- src: etc_jail.conf.d_[jailname].conf.j2
- dest: /etc/jail.conf.d/{{ jail.name }}.conf
- owner: root
- group: wheel
- mode: "0644"
-#
-#- name: "Check if jail {{ jail.name }} is running"
-# shell: jls -j "{{ jail.name }}"
-# failed_when: false
-# changed_when: false
-# register: check_jail_active
-#
-#- name: "(Re)start jail {{ jail.name }}"
-# shell: service jail restart "{{ jail.name }}"
-# when: check_jail_active.rc != 0
diff --git a/tasks/network.yml b/tasks/network.yml
deleted file mode 100644
index 86cbf46..0000000
--- a/tasks/network.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-- name: Set up resolv.conf
- template:
- src: etc_resolv.conf.j2
- dest: /etc/resolv.conf
- owner: root
- group: wheel
- mode: "0644"
-
-# TODO: this doesn't work without rc_conf having been run
-#- name: Restart networking if interface configuration changed
-# shell: service netif restart && service routing restart
-# when: rc_conf.changed or resolv_conf.changed
-
-- name: Apply network configuration
- shell: service netif restart && service routing restart
- when: rc_conf.changed
-
-- name: Set up sshd
- template:
- src: etc_ssh_sshd_config.j2
- dest: /etc/ssh/sshd_config
- owner: root
- group: wheel
- mode: "0644"
- register: etc_sshd_config
-
-- name: Start sshd
- service:
- name: sshd
- state: started
- register: started_sshd
-
-- name: Restart sshd
- service:
- name: sshd
- state: restarted
- when: not started_sshd.changed and etc_sshd_config.changed
-
-- name: Start syslogd
- service:
- name: syslogd
- state: started
- register: started_syslogd
-#- name: Restart syslogd
-# service:
-# name: syslogd
-# state: restarted
-# when: not started_syslogd.changed and rc_conf.changed
diff --git a/tasks/pkg_jail_install.yml b/tasks/pkg_jail_install.yml
deleted file mode 100644
index 0315a03..0000000
--- a/tasks/pkg_jail_install.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-- name: Check if {{ item.package }} is installed
- shell: pkg -j {{ item.jail }} info {{ item.package }}
- register: pkg_jail_installed
- changed_when: false
- failed_when: false
-
-- name: Install {{ item.package }}
- shell: pkg -j {{ item.jail }} install -y {{ item.package }}
- when: pkg_jail_installed.rc != 0
diff --git a/tasks/zfs.yml b/tasks/zfs.yml
deleted file mode 100644
index 59495dc..0000000
--- a/tasks/zfs.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-- name: Ensure /usr/local/etc/rc.d/ exists
- file:
- path: /usr/local/etc/rc.d/
- state: directory
- owner: root
- group: wheel
- mode: "0755"
-
-- name: Add zpool_gpt_labels rc.d service
- template:
- src: usr_local_etc_rc.d_zpool_gpt_labels.j2
- dest: /usr/local/etc/rc.d/zpool_gpt_labels
- owner: root
- group: wheel
- mode: "0755"
- register: rc_zpool_gpt_labels
-
-- name: Run zpool_gpt_labels
- service:
- name: zpool_gpt_labels
- state: started
- when: rc_zpool_gpt_labels.changed
-
-- name: Install smartd
- package:
- name: smartmontools
- state: present
-
-- name: Configure smartd.conf
- template:
- src: usr_local_etc_smartd.conf.j2
- dest: /usr/local/etc/smartd.conf
- owner: root
- group: wheel
- mode: "0644"
- register: smartd_conf
-
-- name: Start smartd
- service:
- name: smartd
- state: started
- register: started_smartd
-
-- name: Restart smartd
- service:
- name: smartd
- state: restarted
- when: not started_smartd.changed and smartd_conf.changed