Version information
This version is compatible with:
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'opentable-homes', '1.0.2'
Learn more about managing modules with a PuppetfileDocumentation
puppet-homes
####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 distribution 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 distribution 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.
####Defined Type: homes::ssh::config
The type for managing the ssh config options for the user.
Parameters within homes::ssh::private
:
#####username
The name of the user that is being managed by this module.
#####ssh_config_entries
A hash giving configuration details that will be set in the ~/.ssh/config
file
##Reference
###Defined Types ####Public Types
homes
: Guides the basic management of users.homes::ssh::private
: Management of a users private ssh key.homes::ssh::config
: Management of a users ssh config file.
####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 tested on the following platforms:
- CentOS 5
- CentOS 6
- Ubuntu 12.04
- Ubuntu 14.04
It is tested with the OSS version of Puppet only.
###Contributing
Please read CONTRIBUTING.md for full details on contributing to this project.
##2014-10-10 - Release 1.0.0 ###Summary
This release is focused on bring the module up to a recognized standard. It it mainly focused on documentation and testing.
####Features
- Improved documentation
- Added support for Amazon Linux
####Bugfixes
- Fixed tests in newer versions of puppet
##2014-06-17 - Release 0.3.1 ###Summary
This release fixing some minor bugs where to module does not clean up after itself
####Bugfixes
- fixed bug with ensure=>absent not cleanly removing all resources
##2014-05-13 - Release 0.3.0 ###Summary
This release focused on adding some addtional key types
####Features
- support for additional key types (#3)
- support for managing ~/.ssh/config file
##2014-04-07 - Release 0.2.1 ###Summary
Small bug fix release to update the altlib dependency
##2014-03-21 - Release 0.2.0 ###Summary
This release focuses mainly on adding support for dsa keys and fixing some cross-plaform issues
####Features
- adding support for dsa keys
- adding tests with beaker
- improved the documentation
####Bugfixes
- fixed issue with sudo/wheel groups being applied on different operating systems
##2014-03-06 - Release 0.1.0 ###Summary
Initial release. Basic support for managing home directory and public ssh keys
Dependencies
- puppetlabs/stdlib (>= 3.0.0 <5.0.0)
- opentable/altlib (>= 0.2.0)
- herculesteam/augeasproviders ()
Copyright (c) 2014 OpenTable, Inc. 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.