2024-09-18 22:53:33 +02:00
|
|
|
---
|
2024-09-19 13:48:10 +02:00
|
|
|
- hosts: call
|
2024-09-18 22:53:33 +02:00
|
|
|
become: yes
|
|
|
|
|
|
|
|
tasks:
|
|
|
|
- name: Add NodeSource repository for Node.js 18.x
|
|
|
|
apt_key:
|
|
|
|
url: "https://deb.nodesource.com/gpgkey/nodesource.gpg.key"
|
|
|
|
state: present
|
|
|
|
|
|
|
|
- name: Add NodeSource repo to sources list
|
|
|
|
apt_repository:
|
|
|
|
repo: "deb https://deb.nodesource.com/node_18.x {{ ansible_distribution_release }} main"
|
|
|
|
state: present
|
|
|
|
update_cache: yes
|
|
|
|
|
|
|
|
- name: Pin Node.js to the NodeSource repository
|
|
|
|
copy:
|
|
|
|
dest: /etc/apt/preferences.d/nodesource.pref
|
|
|
|
content: |
|
|
|
|
Package: nodejs
|
|
|
|
Pin: origin deb.nodesource.com
|
|
|
|
Pin-Priority: 1001
|
|
|
|
|
|
|
|
- name: Install Node.js v18
|
|
|
|
apt:
|
|
|
|
name: nodejs
|
|
|
|
state: present
|
|
|
|
|
|
|
|
- name: Install pnpm globally using npm
|
|
|
|
npm:
|
|
|
|
name: pnpm
|
|
|
|
global: yes
|
|
|
|
state: present
|
|
|
|
|
2024-09-20 15:15:36 +02:00
|
|
|
- name: Update apt cache and install Git, unclutter, scrot
|
2024-09-18 22:53:33 +02:00
|
|
|
apt:
|
2024-09-18 22:59:26 +02:00
|
|
|
name: "{{ item }}"
|
2024-09-18 22:53:33 +02:00
|
|
|
state: present
|
|
|
|
update_cache: yes
|
2024-09-18 22:59:26 +02:00
|
|
|
loop:
|
|
|
|
- git
|
|
|
|
- unclutter
|
2024-09-20 15:15:36 +02:00
|
|
|
- scrot
|
|
|
|
|
|
|
|
- name: Make sure ~/screenshots exists
|
|
|
|
file:
|
|
|
|
name: "/home/{{ ansible_user }}/screenshots"
|
|
|
|
state: directory
|
|
|
|
owner: "{{ ansible_user }}"
|
|
|
|
group: "{{ ansible_user }}"
|
|
|
|
mode: "0755"
|
2024-09-18 22:53:33 +02:00
|
|
|
|
|
|
|
- name: Clone Git repository
|
|
|
|
become: yes
|
|
|
|
become_user: "{{ ansible_user }}"
|
|
|
|
git:
|
|
|
|
repo: "https://git.thm.place/thm/parsifal.git"
|
|
|
|
dest: "/home/{{ ansible_user }}/parsifal"
|
|
|
|
version: "main"
|
|
|
|
|
|
|
|
- name: Create the systemd user directory if it doesn't exist
|
|
|
|
file:
|
|
|
|
path: "/home/{{ ansible_user }}/.config/systemd/user"
|
|
|
|
state: directory
|
|
|
|
owner: "{{ ansible_user }}"
|
|
|
|
mode: "0755"
|
|
|
|
|
2024-09-19 14:24:42 +02:00
|
|
|
- name: Symlink all service files
|
2024-09-18 22:53:33 +02:00
|
|
|
file:
|
2024-09-19 14:24:42 +02:00
|
|
|
src: "/home/{{ ansible_user }}/parsifal/{{ item }}"
|
|
|
|
dest: "/home/{{ ansible_user }}/.config/systemd/user/{{ item }}"
|
2024-09-18 22:53:33 +02:00
|
|
|
state: link
|
2024-09-19 14:24:42 +02:00
|
|
|
loop:
|
|
|
|
- parsifal.service
|
|
|
|
- unclutter.service
|
2024-09-19 14:57:21 +02:00
|
|
|
# - x11vnc.service
|
2024-09-20 15:15:36 +02:00
|
|
|
- screenshot.service
|
|
|
|
- screenshot.timer
|
2024-09-18 22:53:33 +02:00
|
|
|
|
2024-09-19 14:24:42 +02:00
|
|
|
- name: Reload systemd user service
|
2024-09-18 22:57:02 +02:00
|
|
|
become: yes
|
|
|
|
become_user: "{{ ansible_user }}"
|
2024-09-19 14:24:42 +02:00
|
|
|
systemd:
|
|
|
|
daemon_reload: yes
|
|
|
|
scope: user
|
2024-09-18 23:15:46 +02:00
|
|
|
|
2024-09-19 14:24:42 +02:00
|
|
|
- name: Enable and start all services
|
2024-09-18 23:15:46 +02:00
|
|
|
become: yes
|
|
|
|
become_user: "{{ ansible_user }}"
|
2024-09-19 14:24:42 +02:00
|
|
|
systemd:
|
|
|
|
name: "{{ item }}"
|
|
|
|
enabled: yes
|
|
|
|
state: started
|
|
|
|
scope: user
|
|
|
|
loop:
|
|
|
|
- parsifal
|
|
|
|
- unclutter
|
2024-09-19 14:57:21 +02:00
|
|
|
# - x11vnc
|
2024-09-20 15:15:36 +02:00
|
|
|
- screenshot.timer
|