126 lines
3.1 KiB
YAML
126 lines
3.1 KiB
YAML
|
|
---
|
||
|
|
- 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
|
||
|
|
|