Forge Home

stns

This puppet module install and configure STNS (Simple Toml Name Service).

50,074 downloads

7,998 latest version

5.0 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.

Support the Puppet Community by contributing to this module

You are welcome to contribute to this module by suggesting new features, currency updates, or fixes. Every contribution is valuable to help ensure that the module remains compatible with the latest Puppet versions and continues to meet community needs. Complete the following steps:

  1. Review the module’s contribution guidelines and any licenses. Ensure that your planned contribution aligns with the author’s standards and any legal requirements.
  2. Fork the repository on GitHub, make changes on a branch of your fork, and submit a pull request. The pull request must clearly document your proposed change.

For questions about updating the module, contact the module’s author.

Version information

  • 3.0.1 (latest)
  • 3.0.0
  • 2.3.0
  • 2.2.0
  • 2.1.0
  • 2.0.1
  • 2.0.0
  • 1.8.0
  • 1.7.2
  • 1.7.1
  • 1.7.0
  • 1.6.0
  • 1.5.0
  • 1.4.0
  • 1.3.0
  • 1.2.1
  • 1.1.1
  • 1.1.0
  • 1.0.0
  • 0.3.0
  • 0.2.0
  • 0.1.1
  • 0.1.0
released Apr 24th 2019
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >=4.7.0 < 6.0.0
  • , , , ,

Start using this module

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

Add this module to your Puppetfile:

mod 'hfm-stns', '3.0.1'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add hfm-stns
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install hfm-stns --version 3.0.1

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.

Download

Documentation

hfm/stns — version 3.0.1 Apr 24th 2019

puppet-stns

Build Status Puppet Forge

Table of Contents

  1. Description
  2. Setup - The basics of getting started with stns
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module

Description

The STNS module handles installing, configuring, and running STNS and libnss_stns on stns.jp.

Setup

Setup Requirements

The STNS module requires the following puppet modules:

Both puppetlabs-apt is soft dependencies. If you are installing on Debian or RedHat-based systems, you will need to configure appropriate versions of those modules.

Beginning with STNS

To install the STNS server with default parameters, declare the stns::server class.

include ::stns::server

To install the STNS client (libnss_stns) with default parameters, declare the stns::client class.

include ::stns::client

Usage

Configuring stns::server

class { '::stns::server':
  port           => 1104,
  user           => 'sample',
  password       => 's@mp1e',
  package_ensure => latest,
}

# Configures users and groups
stns::server::users {
  'foo':
    id         => 1001,
    group_id   => 1001,
    directory  => '/home/foo',
    shell      => '/bin/bash';

  'bar':
    id         => 1002,
    group_id   => 1001,
    directory  => '/home/bar',
    shell      => '/bin/bash';
}

stns::server::groups { 'sample':
  id    => 1001,
  users => [
    'foo',
    'bar',
  ],
}

Configuring stns::client

class { '::stns::client':
  api_end_point      => 'http://stns.example.jp:1104',
  user               => 'sample',
  password           => 's@mp1e',
  wrapper_path       => '/usr/local/bin/stns-query-wrapper',
  chain_ssh_wrapper  => '/usr/libexec/openssh/ssh-ldap-wrapper',
  ssl_verify         => true,
  request_timeout    => 3,
  http_proxy         => 'http://proxy.example.com:1104',
  libnss_stns_ensure => latest,
  handle_nsswitch    => true,
  handle_sshd_config => true,
}

Configuring modules from Hiera

---
stns::server::port: 1104
stns::server::user: sample
stns::server::password: s@mp1e
stns::server::package_ensure: latest

stns::client::api_end_point: 'http://stns1.example.jp:1104'
stns::client::user: sample
stns::client::password: s@mp1e
stns::client::wrapper_path: '/usr/local/bin/stns-query-wrapper'
stns::client::chain_ssh_wrapper: null
stns::client::ssl_verify: true
stns::client::request_timeout: 3
stns::client::http_proxy: 'http://proxy.example.com:1104'
stns::client::libnss_stns_ensure: latest
stns::client::handle_nsswitch: true
stns::client::handle_sshd_config: true

Reference

Public Classes

Private Classes

  • stns::repo: Setup STNS repository.
  • stns::server::install: Installs STNS package.
  • stns::server::config: Configures STNS.
  • stns::server::server: Manages service.
  • stns::client::install: Installs packages for libnss_stns.
  • stns::client::config: Configures

Defined Types

  • stns::server::users: Specifies a STNS users configuration file.
  • stns::server::groups: Specifies a STNS groups configuration file.

Parameters

Class: stns::server

  • port: Specifies a listen port listen. Valid options: a number of a port number. Default: 1104.
  • user: Specifies a user for authentication. Valid options: a string containing a valid username. Default: undef.
  • password: Specifies a password for authentication. Valid options: a string containing a valid password. Default: undef.
  • package_ensure: What state the packages should be in.

Class: stns::client

  • api_end_point: Valid options: a string containing a valid url. Default: undef.
  • user: Specifies a user for authentication. Valid options: a string containing a valid username. Default: undef.
  • password: Specifies a password for authentication. Valid options: a string containing a valid password. Default: undef.
  • wrapper_path: Valid options: absolute path. Default: '/usr/local/bin/stns-query-wrapper'.
  • chain_ssh_wrapper: Default: undef.
  • ssl_verify: Enables SSL verification. Valid options: a boolean. Default: true.
  • request_timeout: Wrapper Command Timeout. Valid options: a number. Default: 3.
  • http_proxy: Valid options: a string. Default: undef.
  • uid_shift: Shift uid. Valid options: a number. Default: 0.
  • gid_shift: Shift gid. Valid options: a number. Default: 0.
  • libnss_stns_ensure: What state the libnss-stns package should be in.
  • handle_nsswitch: Configure nsswitch.conf to use STNS. Valid options: a boolean. Default: false.
  • handle_sshd_config: Configure sshd_config to use STNS. Valid options: a boolean. Default: false.

Defined Types: stns::server::users

  • id: Specifies the user ID. Valid options: a number type. Default: undef.
  • group_id: Specifies the user's primary group. Valid options: a number type. Default: undef.
  • directory: Specifies the home directory of the user. Valid options: a string containing a valid path. Default: /home/<resource title>.
  • shell: Specifies the user's login shell. Valid options: a string containing a valid path. Default: /bin/bash.
  • keys: Specify user attributes in an array of key = value pairs. Valid options: a string containing a valid key = value pairs. Default: undef.
  • link_users: Valid options: a string containing a valid password. Default: undef.

Defined Types: stns::server::groups

  • id: Specifies the group ID. Valid options: a number type. Default: undef.
  • users: Specifies the members of the group. Valid options: a string containing a valid password. Default: undef.
Parameters

Limitations

This module has been tested on:

  • RedHat Enterprise Linux 7
  • CentOS 7
  • Scientific Linux 7
  • Debian 8
  • Ubuntu 16.04

Development

Running tests

The STNS puppet module contains tests for both rspec-puppet (unit tests) and beaker-rspec (acceptance tests) to verify functionality. For detailed information on using these tools, please see their respective documentation.

Testing quickstart

  • Unit tests:
$ bundle install
$ bundle exec rake
  • Acceptance tests:
# Set your DOCKER_HOST variable
$ eval "$(docker-machine env default)"

# List available beaker nodesets
$ bundle exec rake beaker_nodes
centos7
jessie
xenial

# Run beaker acceptance tests
$ BEAKER_set=centos7 bundle exec rake beaker