diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2026-05-16 23:42:59 +0300 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2026-05-16 23:42:59 +0300 |
| commit | 6bb3da532370cc683626dbeaebbe558d09517820 (patch) | |
| tree | 16b4de43cc3adc2fa8858f4fa969dbdf362a4751 /roles/jails | |
| parent | 60f363a7e2aa7ff81b0785dbf49d4c9867653337 (diff) | |
Add taulubot jail
Diffstat (limited to 'roles/jails')
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" |
