func
A secure, scriptable, remote control framework and API. Func allows for running commands on remote systems in a secure way, but better than SSH.
Version information
released Jul 1st 2017
This version is compatible with:
- Puppet Enterprise 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >=2.7.20 <5.0.0
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'razorsedge-func', '1.3.0'
Learn more about managing modules with a PuppetfileDocumentation
razorsedge/func — version 1.3.0 Jul 1st 2017
Puppet Func Module
master branch: develop branch:
Introduction
This module manages the installation and configuration of Func: Fedora Unified Network Controller. Func allows for running commands on remote systems in a secure way, like SSH, but offers several improvements.
Actions:
- Installs the func package.
- Manages the overlord.conf and minion.conf files.
- Starts the func service.
OS Support:
- RedHat family - tested on CentOS 5.8+ and CentOS 6.3+
- Debian family - presently unsupported (patches welcome)
Class documentation is available via puppetdoc.
Examples
Top Scope variable (i.e. via Dashboard):
$certmaster_use_puppet_certs = true
$func_use_puppet_certs = true
# Change SSL dir for Puppet Enterprise.
$func_puppetmaster_ssl_dir = '/etc/puppetlabs/puppet'
include 'certmaster'
include 'func::minion'
Parameterized Class:
- minions
node default {
class { 'certmaster':
use_puppet_certs => true,
}
class { 'func::minion':
use_puppet_certs => true,
}
}
- overlord
node 'overlord.example.com' {
class { 'certmaster':
use_puppet_certs => true,
}
class { 'func::minion':
use_puppet_certs => true,
}
class { 'func::overlord':
use_puppet_certs => true,
}
}
Notes
- Requires the razorsedge/cetmaster module even if using Puppet certificate authentication.
- Requires EPEL for RedHat family hosts.
Issues
- None
TODO
- Autopopulate the Func group file (possibly with exported resources?).
- Figure out how to negate the call to verify_contents in puppet-rspec tests in order to make sure that content is missing from a template.
- Add firewall support.
- Make the Puppet client determine $puppetmaster_ssl_dir.
Contributing
Please see CONTRIBUTING.md for contribution information.
License
Please see LICENSE file.
Copyright
Copyright (C) 2012 Mike Arnold mike@razorsedge.org
2017-07-01 Michael Arnold github@razorsedge.org - 1.3.0
Michael Arnold github@razorsedge.org (28):
- Fix license and unbounded ranges in metadata.json.
- Fix puppet-lint errors.
- Manage common files with modulesync.
- Manage .puppet-lint.rc with modulesync.
- Update rspec-puppet ~> 2.0 and metadata-json-lint >= 0.0.4 with modulesync.
- Update rspec-puppet ~> 2.0 and metadata-json-lint >= 0.0.4 with modulesync.
- Fix puppetlint rake task with modulesync.
- Stick with rspec 2 for unit tests.
- Get code ready for Puppet 4 via modulesync.
- Update Puppet 4 gem and support puppet_blacksmith with modulesync.
- Update Geppetto .project.
- Unit test against Puppet 4 via modulesync.
- Now supporting Puppet 4.
- Keep Puppet 2.7 support.
- Pin rake below version 11 to keep Ruby 1.8 support.
- Fix rake pining.
- Fix: summary exceeds 144 characters in metadata.json.
- The "pe" requirement is no longer supported by the Forge.
- Add .vendor to .gitignore.
- Pin gems to specific Ruby versions with modulesync.
- Rename DEVELOP.md to CONTRIBUTING.md.
- Update instructions in CONTRIBUTING.md.
- Use Ruby 2.3.1 and remove puppet-lint-variable_contains_upcase with modulesync.
- Constrain metadata-json-lint on Ruby 1.x with modulesync.
- Remove Ruby 2.3.1 testing and add Puppet 5 testing with modulesync.
- No longer accept failures in Puppet 4 testing with modulesync.
- Support STRICT_VARIABLES for Puppet 4.
- Update versions for 1.3.0 release.
2014-09-26 Michael Arnold github@razorsedge.org - 1.2.0
Michael Arnold github@razorsedge.org (10):
- Add a directory filter for Geppetto.
- Update Geppetto .project to version 4.
- Update Modulefile summary to be more concise.
- Convert fixtures repositories to use https.
- Expand Puppet versions tested in Travis-CI.
- Update Modulefile source to use https.
- Allow tracking of metadata.json.
- Switch to using metadata.json vs Modulefile.
- Remove unneeded dependency on stahnma/epel.
- Update versions for 1.2.0 release.
2013-09-01 Michael Arnold github@razorsedge.org - 1.1.0
Michael Arnold github@razorsedge.org (8):
- Update module build scaffolding.
- Expand Puppet versions tested in Travis-CI.
- Rake validate to also check ERB for syntax errors.
- Add contribution instructions to README.md.
- Update tests/init.pp to pass puppet-lint.
- Convert to Ruby instance variables in templates.
- Update the GFM in the README.md.
- Update versions for 1.1.0 release.
2012-11-20 Michael Arnold github@razorsedge.org - 1.0.2
Michael Arnold github@razorsedge.org (2):
- Fix for duplicate declaration of Class[Func]
- Update versions for 1.0.2 release.
2012-11-19 Michael Arnold github@razorsedge.org - 1.0.1
Michael Arnold github@razorsedge.org (4):
- Update tests.
- Replace include with parameterized class.
- Change Modulefile dependency.
- Update versions for 1.0.1 release.
2012-11-18 Michael Arnold github@razorsedge.org - 1.0.0
Dependencies
- puppetlabs/stdlib (>=2.1.0 <5.0.0)
- razorsedge/certmaster (>=1.0.0 <2.0.0)
Copyright (C) 2012 Mike Arnold <mike@razorsedge.org> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.