Skip to content

voxpupuli/puppet-spiped

Repository files navigation

puppet-spiped

License Build Status Puppet Forge Puppet Forge - downloads Puppet Forge - scores

Table of Contents

  1. Overview
  2. Setup - The basics of getting started with spiped
  3. Usage - Configuration options and additional functionality
  4. Limitations - OS compatibility, etc.
  5. Development - Guide for contributing to the module

Overview

This puppet module is used for configuring spiped tunnels. It supports recent Debian and RedHat family OSes using Puppet 5 or greater.

Setup

Debian family systems

Supported Debian and Ubuntu OSes provide suitable spiped packages and no additional setup is required.

RedHat systems

This module can also work with RedHat systems, but you are responsible for providing the spiped package.

Either use the package_source parameter, or make sure your system has a repository setup that includes the spiped package.

eg.

class { 'spiped':
  package_source => '/path/to/spiped.rpm',
}

or

yumrepo { 'spiped':
  baseurl => 'http://repos.example.com/spiped',
  descr   => 'Internal spiped package repo',
  enabled => true,
  before  => Class['spiped'],
}

Usage

For example, let's say we have a host redis-host which hosts a Redis database. Many clients will connect to it.

On redis-host, we would define a server tunnel:

spiped::tunnel::server { 'redis':
  source_host        => '0.0.0.0',
  source_port        => 1234,
  target_socket_file => '/var/run/redis.sock',
  secret             => 'hunter2', # You should use a much stronger/longer secret!
}

On clients, we would define a client tunnel:

spiped::tunnel::client { 'redis':
  source_socket_file => '/var/run/redis.sock',
  target_host        => 'redis-host'
  target_port        => 1234,
  secret             => 'hunter2', # You should use a much stronger/longer secret!
}

The secret is an arbitrarily-long shared symmetric key. For full strength security, the key should contain 256 or more bits of entropy.

Reference documentation is available in REFERENCE.md

Limitations

  • Only systemd based OSes are supported.
  • Not all spiped options are currently configurable with this module.

Development

This module was migrated from ckuehl/spiped to Vox Pupuli

We highly welcome new contributions to this module, especially those that include documentation, and rspec tests ;) but will happily guide you through the process, so, yes, please submit that pull request!

Reference documentation is generated using puppet-strings. To regenerate it, please run the rake task as follows.

bundle exec rake reference