--- - name: Install phoenixd runtime dependencies apt: name: - unzip - curl state: present update_cache: yes # System User and Directories - name: Create phoenixd system group group: name: "{{ phoenixd_group }}" system: yes - name: Create phoenixd system user user: name: "{{ phoenixd_user }}" group: "{{ phoenixd_group }}" system: yes shell: /usr/sbin/nologin home: "{{ phoenixd_home }}" create_home: yes comment: "phoenixd Lightning node" - name: Create phoenixd home directory file: path: "{{ phoenixd_home }}" state: directory owner: "{{ phoenixd_user }}" group: "{{ phoenixd_group }}" mode: "0750" - name: Create phoenixd data directory file: path: "{{ phoenixd_data_dir }}" state: directory owner: "{{ phoenixd_user }}" group: "{{ phoenixd_group }}" mode: "0700" # Download and Install - name: Check if phoenixd is already installed stat: path: "{{ phoenixd_bin_dir }}/phoenixd" register: phoenixd_binary - name: Check installed phoenixd version command: "{{ phoenixd_bin_dir }}/phoenixd --version" register: phoenixd_installed_version changed_when: false failed_when: false when: phoenixd_binary.stat.exists - name: Decide whether phoenixd needs installing set_fact: phoenixd_needs_install: >- {{ not phoenixd_binary.stat.exists or phoenixd_version not in (phoenixd_installed_version.stdout | default('')) }} - name: Download phoenixd {{ phoenixd_version }} get_url: url: "{{ phoenixd_url }}" dest: "/tmp/phoenixd-{{ phoenixd_version }}.zip" mode: "0644" when: phoenixd_needs_install | bool - name: Create temporary extraction directory file: path: /tmp/phoenixd-extract state: directory mode: "0755" when: phoenixd_needs_install | bool - name: Extract phoenixd archive unarchive: src: "/tmp/phoenixd-{{ phoenixd_version }}.zip" dest: /tmp/phoenixd-extract remote_src: yes when: phoenixd_needs_install | bool - name: Locate extracted binaries find: paths: /tmp/phoenixd-extract patterns: "{{ item }}" recurse: yes file_type: file register: phoenixd_extracted loop: - phoenixd - phoenix-cli when: phoenixd_needs_install | bool - name: Fail if the archive did not contain the expected binaries assert: that: - item.files | length > 0 fail_msg: "Could not find '{{ item.item }}' in the phoenixd {{ phoenixd_version }} archive" loop: "{{ phoenixd_extracted.results }}" loop_control: label: "{{ item.item }}" when: phoenixd_needs_install | bool - name: Install phoenixd and phoenix-cli binaries copy: src: "{{ item.files[0].path }}" dest: "{{ phoenixd_bin_dir }}/{{ item.item }}" remote_src: yes owner: root group: root mode: "0755" loop: "{{ phoenixd_extracted.results }}" loop_control: label: "{{ item.item }}" when: phoenixd_needs_install | bool notify: Restart phoenixd - name: Clean up phoenixd download artifacts file: path: "{{ item }}" state: absent loop: - "/tmp/phoenixd-{{ phoenixd_version }}.zip" - /tmp/phoenixd-extract