Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2016.4.x
- Puppet >= 4.10.0 < 7.0.0
- ,
Start using this module
Add this module to your Puppetfile:
mod 'njhowell-foldingathome', '0.1.1'
Learn more about managing modules with a PuppetfileDocumentation
foldingathome
Puppet module to install folding@home client on Linux systems.
Module Description
This is a simple module to install the Folding@Home client on Linux systems.
Setup
include foldingathome
is enough to get started. However, you may wish to pass in a username and/or team ID:
class {'foldingathome':
user_name => 'example_user',
team_id => '1234'
}
Usage
Configuring identity
Specify username, team ID and a passkey to configure your folding@home identity.
class {'foldingathome':
user_name => 'example_user',
team_id => '1234',
user_passkey => 'secretpasskey',
}
FAHClient version
Specify the package URL to install a specific version
class {'foldingathome':
url => 'http://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v7.5/fahclient_7.5.1_amd64.deb'
}
Configure CPU Slots
Specify a Hash of CPU Slots and CPU Core counts. For example, to have two CPU slots one with 2 core, and one with 4 cores:
class {'foldingathome':
cpu_slots => {
'0' => '2',
'1' => '4'
}
}
Configure Web management
Configure the remote web control for the FAHClient:
class {'foldingathome':
allow => '0/0',
web_allow => '0/0',
web_password => 'foobar'
}
This allows remote web control from all IPs, with password foobar
.
Misc
GPU
Set gpu_enable = true
to enable GPU. However, no other configuration is currently present in this module and the functionality is not yet tested.
Service state
Use service_ensure
to control the state of the FAHClient
service. Implemented here mostly for testing so we don't run the service and take work units when we don't intend to complete them.
Limitations
Currently this is only implemented for Linux, and even then only for those that use the deb package format.
The module is tested against:
- Ubuntu 18.04
- Ubuntu 20.04
- Debian 9
Not all possible config options in config.xml
are managed, only the ones I immediately found useful.
Development
Contributions
Contributions via Issues and PRs are welcome.
Running Tests
This module uses PDK and Puppet Litmus.
There are two provisioning sets for litmus - vagrant
and travis_docker
. The Vagrant list is intended to aid local development when working on Windows sytems. The travis_docker list is for Travis CI to use when performing automated testing, although there's no reason this cannot be used when development on a Linux system with a suitable local docker configuration.
Run the parser validators and unit tests:
pdk validate
to validate syntaxpdk test unit
to run unit tests
Litmus acceptance tests are a little more involved:
pdk bundle install
pdk bundle exec rake litmus:provision_list[vagrant]
pdk bundle exec rake litmus:install_agent
pdk bundle exec bolt task run provision::fix_secure_path --modulepath spec/fixtures/modules -i inventory.yaml -t ssh_nodes
. This adds the puppet executable to the path of the root user, but is only nescessary when using the vagrant provisionerpdk bundle exec rake litmus:install_module
to install the module (and it's dependencies) for testingpdk bundle exec rake litmus:acceptance:parallel
to run the acceptance testspdk bundle exec rake litmus:tear_down
to destroy the VMs
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v0.1.1 (2020-05-25)
Closed issues:
- Document module #4
Merged pull requests:
v0.1.0 (2020-05-25)
Added
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppet/archive (>= 3.0.0 < 5.0.0)
- puppetlabs/stdlib (>= 5.0.0 < 6.3.0)
MIT License Copyright (c) 2020 Nick Howell 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.