Home

Awesome

Block Producer Ansible Playbook

This playbook is designed to make remote management of EOS nodes a breeze.

Currently deploy_bp.yml will install system dependencies, create a docker container running nodeos, and put an nginx TLS reverse proxy in front of it.

Tested using Ansible 2.3.2.0 deploying to Ubuntu 16.04.

Pre-reqs

  1. Ansible >=2.3.2
  2. An Ubuntu install you can access over the internet (VM, VPS, etc).

To Use

  1. Define an inventory e.g. "dev.nodes". (NOTE: your inventory group "dev" must match /group_vars/dev/)
[dev]
hacktildawn ansible_host=19.210.57.102 ansible_connection=ssh ansible_user=ubuntu
  1. Create group_vars/dev/vault.yml and put secrets (e.g. producer keypair) into it. (NOTE: This example vault file has throwaway keys. Always encrypt and never put your vault in version control.)
---
vault_public_block_signing_key: EOS5EYm5qF42P9nvGi6Hej7ouDtEz2WRwxvgbSWE1RZM6kCbGryac
vault_private_block_signing_key: 5HyUavRk3QLcD2uyjNpzQpS4DaZgyVHgm7pwiUoBxQDUBowZsXM
  1. Encrypt your vault file with a high entropy passphrase.
ansible-vault encrypt group_vars/dev/vault.yml
  1. Save your vault passphrase somewhere safe like a password manager.

  2. Run the deploy_bp.yml playbook.

ansible-playbook --ask-vault-pass -vvv -i dev.nodes -e "target=hacktildawn" --key-file ~/.ssh/hacktildawn.pem deploy_bp.yml

Playbook vars (Can be passed to -e)

TODO