From 5f192240f2a95d813e1e0d9ca2090f239ea4f0a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Wed, 18 Sep 2024 22:53:33 +0200 Subject: [PATCH] add ansible --- inventory.yml | 7 ++++ setup-autocall.yml | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 inventory.yml create mode 100644 setup-autocall.yml diff --git a/inventory.yml b/inventory.yml new file mode 100644 index 0000000..5e322ca --- /dev/null +++ b/inventory.yml @@ -0,0 +1,7 @@ +all: + hosts: + x2305: + ansible_host: 192.168.10.66 + ansible_user: x2305 + ansible_become_pass: "x2305" + ansible_become: true diff --git a/setup-autocall.yml b/setup-autocall.yml new file mode 100644 index 0000000..b2e3cc2 --- /dev/null +++ b/setup-autocall.yml @@ -0,0 +1,79 @@ +--- +- hosts: all + 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 + + - name: Update apt cache and install Git + apt: + name: git + state: present + update_cache: yes + + - 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" + + - name: Symlink parsifal.service to systemd user directory + file: + src: "/home/{{ ansible_user }}/parsifal/parsifal.service" + dest: "/home/{{ ansible_user }}/.config/systemd/user/parsifal.service" + state: link + + - name: Reload systemd for the current user + command: systemctl --user daemon-reload + become: yes + become_user: "{{ ansible_user }}" + environment: + XDG_RUNTIME_DIR: "/run/user/{{ ansible_user_uid }}" # Needed for running systemctl --user + + - name: Enable and start the systemd user service (as user) + command: systemctl --user enable --now parsifal + become: yes + become_user: "{{ ansible_user }}" + environment: + XDG_RUNTIME_DIR: "/run/user/{{ ansible_user_uid }}" # Needed for running systemctl --user + + + # - name: Reload systemd for the current user + # command: loginctl enable-linger {{ ansible_user }}