Forge Home


Installs and configures a headless IOTA cryptocurrency node.


6,199 latest version

4.3 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 1.0.0 (latest)
released Dec 7th 2017
This version is compatible with:
  • Puppet Enterprise 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >=4.6.1 <5.0.0
  • , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'CraigWatson1987-iota', '1.0.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add CraigWatson1987-iota
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install CraigWatson1987-iota --version 1.0.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



CraigWatson1987/iota — version 1.0.0 Dec 7th 2017


Build Status Puppet Forge

Table of Contents

  1. Overview - What is the puppet-iota module?
  2. Module Description - What does the module do?
  3. Setup - The basics of getting started with puppet-iota
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing
  6. Limitations - OS compatibility, etc.
  7. 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.

Puppet 3 Support

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.

Module Description

  • 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


Beginning With puppet-iota

You must specify - either via Hiera or directly in Puppet - the version of iri to download and an Array of neighbors to use.

Java Options

  • The module will ensure the presence of a JRE via the puppetlabs/java module.
  • By default, the value of Java's Xms and Xmx settings will be 90% of available system RAM, expressed in Megabytes. To change this, use the java_ram_mb parameter.
  • To set advanced Java options (for example, use the java_opts parameter.

Usage Example

To download version of iri and manually specify three neighbors:

class { '::iota':
  version   => '',
  neighbors => [

Advanced Usage

Note: setting TCP and UDP port numbers to undef will remove them from iota.ini

class { '::iota':
  testnet          => true,
  debug            => true,
  version          => '',
  java_ram_mb      => 8192,
  tcp_port         => undef,
  udp_port         => 15600,
  remote_limit_api => [
  neighbors        => [


IRI Configuration Parameters



  • 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

Supported Operating Systems

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 -
  • 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