Helpers for using these infrastructure tools:
$ git clone git@github.com:bninja/confu.git
$ cd confu
$ mkvirtualenv confu
(confu)$ pip install -e .[tests]
(confu)$ py.test tests/ --cov=confu
$ pip install con-fu
Read and merged from these ini
files:
~/.confu.cfg
.confu.cfg
and these environment variables:
CONFU_PROFILE
CONFU_REGION
CONFU_LOG
To see what they are:
$ confu cfg
{
"atlas": {
"source_dir": "infras/global/atlas"
},
"aws": {
"default_region": "us-west-1",
"regions": [
"us-west-1"
]
},
"cfn": {
"bucket_format": "{profile}-confu-cfn-{region}",
"bucket_key": "vault",
"parameters": {
"ConfName": "infra-vault",
"ConfSource": "{profile}-confu-pkg",
"InfraSilo": "vault",
"KeyName": "ai-gazelle",
"LogArchiveBucket": "{profile}-confu-log"
},
"stack_name_format": "{Prefix}-{AppEnv}-{random}",
"stack_tags": {
"infra-silo": "vault"
}
},
"pkg": {
"bucket_format": "{profile}-{region}-confu-pkg",
"default_includes": [
"group_vars/",
"host_vars/",
"roles/",
"/ansible.cfg",
"!*/ansible.cfg",
"*.yml",
"!.project",
"!*.git",
"!*.pyc",
"!*.pyo",
"!*.git*",
"!*.travis.yml",
"!*.md",
"!Vagrantfile",
"!*/test/",
"!test.yml"
],
"includes": [
"infras/",
"!infras/global/mq.yml",
"!infras/global/site.yml",
"!infras/global/.confu.cfg",
"!infras/global/inventories/",
"!infras/global/formations/",
"!infras/global/roles/",
"inventories/",
"ops/"
],
"name": "{source.dir_name}",
"source_dir": "./",
"stage_dir": "/tmp/confu/{package.name}-{package.version}",
"version": "{source.git_version}"
},
"profile": "julius",
"region": "us-west-1"
}
Source completion and functions like:
$ source <(confu shell env; confu shell complete)
or use in all shells like:
$ (confu shell env; confu shell complete) > ~/confu.sh
$ cat >> ~/.bashrc <<EOF
. ~/confu.sh
EOF
Shell function for managing confu
environments which are just these environment variables:
CONFU_PROFILE
CONFU_REGION
CONFU_LOG
like this:
$ confue
CONFUE_NAME=
CONFU_PROFILE=
CONFU_REGION=
CONFU_LOG=
$ confue jj-us-w1
$ confue -p julius -r us-west-1 -l i
$ confue
CONFUE_NAME=jj-us-w1
CONFU_PROFILE=julius
CONFU_REGION=us-west-1
CONFU_LOG=i
$ confue off
$ confue
CONFUE_NAME=
CONFU_PROFILE=
CONFU_REGION=
CONFU_LOG=
$ confue ls
jj-us-w1