Загрузка данных


---
- name: Install Obsidian from shared NFS
  hosts: all
  become: true

  vars:
    # Файл на общей NFS-шаре
    obsidian_source: "/nfs/Obsidian.AppImage"

    # Куда устанавливаем Obsidian локально
    obsidian_dir: "/opt/obsidian"
    obsidian_dest: "/opt/obsidian/Obsidian.AppImage"

  tasks:

    - name: Check Obsidian exists on NFS
      ansible.builtin.stat:
        path: "{{ obsidian_source }}"
      register: obsidian_file

    - name: Fail if AppImage missing
      ansible.builtin.fail:
        msg: "Obsidian AppImage not found: {{ obsidian_source }}"
      when: not obsidian_file.stat.exists

    - name: Create Obsidian directory
      ansible.builtin.file:
        path: "{{ obsidian_dir }}"
        state: directory
        owner: root
        group: root
        mode: "0755"

    - name: Copy Obsidian AppImage from NFS
      ansible.builtin.copy:
        src: "{{ obsidian_source }}"
        dest: "{{ obsidian_dest }}"
        remote_src: true
        owner: root
        group: root
        mode: "0755"

    - name: Create system command
      ansible.builtin.file:
        src: "{{ obsidian_dest }}"
        dest: /usr/local/bin/obsidian
        state: link
        force: true

    - name: Create desktop launcher
      ansible.builtin.copy:
        dest: /usr/share/applications/obsidian.desktop
        owner: root
        group: root
        mode: "0644"
        content: |
          [Desktop Entry]
          Name=Obsidian
          Comment=Markdown knowledge base
          Exec=/usr/local/bin/obsidian
          Terminal=false
          Type=Application
          Categories=Office;
          StartupWMClass=obsidian