fastfood
========
Helps build cookbooks faster by pre-templating parts and exposing
options in a command line and config friendly way.
Installation
The latest release of fastfood can be installed via pip:
pip install fastfood
An alternative install method would be manually installing it
leveraging
setup.py:
git clone https://github.com/rackerlabs/fastfood cd fastfood python setup.py install
Command Line Usage
list
Shows a list of available stencils in your template pack.
Example:
$ fastfood list
Available Stencil Sets:
varnish - Creates a recipe for installing Varnish
ha-redis - Creates a highly available Redis and HAProxy recipe
java - Installs Java JRE
show
Shows more information about a stencil, including available options.
$ fastfood show nginx
Stencil Set nginx:
Stencils:
nginx
Options:
name - Name of the recipe to create
example - Various premade Nginx examples
build
Generates a new cookbook or updates an existing cookbook from a
fastfood.json
file.
Example Template:
{
"name": "mycookbook",
"stencils": [
{
"stencil_set": "base"
},
{
"stencil_set": "rabbitmq",
"openfor": "myapp"
},
{
"stencil_set": "rails",
"stencil": "nginx",
"name": "myapp",
"tag": "myapp"
}
]
}
Ex:
fastfood build fastfood.json
Template Notes
Fastfood uses the Jinja2 templating
engine with
2 modifications.
qstring()
There is a helper method added to jinja2 for fastfood called qstring,
it
takes in an argument and if that argument does not match a Chef node
attributes (node[‘mysomething’] | node.chef_environment) it will
wrap that argument
in a string otherwise it just returns the argument.
qstring("node['mysomething']")
renders as
node['mysomething']
and
qstring("mynonchefstr")
renders as
"mynonchefstr"
jinja variable
Because the traditional jinja2 variable start and end strings can
conflict
with Ruby code fastfood uses ‘|{’ and ‘}|’ to represent a jinja2
variable.
|{ options['name'] }|
Metadata
Release files for fastfood 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastfood-1.1.0.tar.gz | 14.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastfood-1.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 37.3 kB
Release files / fastfood-1.1.0.tar.gz
| Download URL | fastfood-1.1.0.tar.gz |
|---|---|
| Size | 14.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
969d2352ad29ba4ebb802ffbe25569b40e433286433a0371ae0f2e946f449460
|
|
BLAKE2b-256 checksum How to use checksums |
4bea43e04a36e83018e47d4c40382ba9d142a4d26117dbd72a30ed48d0711ee8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / fastfood-1.1.0-py2.py3-none-any.whl
| Download URL | fastfood-1.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 22.9 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
a9b6776a4d00c9011f28ca710e69cd8e2ff476e5c24855a03c35a971d4ff3e8b
|
|
BLAKE2b-256 checksum How to use checksums |
5c6f5ff610a667418178c34f972903e43ee8ca1c421f0961ccef65e242bc7f0d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |