Commit 2a3d4c2d authored by eric pellegrini's avatar eric pellegrini
Browse files

Add README.md

parents
`Overview
========
**packme** is a python3 application for generating and running packer templates.
.. overview-begin
It works by generating *manifest.json* files out of *manifest.yml* files which contain the packer settings for the image to build. The *manifest.yml* files will be searched in a directory which contains as subdirectories the images to be built using packer. That directory has to be defined from the CLI (-t/--templates-dir option) and has the following structure:
*my_templates_directory/*
*image1/*
manifest.yml
.
.
*imageN/*
manifest.yml
Each manifest.yml has the following structure:
*---*
*parameters:*
*param1: value1*
.
*paramN: valueN*
*packer:*
*description: packer description string*
*variables: packer variables dict*
*builders: packer builders list*
*provisioners: packer provisioners list*
*post-processors: packer post processors list*
The packer section is strictly the YAML representation of a packer json file with the standards description, variables, builders, provisioners and post-processors packer fields. Those fields can contain Jinja2 templates which can be of two flavors: **parameters** or **environment**. **parameters** will be defined in the *parameters* section of the YAML file while *environment* will be either environment variables or variables passed through the **packme** CLI.
In order to run **packme** , an input configuration file has to be provided. This file is a YAML file which declares the list of the images for which *manifest.json* file will be built and run after with packer. It has the following structure:
*---*
*templates:*
*image1:*
packages:
*\- package1*
*\- package2*
*\- package3*
*image2:*
extends: image1
.
.
where *packages* defines non standard packages that will added as extra provisioners when generating the *manifest.json* file for the corresponding image.
An image can extend another one by starting its building from another image. This is the aim of *extends* keyword which allows to declare that dependency.
.. overview-end
Prerequesites
=============
- packer application must be installed
- QEMU
Installation
============
see [`here <http://code.ill.fr/si/packer>`_] for complementary info
- `cd` to the directory where lies the `setup.py` file
- pip3 install --user .
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment