propanelib is a library of promise bodies for CFEngine 3.
CFEngine is a configuration management and automation framework that lets you securely manage your IT infrastructure. If you don't know yet about CFEngine, you can take a look at its documentation to get a first grasp of it.
The goal of propanelib is to provide a set of re-usable promise bodies to drive the development of your configuration policies.
propanelib make use of various Python 3 utilities to drive its development. If you wish to bring some changes to the project and build it, you'll need to set up your working environment first.
Make sure to have Python 3 in version 3.4 or later installed on your system. If you are running Fedora or a Red Hat based Linux system, you can run the following:
# yum install python3
On the other hand if you are using a Debian based system, run the following:
# apt-get install python3
For any other system, you can find installation instructions on the website of the Python project.
In order to keep your system clear from the development tools needed for the project, it is advised to set up a Python 3 virtual environment.
Go to the project directory and run the following:
$ pyvenv pyenv
This will created a directory named pyenv
in the current folder in
which you will find a new Python 3 environment completely separated
from your system.
To activate this environment, you can enter the following command:
$ source ./pyenv/bin/activate (pyenv)$
When a command should be entered within the virtual environment, we
use the following (pyenv)$
prompt in console examples.
All the utilities required to build or ease project's development are
listed in the requirements.txt
file. Within an activated virtual
environment, run the following to install the required tools:
(pyenv)$ pip install -r requirements.txt
This file will be updated each time a new version of an utility is
available or depending on the needs. Be sure to re-run this command
each time you notice a change to the requirements.txt
file.
Building the project involves many different tasks. To ease the
operation, needed actions needed are being put together in the
tasks.py
file and ran using the Invoke tool as simple shell
commands.
This software project is provided under the licensing terms of the
MIT License stated in the file LICENSE.rst
.
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.