aboutsummaryrefslogtreecommitdiffstats
path: root/roles/jails
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-05-16 23:42:59 +0300
committerJan Tuomi <jan@jantuomi.fi>2026-05-16 23:42:59 +0300
commit6bb3da532370cc683626dbeaebbe558d09517820 (patch)
tree16b4de43cc3adc2fa8858f4fa969dbdf362a4751 /roles/jails
parent60f363a7e2aa7ff81b0785dbf49d4c9867653337 (diff)
Add taulubot jail
Diffstat (limited to 'roles/jails')
-rw-r--r--roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge2
-rw-r--r--roles/jails/04_taulubot/defaults/main.yml9
-rw-r--r--roles/jails/04_taulubot/handlers/main.yml4
-rw-r--r--roles/jails/04_taulubot/tasks/main.yml51
-rw-r--r--roles/jails/04_taulubot/templates/usr_local_etc_rc.d_taulubot44
5 files changed, 109 insertions, 1 deletions
diff --git a/roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge b/roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge
index b01d1ed..16afd5d 100644
--- a/roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge
+++ b/roles/jails/03_irc_thelounge/templates/usr_local_etc_rc.d_thelounge
@@ -19,7 +19,7 @@ status_cmd="${name}_status"
thelounge_start()
{
echo "Starting ${name}..."
- env ${thelounge_env} daemon -p ${pidfile} /usr/local/bin/thelounge start
+ env ${thelounge_env} daemon -p ${pidfile} -o /var/log/thelounge.log /usr/local/bin/thelounge start
}
thelounge_stop()
diff --git a/roles/jails/04_taulubot/defaults/main.yml b/roles/jails/04_taulubot/defaults/main.yml
index 697ea79..5b5cac6 100644
--- a/roles/jails/04_taulubot/defaults/main.yml
+++ b/roles/jails/04_taulubot/defaults/main.yml
@@ -1 +1,10 @@
userland: "14.3-RELEASE"
+
+pkg:
+ - python311
+ - py311-pip
+ - git
+ - jpeg-turbo
+
+services:
+ - taulubot
diff --git a/roles/jails/04_taulubot/handlers/main.yml b/roles/jails/04_taulubot/handlers/main.yml
new file mode 100644
index 0000000..3c87c32
--- /dev/null
+++ b/roles/jails/04_taulubot/handlers/main.yml
@@ -0,0 +1,4 @@
+- name: Restart taulubot
+ service:
+ name: taulubot
+ state: restarted
diff --git a/roles/jails/04_taulubot/tasks/main.yml b/roles/jails/04_taulubot/tasks/main.yml
index 2abdaff..4054161 100644
--- a/roles/jails/04_taulubot/tasks/main.yml
+++ b/roles/jails/04_taulubot/tasks/main.yml
@@ -1,2 +1,53 @@
- import_role:
name: jail
+ tasks_from: jail_setup
+
+- name: Create .ssh directory
+ file:
+ path: /root/.ssh
+ state: directory
+ owner: root
+ group: wheel
+ mode: "0700"
+
+- name: Deploy SSH key for git
+ copy:
+ content: "{{ taulubot_deploy_key.private }}"
+ dest: /root/.ssh/deploy_key
+ owner: root
+ group: wheel
+ mode: "0600"
+ no_log: true
+
+- name: Clone taulubot
+ shell: |
+ GIT_SSH_COMMAND="ssh -i /root/.ssh/deploy_key -o StrictHostKeyChecking=no" git clone git@github.com:jantuomi/taulubot.git /tmp/taulubot
+ cp -a /tmp/taulubot/* /tmp/taulubot/.git /tmp/taulubot/.gitignore /usr/local/taulubot/ 2>/dev/null || true
+ rm -rf /tmp/taulubot
+ args:
+ creates: /usr/local/taulubot/.git
+
+- name: Install Python dependencies
+ shell: pip install -r /usr/local/taulubot/requirements.txt
+ args:
+ creates: /usr/local/taulubot/.deps_installed
+ register: _pip_install
+
+- name: Mark dependencies installed
+ file:
+ path: /usr/local/taulubot/.deps_installed
+ state: touch
+ when: _pip_install is changed
+
+- name: Deploy rc.d script
+ template:
+ src: "{{ jail_role_dir }}/templates/usr_local_etc_rc.d_taulubot"
+ dest: /usr/local/etc/rc.d/taulubot
+ owner: root
+ group: wheel
+ mode: "0755"
+ notify: Restart taulubot
+
+- import_role:
+ name: jail
+ tasks_from: jail_launch
diff --git a/roles/jails/04_taulubot/templates/usr_local_etc_rc.d_taulubot b/roles/jails/04_taulubot/templates/usr_local_etc_rc.d_taulubot
new file mode 100644
index 0000000..8d5fed1
--- /dev/null
+++ b/roles/jails/04_taulubot/templates/usr_local_etc_rc.d_taulubot
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# PROVIDE: taulubot
+# REQUIRE: NETWORKING
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name="taulubot"
+rcvar="taulubot_enable"
+pidfile="/var/run/${name}.pid"
+
+start_cmd="${name}_start"
+stop_cmd="${name}_stop"
+status_cmd="${name}_status"
+
+taulubot_start()
+{
+ echo "Starting ${name}..."
+ cd /usr/local/taulubot
+ daemon -p ${pidfile} -o /var/log/taulubot.log env BOT_TOKEN="{{ taulubot_token }}" /usr/local/bin/python3.11 taulubot.py
+}
+
+taulubot_stop()
+{
+ if [ -f ${pidfile} ]; then
+ echo "Stopping ${name}..."
+ kill $(cat ${pidfile}) 2>/dev/null
+ rm -f ${pidfile}
+ fi
+}
+
+taulubot_status()
+{
+ if [ -f ${pidfile} ] && kill -0 $(cat ${pidfile}) 2>/dev/null; then
+ echo "${name} is running as pid $(cat ${pidfile})"
+ else
+ echo "${name} is not running"
+ return 1
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"