This playbook will install and configure and IOTA full node.
It will:
- Install and configure IOTA IRI full node
- Install and configure iota-pm: a GUI to view/manage peers
- Password protect iota-pm
- Run iota-pm and IRI as systemd controlled processes (unprivileged users)
- Configure firewalls
- NEW: Monitoring for IRI + Graphs amazing work of Chirs Holliday https://github.com/crholliday/iota-prom-exporter
For a "click-'n-go" installation see: Getting Started Quickly
For the full tutorial use the Wiki
A redhat/centos or debian/ubuntu node where you want to have the node running on.
Latest Ansible installation for your distribution (http://docs.ansible.com/ansible/latest/intro_installation.html)
Playbook was tested with:
- Ansible>=2.4
- Ubuntu 16.04
- Ubuntu 17.04
- CentOS 7.4
Please feel free to contribute.
This playbook can be installed locally or on a remote host (given you have SSH access to it)
If you want to install to a remote host, edit the inventory
and set the name and IP accordingly (i.e. hostname FQDN)
In groups_vars/all/*.yml
you will find files with some configuration options and comments.
Important value to edit is the iotapm_nginx_password
in the group_vars/all/iotapm.yml
. Set a strong password.
To edit the password and/or add more users refer to the wiki link up in this README doc.
Edit other options if you want to tweak anything (most importantly check the latest IRI version and edit accordingly).
Simply run:
ansible-playbook -i inventory -v site.yml
You can install a specific role (or skip) by using:
--tags=first-role-name,second-role-name or --skip-tags=rolename,etc
For example, to skip the monitoring role:
ansible-playbook -i inventory -v site.yml --skip-tags=monitoring_role
To find available roles run grep "\- .*_role$" roles/*/tasks/main.yml
:
# grep "\- .*_role$" roles/*/tasks/main.yml
roles/iotapm/tasks/main.yml: - iotapm_role
roles/iri/tasks/main.yml: - iri_role
roles/monitoring/tasks/main.yml: - monitoring_role
Note that some roles are dependant on other roles having been installed. For example, the monitoring_role depends on iri_role.
Specifying tags or skipping tags is mostly handy when upgrading a role.
To re-install iri (this will remove any existing database) or for example to install a different version after having edited the version in the groups_vars/all/*.yml
file:
First, if you already have iri running:
sudo systemctl stop iri
Then:
ansible-playbook -i inventory -v site.yml -e "remove_iri_workdir=1"