Add Vicinae installation and assets Ansible task
Include Vicinae setup in workstation playbook for non-WSL2 systems Update flake.lock to newer nixpkgs revision
This commit is contained in:
175
ansible/tasks/workstations/vicinae.yml
Normal file
175
ansible/tasks/workstations/vicinae.yml
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
---
|
||||||
|
- name: Install Vicinae
|
||||||
|
block:
|
||||||
|
- name: Set Vicinae version
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
vicinae_version: "v0.15.6"
|
||||||
|
vicinae_appimage_commit: "13865b4c5"
|
||||||
|
|
||||||
|
- name: Set architecture-specific variables
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
vicinae_arch: "{{ 'x86_64' if ansible_architecture == 'x86_64' else ansible_architecture }}"
|
||||||
|
|
||||||
|
- name: Ensure /opt/vicinae directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/opt/vicinae"
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Download Vicinae AppImage
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: "https://github.com/vicinaehq/vicinae/releases/download/{{ vicinae_version }}/Vicinae-{{ vicinae_appimage_commit }}-{{ vicinae_arch }}.AppImage"
|
||||||
|
dest: "/opt/vicinae/vicinae.AppImage"
|
||||||
|
mode: "0755"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Remove old Vicinae binary if exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/usr/local/bin/vicinae"
|
||||||
|
state: absent
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create symlink to Vicinae AppImage
|
||||||
|
ansible.builtin.file:
|
||||||
|
src: "/opt/vicinae/vicinae.AppImage"
|
||||||
|
dest: "/usr/local/bin/vicinae"
|
||||||
|
state: link
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create temporary directory for Vicinae assets download
|
||||||
|
ansible.builtin.tempfile:
|
||||||
|
state: directory
|
||||||
|
suffix: vicinae
|
||||||
|
register: vicinae_temp_dir
|
||||||
|
|
||||||
|
- name: Download Vicinae tarball for assets
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: "https://github.com/vicinaehq/vicinae/releases/download/{{ vicinae_version }}/vicinae-linux-{{ vicinae_arch }}-{{ vicinae_version }}.tar.gz"
|
||||||
|
dest: "{{ vicinae_temp_dir.path }}/vicinae.tar.gz"
|
||||||
|
mode: "0644"
|
||||||
|
|
||||||
|
- name: Extract Vicinae tarball
|
||||||
|
ansible.builtin.unarchive:
|
||||||
|
src: "{{ vicinae_temp_dir.path }}/vicinae.tar.gz"
|
||||||
|
dest: "{{ vicinae_temp_dir.path }}"
|
||||||
|
remote_src: true
|
||||||
|
|
||||||
|
- name: Ensure systemd user directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/usr/lib/systemd/user"
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Copy systemd user service
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "{{ vicinae_temp_dir.path }}/lib/systemd/user/vicinae.service"
|
||||||
|
dest: "/usr/lib/systemd/user/vicinae.service"
|
||||||
|
mode: "0644"
|
||||||
|
remote_src: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Update systemd service to use AppImage
|
||||||
|
ansible.builtin.replace:
|
||||||
|
path: "/usr/lib/systemd/user/vicinae.service"
|
||||||
|
regexp: "ExecStart=.*"
|
||||||
|
replace: "ExecStart=/usr/local/bin/vicinae"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Ensure applications directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/usr/share/applications"
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Copy desktop files
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "{{ vicinae_temp_dir.path }}/share/applications/{{ item }}"
|
||||||
|
dest: "/usr/share/applications/{{ item }}"
|
||||||
|
mode: "0644"
|
||||||
|
remote_src: true
|
||||||
|
become: true
|
||||||
|
loop:
|
||||||
|
- vicinae.desktop
|
||||||
|
- vicinae-url-handler.desktop
|
||||||
|
|
||||||
|
- name: Update desktop files to use AppImage
|
||||||
|
ansible.builtin.replace:
|
||||||
|
path: "/usr/share/applications/{{ item }}"
|
||||||
|
regexp: "Exec=.*vicinae"
|
||||||
|
replace: "Exec=/usr/local/bin/vicinae"
|
||||||
|
become: true
|
||||||
|
loop:
|
||||||
|
- vicinae.desktop
|
||||||
|
- vicinae-url-handler.desktop
|
||||||
|
|
||||||
|
- name: Ensure Vicinae share directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/usr/share/vicinae"
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Copy Vicinae themes directory
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "{{ vicinae_temp_dir.path }}/share/vicinae/themes/"
|
||||||
|
dest: "/usr/share/vicinae/themes/"
|
||||||
|
mode: "0644"
|
||||||
|
remote_src: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Ensure hicolor icons directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/usr/share/icons/hicolor/512x512/apps"
|
||||||
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Copy Vicinae icon
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: "{{ vicinae_temp_dir.path }}/share/icons/hicolor/512x512/apps/vicinae.png"
|
||||||
|
dest: "/usr/share/icons/hicolor/512x512/apps/vicinae.png"
|
||||||
|
mode: "0644"
|
||||||
|
remote_src: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Update desktop database
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: update-desktop-database /usr/share/applications
|
||||||
|
become: true
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Update icon cache
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: gtk-update-icon-cache /usr/share/icons/hicolor
|
||||||
|
become: true
|
||||||
|
changed_when: false
|
||||||
|
failed_when: false
|
||||||
|
|
||||||
|
- name: Clean up temporary directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ vicinae_temp_dir.path }}"
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Verify Vicinae installation
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: /usr/local/bin/vicinae --version
|
||||||
|
register: vicinae_version_check
|
||||||
|
changed_when: false
|
||||||
|
failed_when: false
|
||||||
|
|
||||||
|
- name: Display installation result
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: |
|
||||||
|
{% if vicinae_version_check.rc == 0 %}
|
||||||
|
✓ Vicinae AppImage installed successfully with all themes and assets!
|
||||||
|
Version: {{ vicinae_version_check.stdout }}
|
||||||
|
{% else %}
|
||||||
|
✗ Vicinae installation completed but version check failed.
|
||||||
|
This may be normal if --version flag is not supported.
|
||||||
|
Try running: vicinae
|
||||||
|
{% endif %}
|
||||||
|
tags:
|
||||||
|
- vicinae
|
||||||
@@ -42,6 +42,10 @@
|
|||||||
ansible.builtin.import_tasks: tasks/workstations/autostart.yml
|
ansible.builtin.import_tasks: tasks/workstations/autostart.yml
|
||||||
when: "'microsoft-standard-WSL2' not in ansible_kernel"
|
when: "'microsoft-standard-WSL2' not in ansible_kernel"
|
||||||
|
|
||||||
|
- name: Include Vicinae tasks
|
||||||
|
ansible.builtin.import_tasks: tasks/workstations/vicinae.yml
|
||||||
|
when: "'microsoft-standard-WSL2' not in ansible_kernel"
|
||||||
|
|
||||||
- name: Ensure workstation common packages are installed
|
- name: Ensure workstation common packages are installed
|
||||||
ansible.builtin.package:
|
ansible.builtin.package:
|
||||||
name:
|
name:
|
||||||
|
|||||||
6
flake.lock
generated
6
flake.lock
generated
@@ -41,11 +41,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760862643,
|
"lastModified": 1761016216,
|
||||||
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=",
|
"narHash": "sha256-G/iC4t/9j/52i/nm+0/4ybBmAF4hzR8CNHC75qEhjHo=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c",
|
"rev": "481cf557888e05d3128a76f14c76397b7d7cc869",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
Reference in New Issue
Block a user