aboutsummaryrefslogtreecommitdiffstats
path: root/tasks
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2025-10-11 17:47:46 +0300
committerJan Tuomi <jan@jantuomi.fi>2025-10-11 17:47:46 +0300
commitdbfa9c70b0480c209678090bf62f2c72d68f5264 (patch)
treea2eac68286fab97f274c2deb09ff42c3802e945e /tasks
parent3117429d1eb122382e78e6cb27a07dd878f7c0e9 (diff)
Split jail.conf to jail.conf.d/
Diffstat (limited to 'tasks')
-rw-r--r--tasks/jail_homepage.yml52
-rw-r--r--tasks/jails_single.yml8
2 files changed, 60 insertions, 0 deletions
diff --git a/tasks/jail_homepage.yml b/tasks/jail_homepage.yml
new file mode 100644
index 0000000..161d02c
--- /dev/null
+++ b/tasks/jail_homepage.yml
@@ -0,0 +1,52 @@
+- 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: 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 homepage nginx enable
+ service -j homepage nginx onestart
+ when: homepage_nginx_enabled.rc != 0
+
+- 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/jails_single.yml b/tasks/jails_single.yml
index 9d539d0..043086d 100644
--- a/tasks/jails_single.yml
+++ b/tasks/jails_single.yml
@@ -11,6 +11,14 @@
- name: Make resolv.conf immutable
shell: chflags schg /usr/local/jails/containers/{{ jail.name }}/etc/resolv.conf
+- 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