Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x
- Puppet >= 5.5.8 < 7.0.0
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'puppet-spiped', '2.0.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-spiped
Table of Contents
- Overview
- Setup - The basics of getting started with spiped
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- 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
Reference
Table of Contents
Classes
spiped
: Installs spiped
Defined types
Public Defined types
spiped::tunnel::client
: Creates and manages the client side of a spiped tunnel.spiped::tunnel::server
: Creates and manages the server side of a spiped tunnel.
Private Defined types
spiped::tunnel
:
Classes
spiped
Installs spiped
- See also https://www.tarsnap.com/spiped.html
Examples
Specifying a custom package
class { 'spiped':
package_source => '/path/to/spiped-1.6.git.20160201-2.el7.centos.x86_64.rpm',
}
Parameters
The following parameters are available in the spiped
class.
package_source
Data type: Optional[String[1]]
Specifies a source to be passed to the package resource. Typically, the path to a .deb or .rpm package file.
Default value: undef
Defined types
spiped::tunnel::client
Creates and manages the client side of a spiped tunnel.
Examples
Define a client tunnel for connecting to a remote redis server over an spiped 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.
}
Parameters
The following parameters are available in the spiped::tunnel::client
defined type.
secret
Data type: Variant[Sensitive[String[1]],String[1]]
An arbitrarily-long shared symmetric key. For full strength encryption, this string should contain 256 bits or more of entropy.
source_socket_file
Data type: Optional[Stdlib::Unixpath]
Unix domain socket file on which spiped should listen for incoming connections. If specified, source_host
and source_port
should not be used.
Default value: undef
source_host
Data type: Optional[Stdlib::Host]
hostname or IP address that spiped should listen on. If specified, source_port
is also required.
Default value: undef
source_port
Data type: Optional[Stdlib::Port]
TCP port that spiped should listen on. Used in conjuction with source_host
.
Default value: undef
target_socket_file
Data type: Optional[Stdlib::Unixpath]
Unix domain socket file to which spiped should connect. If specified, target_host
and target_port
should not be used.
Default value: undef
target_host
Data type: Optional[Stdlib::Host]
hostname or IP address that spiped should connect to. If specified, target_port
is also required.
Default value: undef
target_port
Data type: Optional[Stdlib::Port]
TCP port that spiped should connect to.
Default value: undef
spiped::tunnel::server
Creates and manages the server side of a spiped tunnel.
Examples
Define a server tunnel for connecting to a local redis server
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.
}
Parameters
The following parameters are available in the spiped::tunnel::server
defined type.
secret
Data type: Variant[Sensitive[String[1]],String[1]]
An arbitrarily-long shared symmetric key. For full strength encryption, this string should contain 256 bits or more of entropy.
source_socket_file
Data type: Optional[Stdlib::Unixpath]
Unix domain socket file on which spiped should listen for incoming connections. If specified, source_host
and source_port
should not be used.
Default value: undef
source_host
Data type: Optional[Stdlib::Host]
hostname or IP address that spiped should listen on. If specified, source_port
is also required.
Default value: undef
source_port
Data type: Optional[Stdlib::Port]
TCP port that spiped should listen on. Used in conjuction with source_host
.
Default value: undef
target_socket_file
Data type: Optional[Stdlib::Unixpath]
Unix domain socket file to which spiped should connect. If specified, target_host
and target_port
should not be used.
Default value: undef
target_host
Data type: Optional[Stdlib::Host]
hostname or IP address that spiped should connect to. If specified, target_port
is also required.
Default value: undef
target_port
Data type: Optional[Stdlib::Port]
TCP port that spiped should connect to.
Default value: undef
Changelog
All notable changes to this project will be documented in this file. Each new release typically also includes the latest modulesync defaults. These should not affect the functionality of the module.
v2.0.0 (2019-06-17)
This is the first release of this module under Vox Pupuli's puppet namespace. Puppet 4 and earlier are no longer supported.
Breaking changes:
- Replace
source
anddest
parameters #8 (alexjfisher)
Implemented enhancements:
- Replace
ensure\_resource
with base class and addpackage\_source
parameter #7 (alexjfisher)
Fixed bugs:
- Make service subscribe to keyfile #11 (alexjfisher)
Closed issues:
- spiped service should subscribe to keyfile #2
Merged pull requests:
- Run acceptance tests on Debian 8 #14 (alexjfisher)
- Update metadata.json for VP migration #13 (alexjfisher)
- Add REFERENCE.md and reformat README #12 (alexjfisher)
- Add Puppet Forge badges #10 (alexjfisher)
- Add acceptance tests #6 (alexjfisher)
- Fix github license detection #5 (alexjfisher)
- Use camptocamp/systemd for managing unit files #3 (alexjfisher)
v1.1.1 (2015-08-19)
v1.1.0 (2015-08-19)
v1.0.1 (2015-08-03)
v1.0.0 (2015-08-03)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/stdlib (>= 4.25.0 < 7.0.0)
- camptocamp/systemd (>= 2.1.0 < 3.0.0)
Copyright (c) 2015 Chris Kuehl Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.