Py Control Repository - Python SDK for Puppet Control Repository
Py Control Repository is SDK for Pyththon which allows developpers to manage a Puppet Control Repository based on GitHub.
Install
$ pip install py-control-repository
Usage
Get Puppet Environment
control_repository = ControlRepository('myorga', 'my_control_repository', 'token')
puppet_environment = control_repository.get_environment('production')
Get all Puppet Environment
Returns the list of all Puppet Environment.
control_repository = ControlRepository('myorga', 'my_control_repository', 'token')
puppet_environments = control_repository.get_environments()
Get all Puppet Environment names
Returns the list of all Puppet Environment names.
control_repository = ControlRepository('myorga', 'my_control_repository', 'token')
puppet_environment_names = control_repository.get_environment_names()
Create a Puppet Environment
Returns the new Puppet Environment.
control_repository = ControlRepository('myorga', 'my_control_repository', 'token')
new_puppet_environments = control_repository.create_environment('source_environment_name',
'new_environment_name')
Get Puppetfile
puppetfile = puppet_environment.get_puppetfile()
List Puppet modules in Puppetfile
module_list = puppetfile.list_modules()
Add a forge module
puppetfile.add_forge_module('puppetlabs/apache', version='0.10.1')
Update a forge module
puppetfile.update_forge_module('puppetlabs/apache', '0.11.0')
Remove a forge module
puppetfile.remove_forge_module('puppetlabs/apache')
Add a git module
With no version spicified, it will install the current master branch.
puppetfile.add_git_module('custom_module', 'https://url.my.git/orga/custom_module')
You can specify a specific git reference. Supported are :
- branch
- ref
- tag
- commit
puppetfile.add_git_module('custom_module',
'https://url.my.git/orga/custom_module',
reference_type='commit',
reference='ae1fe')
Update a git module
Bump module version
puppetfile.update_git_module('mymodule', '12.0.2')
You can also change a module reference type and its value.
For example you have a module deployed by its master branch and want to track it by a specific tag.
puppetfile.update_git_module('mymodule', '1.0.0', reference_type='tag')
Remove a git module
puppetfile.remove_git_module('apache')