From 50b2fc08c70f284ff188a40cda0b80fe934f8745 Mon Sep 17 00:00:00 2001 From: Asara Date: Thu, 7 Jan 2021 20:02:04 -0500 Subject: [PATCH] Add base for lnd --- ansible/playbooks/lnd.yml | 7 +++ ansible/playbooks/site.yml | 1 + ansible/roles/bitcoind/files/bitcoind.service | 17 ++++++ ansible/roles/bitcoind/handlers/main.yml | 5 ++ ansible/roles/bitcoind/tasks/main.yml | 53 +++++++++++++++++++ ansible/roles/lnd/defaults/main.yml | 3 ++ ansible/roles/lnd/tasks/main.yml | 30 +++++++++++ ansible/roles/tor/tasks/main.yml | 11 ++++ 8 files changed, 127 insertions(+) create mode 100644 ansible/playbooks/lnd.yml create mode 100644 ansible/roles/bitcoind/files/bitcoind.service create mode 100644 ansible/roles/bitcoind/handlers/main.yml create mode 100644 ansible/roles/bitcoind/tasks/main.yml create mode 100644 ansible/roles/lnd/defaults/main.yml create mode 100644 ansible/roles/lnd/tasks/main.yml create mode 100644 ansible/roles/tor/tasks/main.yml diff --git a/ansible/playbooks/lnd.yml b/ansible/playbooks/lnd.yml new file mode 100644 index 0000000..347216c --- /dev/null +++ b/ansible/playbooks/lnd.yml @@ -0,0 +1,7 @@ +--- +- hosts: lnd + roles: + - role: tor + - role: bitcoind + - role: lnd +... diff --git a/ansible/playbooks/site.yml b/ansible/playbooks/site.yml index 31da08a..4237fb4 100644 --- a/ansible/playbooks/site.yml +++ b/ansible/playbooks/site.yml @@ -5,4 +5,5 @@ - import_playbook: consul-client.yml - import_playbook: nomad.yml - import_playbook: nexus.yml +- import_playbook: lnd.yml ... diff --git a/ansible/roles/bitcoind/files/bitcoind.service b/ansible/roles/bitcoind/files/bitcoind.service new file mode 100644 index 0000000..b5d694c --- /dev/null +++ b/ansible/roles/bitcoind/files/bitcoind.service @@ -0,0 +1,17 @@ +[Unit] +Description=Bitcoin daemon + +[Service] +ExecStartPre=/bin/sh -c 'sleep 30' +ExecStart=/usr/bin/bitcoind -daemon -conf=/home/bitcoind/.bitcoin/bitcoin.conf -pid=/home/bitcoind/.bitcoin/bitcoind.pid +PIDFile=/home/bitcoind/.bitcoin/bitcoind.pid +User=bitcoind +Group=bitcoind +Type=forking +KillMode=process +Restart=always +TimeoutSec=120 +RestartSec=30 + +[Install] +WantedBy=multi-user.target diff --git a/ansible/roles/bitcoind/handlers/main.yml b/ansible/roles/bitcoind/handlers/main.yml new file mode 100644 index 0000000..1ebcbfb --- /dev/null +++ b/ansible/roles/bitcoind/handlers/main.yml @@ -0,0 +1,5 @@ +--- +- name: reload systemd + systemd: + daemon_reload: True +... diff --git a/ansible/roles/bitcoind/tasks/main.yml b/ansible/roles/bitcoind/tasks/main.yml new file mode 100644 index 0000000..01ef527 --- /dev/null +++ b/ansible/roles/bitcoind/tasks/main.yml @@ -0,0 +1,53 @@ +--- +- name: create bitcoind group + group: + name: bitcoind + state: present + +- name: create bitcoind user + user: + name: bitcoind + group: bitcoind + state: present + shell: /bin/bash + home: /home/bitcoind + +- name: ensure bitcoind config directory exists + file: + path: /home/bitcoind/.bitcoin + state: directory + owner: bitcoind + group: bitcoind + mode: '0750' + +- name: ensure bitcoind mount exists + mount: + path: /home/bitcoind/.bitcoin + src: /dev/sda1 + fstype: ext4 + opts: defaults + state: present + +- name: install bitcoind + apt: + name: bitcoind + state: present + +- name: ensure bitcoind service file exists + copy: + src: files/bitcoind.service + dest: /etc/systemd/system/bitcoind.service + mode: 0755 + owner: root + group: root + notify: reload systemd + +- name: flush handlers for systemd reloading + meta: flush_handlers + +- name: ensure bitcoind is enabled and started + systemd: + name: bitcoind + state: started + enabled: True +... diff --git a/ansible/roles/lnd/defaults/main.yml b/ansible/roles/lnd/defaults/main.yml new file mode 100644 index 0000000..ea21499 --- /dev/null +++ b/ansible/roles/lnd/defaults/main.yml @@ -0,0 +1,3 @@ +--- +lnd_arch: amd64 +... diff --git a/ansible/roles/lnd/tasks/main.yml b/ansible/roles/lnd/tasks/main.yml new file mode 100644 index 0000000..5d9e905 --- /dev/null +++ b/ansible/roles/lnd/tasks/main.yml @@ -0,0 +1,30 @@ +--- +- name: ensure go/bin dir exists for bitcoind user + file: + path: /home/bitcoind/go/bin + state: directory + owner: bitcoind + group: bitcoind + mode: 0750 + +- name: check if lnd is installed + stat: + path: /home/bitcoind/go/bin/lnd + register: lnd_binary + +- name: check lnd version + shell: /home/bitcoind/go/bin/lnd --version | cut -d ' ' -f3 + when: lnd_binary.stat.exists + changed_when: False + register: lnd_installed_version + +- name: update lnd + unarchive: + src: 'https://github.com/lightningnetwork/lnd/releases/download/{{ lnd_version }}/lnd-linux-{{ lnd_arch }}-{{ lnd_version }}.tar.gz' + dest: /home/bitcoind/go/bin/ + owner: bitcoind + group: bitcoind + remote_src: True + extra_opts: [--strip-components=1] + when: (lnd_binary.stat.exists == False) or (lnd_version != lnd_installed_version) +... diff --git a/ansible/roles/tor/tasks/main.yml b/ansible/roles/tor/tasks/main.yml new file mode 100644 index 0000000..c95082a --- /dev/null +++ b/ansible/roles/tor/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- name: ensure tor exists + apt: + name: tor + state: present + +- name: ensure tor is started and enabled + systemd: + name: tor + state: started + enabled: True