bitb0x/roles/apps/tasks/bitcoin.yml

121 lines
3.7 KiB
YAML

---
# tasks file for build
#
- name: bitcoin - Check rpcauth
block:
- name: Generate rpcauth information if unset
register: rpcauth_raw
local_action:
module: ansible.builtin.shell
cmd: python roles/apps/files/bitcoin/rpcauth.py -json {{ansible_hostname}}
- name: bitcoin - Parse raw rpcauth info into json
local_action:
module: ansible.builtin.set_fact
rpcauth_json: "{{ rpcauth_raw.stdout | from_json }}"
- name: bitcoin - Write json values (user) to host inventory file
local_action:
module: ansible.builtin.lineinfile
path: hosts
search_string: "bitcoin_rpcuser="
line: "bitcoin_rpcuser={{rpcauth_json.username}}"
insertafter: "^[{{ansible_hostname}}:vars]"
- name: bitcoin - Write json values (password) to host inventory file
local_action:
module: ansible.builtin.lineinfile
path: hosts
search_string: "bitcoin_rpcpassword="
line: "bitcoin_rpcpassword={{rpcauth_json.password}}"
insertafter: "^[{{ansible_hostname}}:vars]"
- name: bitcoin - Write json values (auth) to host inventory file
local_action:
module: ansible.builtin.lineinfile
path: hosts
search_string: "bitcoin_rpcauth="
line: "bitcoin_rpcauth={{rpcauth_json.rpcauth}}"
insertafter: "^[{{ansible_hostname}}:vars]"
- name: bitcoin - Reset local rpc user/auth facts if they changed
ansible.builtin.set_fact:
bitcoin_rpcuser: "{{rpcauth_json.username}}"
bitcoin_rpcpassword: "{{ rpcauth_json.password }}"
bitcoin_rpcauth: "{{ rpcauth_json.rpcauth}}"
when: ((bitcoin_rpcuser is defined) and (bitcoin_rpcuser|length==0)) or ((bitcoin_rpcpassword is defined) and (bitcoin_rpcpassword|length==0)) or ((bitcoin_rpcauth is defined) and (bitcoin_rpcauth|length==0))
- name: bitcoin - Create bitcoin-pod
containers.podman.podman_pod:
name: bitcoin-pod
state: started
ports:
- "50001:50001"
- "4224:4224"
- "127.0.0.1:8332:8332"
- "8333:8333"
- "9735:9735"
- name: bitcoin - Create bitcoin data / conf directory
ansible.builtin.file:
path: ~/.bitcoin
state: directory
mode: '0755'
- name: bitcoin - Create .config/containers/systemd directory
ansible.builtin.file:
path: ~/config/containers/systemd
state: directory
- name: bitcoin - Copy bitcoin-node.container file
ansible.builtin.template:
src: bitcoin/bitcoin-node.container.j2
dest: /home/{{ ansible_user }}/.config/containers/systemd/bitcoin-node.container
notify:
- reload_systemctl
- restart_bitcoin
- name: bitcoin - Create Containers/bitcoin Dir
ansible.builtin.file:
path: ~/Containers/bitcoin/bin
recurse: true
state: directory
notify: rebuild_bitcoin
- name: bitcoin - Copy Containerfile Template
ansible.builtin.copy:
src: bitcoin/Containerfile
dest: ~/Containers/bitcoin/Containerfile
notify: rebuild_bitcoin
- name: bitcoin - Copy entrypoint.sh
ansible.builtin.copy:
src: bitcoin/entrypoint.sh
dest: ~/Containers/bitcoin/entrypoint.sh
notify: rebuild_bitcoin
- name: bitcoin - Copy btc_init
ansible.builtin.copy:
src: bitcoin/bin/btc_init
dest: ~/Containers/bitcoin/bin/btc_init
notify: rebuild_bitcoin
- name: bitcoin - Copy btc_oneshot
ansible.builtin.template:
src: bitcoin/bin/btc_oneshot.j2
dest: ~/Containers/bitcoin/bin/btc_oneshot
notify: rebuild_bitcoin
- name: bitcoin - Copy build script
ansible.builtin.template:
src: bitcoin/build.sh.j2
dest: ~/Containers/bitcoin/build.sh
mode: '0700'
notify: rebuild_bitcoin
- name: bitcoin - copy rpcauth.py utility
ansible.builtin.copy:
src: bitcoin/rpcauth.py
dest: ~/Containers/bitcoin/rpcauth.py
mode: '0700'