Getting started

Example inventory

To manage bitcoind on a given host or set of hosts, they need to be added to the [debops_service_bitcoind] Ansible group in the inventory:

[debops_service_bitcoind]
hostname

Example playbook

If you are using this role without DebOps, here's an example Ansible playbook that uses the debops-contrib.bitcoind role:

---

- name: Setup and manage bitcoind
  hosts: [ 'debops_service_bitcoind' ]
  become: True

  environment: '{{ inventory__environment | d({})
                   | combine(inventory__group_environment | d({}))
                   | combine(inventory__host_environment  | d({})) }}'

  roles:

    - role: debops.etc_services
      tags: [ 'role::etc_services' ]
      etc_services__dependent_list:
        - '{{ bitcoind__etc_services__dependent_list }}'

    - role: debops.ferm
      tags: [ 'role::ferm' ]
      ferm__dependent_rules:
        - '{{ bitcoind__ferm__dependent_rules }}'

    - role: debops-contrib.bitcoind
      tags: [ 'role::bitcoind' ]

The playbook is shipped with this role under ./docs/playbooks/bitcoind.yml from which you can symlink it to your playbook directory. In case you use multiple DebOps Contrib roles, consider using the DebOps Contrib playbooks.

Ansible tags

You can use Ansible --tags or --skip-tags parameters to limit what tasks are performed during Ansible run. This can be used after a host was first configured to speed up playbook execution, when you are sure that most of the configuration is already in the desired state.

Available role tags:

role::bitcoind
Main role tag, should be used in the playbook to execute all of the role tasks as well as role dependencies.
role::bitcoind:pkgs
Tasks related to system package management like installing or removing packages.