- Overview - What is the puppet-iota module?
- Module Description - What does the module do?
- Setup - The basics of getting started with puppet-iota
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
This Puppet module downloads, installs and configures a headless IRI full node for use within the IOTA Tangle.
Please note that the master branch of this module does not support Puppet 3!
On 31st December 2016, support for Puppet 3.x was withdrawn. As such, this module is not compatible with Puppet 3.
- Creates a user/group for
iri
to be run with - Creates a
INI
configuration file - Downloads the pre-compiled JAR file from GitHub
- Creates, enables and starts an
iota
daemon/service via systemd
You must specify - either via Hiera or directly in Puppet - the version of iri
to download and an Array
of neighbors to use.
- The module will ensure the presence of a JRE via the
puppetlabs/java
module. - By default, the value of Java's
Xms
andXmx
settings will be 90% of available system RAM, expressed in Megabytes. To change this, use thejava_ram_mb
parameter. - To set advanced Java options (for example
-Djava.net.preferIPv4Stack=true
), use thejava_opts
parameter.
To download version 1.4.1.2 of iri
and manually specify three neighbors:
class { '::iota':
version => '1.4.1.2',
neighbors => [
'udp:://someone.else:15600',
'tcp://some.other.server:14600',
'tcp://10.10.10.10:1234',
],
}
Note: setting TCP and UDP port numbers to undef
will remove them from iota.ini
class { '::iota':
testnet => true,
debug => true,
version => '1.4.1.2',
java_ram_mb => 8192,
tcp_port => undef,
udp_port => 15600,
remote_limit_api => [
'attachToTangle',
'addNeighbors'
],
neighbors => [
'udp:://someone.else:15600',
'tcp://some.other.server:14600',
'tcp://10.10.10.10:1234',
],
}
- For detailed explanations of the parameters used to configure the
iri
daemon, see here: https://github.com/iotaledger/iri#command-line-options - If any configuration options are not managed by the module, please submit a pull request!
- Creates the user and group to use with
iri
- Places the daemon configuration
- Downloads the IRI Java JAR file from GitHub to the
iota
user's home directory - Installs the packages necessary to run the headless daemon
- Deploys systemd configuration files for running the
iota
service - Ensures the
iota
service is running
The module does not manage or install any GUI, for example Nostalgia
Versions higher than those listed below may work, but are not tested.
- RHEL/Scientific/CentOS 7
- Debian 8
- Ubuntu 16.04
- Copyright (C) Craig Watson - craig@cwatson.org
- Distributed under the terms of the Apache License v2.0 - see LICENSE file for details.
- The project ships with a working Vagrant environment with boxes configured for each supported OS version.
- Further contributions and testing reports are extremely welcome - please submit a pull request or issue on GitHub