py-control-repository

Module to manage Puppet control repository hosted on Github


Licenses
LGPL-2.0/LGPL-3.0
Install
pip install py-control-repository==1.0.0

Documentation

Py Control Repository - Python SDK for Puppet Control Repository

https://travis-ci.org/othalla/py-control-repository.svg?branch=master https://api.codacy.com/project/badge/Grade/f631643ebb164aa697cb40c63f6d8375

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')