foreman-ansible-inventory 0.0.4

Creator: bradpython12

Last updated:

0 purchases

TODO
Add to Cart

Description:

foremanansibleinventory 0.0.4

foreman_ansible_inventory=========================[![Build Status](https://travis-ci.org/theforeman/foreman_ansible_inventory.svg?branch=master)](https://travis-ci.org/theforeman/foreman_ansible_inventory)This script can be used as an Ansible dynamic inventory[1].The connection parameters are set up via a configurationfile *foreman.ini*. *foreman.ini* is found using the followingorder of discovery. * `/etc/ansible/foreman.ini` * Current directory of your inventory script. * `FOREMAN_INI_PATH` environment variable.## Variables and ParametersThe data returned from Foreman for each host is stored in a foremanhash so they're available as *host_vars* along with the parametersof the host and it's hostgroups: "foo.example.com": { "foreman": { "architecture_id": 1, "architecture_name": "x86_64", "build": false, "build_status": 0, "build_status_label": "Installed", "capabilities": [ "build", "image" ], "compute_profile_id": 4, "hostgroup_name": "webtier/myapp", "id": 70, "image_name": "debian8.1", ... "uuid": "50197c10-5ebb-b5cf-b384-a1e203e19e77" }, "foreman_params": { "testparam1": "foobar", "testparam2": "small", ... }and could therefore be used in Ansible like: - debug: msg="From Foreman host {{ foreman['uuid'] }}"Which yields TASK [test_foreman : debug] **************************************************** ok: [foo.example.com] => { "msg": "From Foreman host 50190bd1-052a-a34a-3c9c-df37a39550bf" }## Automatic Ansible groupsThe inventory will provide a set of groups, by default prefixed by'foreman_'. If you want to customize this prefix, change thegroup_prefix option in /etc/ansible/foreman.ini. The rest of thisguide will assume the default prefix of 'foreman'The hostgroup, location, organization, content view, and lifecycleenvironment of each host are created as Ansible groups with a foreman_<grouptype> prefix, all lowercase and problematic parameters removed. So e.g. the foreman hostgroup myapp / webtier / datacenter1would turn into the Ansible group: foreman_hostgroup_myapp_webtier_datacenter1Furthermore Ansible groups can be created on the fly using the*group_patterns* variable in *foreman.ini* so that you can build uphierarchies using parameters on the hostgroup and host variables.Lets assume you have a host that is built using this nested hostgroup: myapp / webtier / datacenter1and each of the hostgroups defines a parameters respectively: myapp: app_param = myapp webtier: tier_param = webtier datacenter1: dc_param = datacenter1The host is also in a subnet called "mysubnet" and provisioned via an imagethen *group_patterns* like: [ansible] group_patterns = ["{app_param}-{tier_param}-{dc_param}", "{app_param}-{tier_param}", "{app_param}", "{subnet_name}-{provision_method}"]would put the host into the additional Ansible groups: - myapp-webtier-datacenter1 - myapp-webtier - myapp - mysubnet-imageby recursively resolving the hostgroups, getting the parameter keysand values and doing a Python *string.format()* like replacement onit.[1]: http://docs.ansible.com/intro_dynamic_inventory.html

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.