####Table of Contents
- Overview
- Module Description - What is the homes module?
- Setup - The basics of getting started with homes
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
##Overview
The homes module allows you to create local system users and optionally manage their ssh keys
##Module Description
This module provides a simplified way of managing local and system users, their home directory and optionally the distrubition of their public and private ssh keys.
##Setup
###What homes affects
- Create users
- Populates authorized_keys file for the given user.
###Beginning with homes
To create a new local user:
$myuser = {
'testuser' => { 'groups' => ['testgroup1', 'testgroup2'] }
}
homes { 'testuser':
user => $myuser
}
To create a new local user and manage their public ssh_key:
homes { 'testuser'
ssh_key => 'AAAAB3NzaC1yc2EAAAADAQABAAAAgQC4U/G9Idqy1VvYEDCKg3noVChCbIrJAi0D/qMFoG=='
}
##Usage
###Classes and Defined Types
####Defined Type: homes
The homes module primary type, homes
, guides the basic setup of local users on your system.
Parameters within homes
:
#####user
A hash giving details of the user that will be managed.
#####ssh_key
The ssh_key is the one-line contents of the users public key. This will be used to populate the authorized_keys file in the .ssh directory of the users home directory.
####Defined Type: homes::ssh::private
The type for managing the distrubution of private keys from an existing key store.
Parameters within homes::ssh::private
:
#####username
The name of the user that is being managed by this module.
#####key_name
The name of the private key as found in the existing key store.
#####key_store
The full path directory to the keystore where all the public keys and other secrets are located.
##Reference
###Defined Types ####Public Types
homes
: Guides the basic management of users.homes::ssh::private
: Management of a users private ssh key.
####Private Types
homes::home
: Create the user and manage the home directory.homes::ssh::public
: Management of a users public ssh key.
##Limitations
This module is CI tested on Centos 6, Ubuntu 12.04 with OSS version Puppet only.
##Development
###Contributing
Please read CONTRIBUTING.md for full details on contributing to this project.
###Running tests
This project contains tests for both rspec-puppet and rspec-system-puppet to verify functionality. For in-depth information please see their respective documentation.
Quickstart:
gem install bundler
bundle install
bundle exec rake spec
RS_DEBUG=yes bundle exec rspec spec/acceptance