Version information
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
Add this module to your Puppetfile:
mod 'towo-taskd', '1.0.2'
Learn more about managing modules with a PuppetfileDocumentation
taskd
Table of Contents
- Description
- Setup - The basics of getting started with taskd
- 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
Description
This module will install the Taskwarrior "taskserver" (taskd).
It will take of installing the software and generating self-signed server-client certificates.
Setup
Beginning with taskd
First, some basic details for certificate generation need to be set (with hiera):
taskd::pki_vars:
organization: 'My Cool Org'
country: 'DE'
state: 'North Rhine-Westphalia'
locality: 'Cologne'
Additional variables have defined defaults:
Variable | Default value |
---|---|
cn | $fqdn |
bits | 4096 |
expiration_days | 365 |
Then simply include the taskd class on whatever node you want it to be set up:
include taskd
This will install taskd, make it listen on the default port (53589) on your node's FQDN, and generate the default self-signed certificates.
Usage
Creating users
A defined type taskd::user
facilitates creating users. Example:
taskd::user { 'towo': }
You can specify the actual name of the user used as well as the org:
taskd::user { 'Tobias Wolter':
name => 'towo',
org => 'My cool Org'
}
Reference
Markdown documentation is available in REFERENCE.md. HTML documentation is available in doc/.
Limitations
This module has only been tested with Debian stretch
(9.0). It should work with jessie
using backports.
Testing
A Vagrantfile is provided to test the working state of the module. Using the
Vagrantfile requires vagrant-puppet-install
. Just execute it with vagrant up
.
Development
Feel free to open issues.
Use the standard GitHub approach of forking, pull request, etc. to submit code modifications.
Reference
Classes
taskd
: Installs and configures the taskwarrior taskd server.
Defined types
taskd::user
: Generates a new user (certicate).
Classes
taskd
taskd
Installs and configures the taskwarrior taskd server. It will generate self-signed certificates in the default configuration. Module defaults are sourced from hiera.
Examples
include taskd
Parameters
The following parameters are available in the taskd
class.
package_name
Data type: String
The package name of taskd to use for installation.
service_name
Data type: String
The installed service name for taskd.
config_file
Data type: String
Location of the taskd configuration.
owner
Data type: String
Owner for files/directories. Should be the taskd user.
group
Data type: String
Group for files/directories. Should be the taskd user's group.
config
Data type: Hash
(Additional) configuration options that should be defined; the module supplies minimal defaults via hiera.
certificate
Data type: Struct[{ client => Struct[{ cert => String[1], key => String[1], }], server => Struct[{ cert => String[1], key => String[1], crl => String[1], }], ca => Struct[{ cert => String[1], }], }]
Hash of configuration settings for client, server and ca cert/key/crl.
pki_base_dir
Data type: Optional[String]
Base directory of the taskd PKI scripts. Only used when $generate_certificates is true.
pki_vars_file
Data type: Optional[String]
Location to put PKI vars file for generation. Only used when $generate_certificates is true.
pki_vars
Data type: Optional[Struct[{ bits => Numeric, expiration_days => Numeric, cn => String[1], organization => String[1], country => String[1], state => String[1], locality => String[1], }]]
PKI variables for generation certificates. Only used when $generate_certificates is true.
generate_certificates
Data type: Boolean
Generate self-signed certificates with the taskd PKI. Defaults to 'true'.
Default value: true
Defined types
taskd::user
taskd::user
Generates a new user (certicate). The certificate will be placed in the taskd root directory.
Examples
taskd::user { 'namevar': }
Parameters
The following parameters are available in the taskd::user
defined type.
user
Data type: String
Name of the user to create. Defaults to namevar.
Default value: $name
org
Data type: String
Name of the organization for the user. Will be created if necessary; defaults to namevar.
Default value: $name
ensure
Data type: Enum['present', 'absent']
State of the user; valid values are 'present' and 'absent'. Defaults to 'present'.
Default value: 'present'
Changelog
All notable changes to this project will be documented in this file.
Release 1.0.2
Features
- Improve metadata for Puppet Forge.
Bugfixes
- Indentation issue in CHANGELOG.
Known Issues
- Vagrant doesn't work correctly (#9)
- Vagrant test VMs for Ubuntu don't seem to mount /vagrant (probably an issue with generic boxes).
- Puppet deb files aren't available for all the dists.
Release 1.0.1
The "of course I forgot the documentation" release.
Features
- Now has Puppet Strings-based documentation.
Bugfixes
- Remove FIXMEs from README.md.
Known Issues
- Vagrant doesn't work correctly (#9)
- Vagrant test VMs for Ubuntu don't seem to mount /vagrant (probably an issue with generic boxes).
- Puppet deb files aren't available for all the dists.
Release 1.0.0
The "probably should not be 1.0.0" release.
Features
- Allow creation and deletion of users.
- Implement completish tests.
- Vagrant environment for all supported OSes.
Bugfixes
- Remove useless code in previous tests.
- Set
trust=strict
to suppress unwanted error messages on startup. - Don't introduce a bug that makes the creation check fail.
Known Issues
- Vagrant test VMs for Ubuntu don't seem to mount /vagrant (probably an issue with generic boxes).
- Puppet deb files aren't available for all the dists.
Release 0.3.2
Bugfixes
- Style issues with spec.
Release 0.3.1
Features
- Add basic testing.
Known issues
- Forgot to increase version number.
Release 0.3.0
Features
- Fully implement user certificate generation.
- A Vagrant testing environment has been included.
Bugfixes
- Parsing issues with certificate struct. (closes: #4)
- Generation of malformed configuration files. (closes: #5)
- An issue with scoping in templates.
- Accidentally assigning
crl
toclient
instead ofserver
in the certificate hash.
Release 0.2.1
Features
- Generate user certificates.
Bugfixes n/a
Known Issues I'll tell you after testing it.
Release 0.2.0
Features
- Generate user/group objects
Bugfixes
- Ensure the
orgs
dir exists so taskd won't fail. - Copy certificates to data directory instead of default location.
- Made
cn
optional for certificate (uses FQDN). - Some documentation.
Known Issues
- Certificates for users aren't yet generated.
- No unit tests.
- Still not king.
Release 0.1.0
Features
- Basic taskserver installation
- Generate self-signed certificates
Bugfixes
Known Issues None, since it hasn't even been tested. ;)