mirror of
https://github.com/fscotto/infra.git
synced 2026-05-30 15:39:58 +00:00
Add turnstile Emacs service and stable ssh-agent
This commit is contained in:
@@ -311,6 +311,10 @@
|
||||
loop:
|
||||
- path: "{{ user_home }}/.local"
|
||||
mode: "0755"
|
||||
- path: "{{ user_home }}/.local/state"
|
||||
mode: "0755"
|
||||
- path: "{{ user_home }}/.local/state/ssh-agent"
|
||||
mode: "0700"
|
||||
- path: "{{ user_home }}/.local/share"
|
||||
mode: "0755"
|
||||
- path: "{{ user_home }}/.local/share/keyrings"
|
||||
|
||||
@@ -14,3 +14,68 @@
|
||||
dest: "/var/service/{{ item }}"
|
||||
state: link
|
||||
loop: "{{ host_enabled_services | default([]) }}"
|
||||
|
||||
- name: Ensure per-user runit directories exist
|
||||
tags: [services, packages]
|
||||
ansible.builtin.file:
|
||||
path: "{{ item.path }}"
|
||||
state: directory
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
mode: "{{ item.mode }}"
|
||||
loop:
|
||||
- path: "{{ user_home }}/.local/runit"
|
||||
mode: "0755"
|
||||
- path: "{{ user_home }}/.local/runit/current"
|
||||
mode: "0755"
|
||||
- path: "{{ user_home }}/.local/runit/sv"
|
||||
mode: "0755"
|
||||
- path: "{{ user_home }}/.local/runit/sv/ssh-agent"
|
||||
mode: "0755"
|
||||
- path: "{{ user_home }}/.local/state"
|
||||
mode: "0755"
|
||||
- path: "{{ user_home }}/.local/state/ssh-agent"
|
||||
mode: "0700"
|
||||
|
||||
- name: Render per-user ssh-agent runit service
|
||||
tags: [services, packages]
|
||||
ansible.builtin.template:
|
||||
src: ssh-agent.run.j2
|
||||
dest: "{{ user_home }}/.local/runit/sv/ssh-agent/run"
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
mode: "0755"
|
||||
|
||||
- name: Enable per-user ssh-agent runit service
|
||||
tags: [services, packages]
|
||||
ansible.builtin.file:
|
||||
src: "../sv/ssh-agent"
|
||||
dest: "{{ user_home }}/.local/runit/current/ssh-agent"
|
||||
state: link
|
||||
owner: "{{ username }}"
|
||||
group: "{{ user_group }}"
|
||||
|
||||
- name: Ensure per-user runsvdir service directory exists
|
||||
tags: [services, packages]
|
||||
ansible.builtin.file:
|
||||
path: "/etc/sv/runsvdir-{{ username }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Render per-user runsvdir system service
|
||||
tags: [services, packages]
|
||||
ansible.builtin.template:
|
||||
src: runsvdir-user.run.j2
|
||||
dest: "/etc/sv/runsvdir-{{ username }}/run"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0755"
|
||||
|
||||
- name: Enable per-user runsvdir system service
|
||||
tags: [services, packages]
|
||||
ansible.builtin.file:
|
||||
src: "/etc/sv/runsvdir-{{ username }}"
|
||||
dest: "/var/service/runsvdir-{{ username }}"
|
||||
state: link
|
||||
|
||||
11
ansible/roles/services_runit/templates/runsvdir-user.run.j2
Normal file
11
ansible/roles/services_runit/templates/runsvdir-user.run.j2
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
export USER="{{ username }}"
|
||||
export HOME="{{ user_home }}"
|
||||
|
||||
groups="$(id -Gn "$USER" | tr ' ' ':')"
|
||||
svdir="$HOME/.local/runit/current"
|
||||
|
||||
exec chpst -u "$USER:$groups" runsvdir "$svdir"
|
||||
11
ansible/roles/services_runit/templates/ssh-agent.run.j2
Normal file
11
ansible/roles/services_runit/templates/ssh-agent.run.j2
Normal file
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
sockdir="{{ user_home }}/.local/state/ssh-agent"
|
||||
sockpath="$sockdir/socket"
|
||||
|
||||
mkdir -p "$sockdir"
|
||||
rm -f "$sockpath"
|
||||
|
||||
exec ssh-agent -D -a "$sockpath"
|
||||
Reference in New Issue
Block a user