Skip to content

swesterveld/cf3-pip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

The cf3-pip repo contains an extension written for the CFEngine 3 library. Goal
was to have a means to easily manage Python packages from a CFEngine setup.

With this extension Python package manager 'pip' -- which is an acronym for
'pip installs packages' -- is supported as one of the package managers
available in CFEngine. It makes it possible to install and remove Python
packages both globally as well as in a virtual environment. For the latter
you'll need an environment with the Python package 'virtualenv'.


The extension itself can be found in the file 'pip.cf'.


Sample usage:
=============

#
# Main Cfengine 3 configuration file
#
body common control
{
    bundlesequence => { pip_example };

    inputs => {
        "cfengine_stdlib.cf",
        "pip.cf",
    };
}

bundle agent pip_example
{
    vars:
        any::
            #
            # Define the packages to install/delete
            #
            "pkgadd[yolk]"  string  => "0.4.3";

            "pip_delete"    slist   => {
                "dummypkg1",
                "dummypkg2",
            };

    methods:
        #
        # Install yolk globally and in the virtual environment at
        # /data/virtualenvs/testenv
        #
        "any" usebundle => pip_install_pkg("pip_example.pkgadd");
        "any" usebundle => pip_install_pkg_virtualenv("pip_example.pkgadd", "/data/virtualenvs/testenv");

        #
        # Uninstall dummypkg1 and dummypkg2 globally and from the virtual
        # environment at /data/virtualenvs/testenv
        #
        "any" usebundle => pip_uninstall_pkg($(pip_example.pip_delete));
        "any" usebundle => pip_uninstall_pkg_virtualenv($(pip_example.pip_delete), "/data/virtualenvs/testenv");
}

About

Cfengine 3 library to support Python package manager pip

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages