Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eosdetroit/bp-playbook
A set of playbooks to make managing EOS.IO nodes easier.
https://github.com/eosdetroit/bp-playbook
Last synced: about 1 month ago
JSON representation
A set of playbooks to make managing EOS.IO nodes easier.
- Host: GitHub
- URL: https://github.com/eosdetroit/bp-playbook
- Owner: eosdetroit
- Created: 2018-05-11T14:26:38.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-06-02T00:58:49.000Z (over 6 years ago)
- Last Synced: 2024-05-27T22:32:19.367Z (7 months ago)
- Language: Shell
- Size: 28.3 KB
- Stars: 7
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-eos-security - BP Playbook - This playbook is designed to make remote management of EOS nodes a breeze (EOS Smart Contract Development / Node Tools)
- awesome-EOS - BP Playbook - Ansible playbook to dynamically deploy Dockerized nodeos. (Tools / Node Tools)
- awesome-eosio - eosdetroit/bp-playbook - A set of playbooks to make managing EOS.IO nodes easier. (Developers / Block Producer tools)
README
# 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
```2) 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
```3) Encrypt your vault file with a high entropy passphrase.
```
ansible-vault encrypt group_vars/dev/vault.yml
```4) Save your vault passphrase somewhere safe like a password manager.
5) Run the deploy_bp.yml playbook.
- --ask-vault-pass [prompts for vault password]
- -i INVENTORY_FILE [defines inventory of servers]
- -e EXTRAS [override any playbook vars by passing space delimited key=value]
- --key-file [required if using ssh key authentication]```
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)
- host_data_dir [defaults to: /data] the volume to be mounted on the host system.
- eosio_container_data_dir [defaults to: /opt/eosio/bin/data-dir] the data directory to be mounted on the container. Contains config.ini and genesis.json.
- container_http_port [defaults to: 8888] The port to expose to the host system for http requests.
- container_p2p_port [defaults to: 9876] The port to expose to the host system for p2p requests.
- docker_hub_image [defaults to: eosio/eos] The docker image to use for the container.
- image_tag [defaults to: dawn-v4.0.0] The docker image tag or version to use.
- eosio_network_name [defaults to: hacktildawn] A nickname for the network. Used to retrieve the appropriate genesis.json file.
- agent_name [defaults to: EOS Detroit] A nickname for your nodeos.
- producer_name [defaults to: eosiodetroit] The name of your producer account.
- p2p_server_address [defaults to: hacktildawn.eosdetroit.com] The domain name for your node p2p connection. Should be kept secret on main nets.
- domain_name [defaults to: hacktildawn.eosdetroit.com] The domain name for your https connection (API node).
- letsencrypt_email [defaults to: [email protected]] The email address to use for letsencrypt.
- p2p_peers [] A list of peers to connect to.## TODO
- Allow a node "type" to be specified (producer, api, storage, etc.)