add compass-core conf/ into compass4nfv 47/24847/1
authorHarry Huang <huangxiangyu5@huawei.com>
Thu, 24 Nov 2016 20:08:19 +0000 (04:08 +0800)
committerHarry Huang <huangxiangyu5@huawei.com>
Thu, 24 Nov 2016 20:08:19 +0000 (04:08 +0800)
JIRA: COMPASS-507

1.create deploy/compass_conf/ directory to keep local
compass-core conf/ files. build.sh will add it into
compass.iso

2.adjust conf files to support congress

Change-Id: I91dde6f62f2385d1289a5cf9a39eafce945a1bc7
Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
244 files changed:
build.sh
deploy/compass_conf/adapter/ansible_openstack_juno.conf [new file with mode: 0755]
deploy/compass_conf/adapter/ansible_openstack_kilo.conf [new file with mode: 0755]
deploy/compass_conf/adapter/ansible_openstack_liberty.conf [new file with mode: 0755]
deploy/compass_conf/adapter/ansible_openstack_mitaka.conf [new file with mode: 0755]
deploy/compass_conf/adapter/ansible_openstack_mitaka_xenial.conf [new file with mode: 0755]
deploy/compass_conf/adapter/ansible_openstack_newton_xenial.conf [new file with mode: 0755]
deploy/compass_conf/adapter/ansible_openstack_osp9.conf [new file with mode: 0755]
deploy/compass_conf/adapter/ceph.conf [new file with mode: 0755]
deploy/compass_conf/adapter/general.conf [new file with mode: 0755]
deploy/compass_conf/adapter/openstack.conf [new file with mode: 0755]
deploy/compass_conf/adapter/os_only.conf [new file with mode: 0755]
deploy/compass_conf/celeryconfig [new file with mode: 0755]
deploy/compass_conf/distributed_system/ceph.conf [new file with mode: 0755]
deploy/compass_conf/distributed_system/general.conf [new file with mode: 0755]
deploy/compass_conf/distributed_system/openstack.conf [new file with mode: 0755]
deploy/compass_conf/distributed_system/openstack_ceph.conf [new file with mode: 0755]
deploy/compass_conf/flavor/openstack_juno_ansible.conf [new file with mode: 0755]
deploy/compass_conf/flavor/openstack_kilo_ansible.conf [new file with mode: 0755]
deploy/compass_conf/flavor/openstack_liberty_ansible.conf [new file with mode: 0755]
deploy/compass_conf/flavor/openstack_mitaka.conf [new file with mode: 0755]
deploy/compass_conf/flavor/openstack_mitaka_xenial.conf [new file with mode: 0755]
deploy/compass_conf/flavor/openstack_newton_xenial.conf [new file with mode: 0755]
deploy/compass_conf/flavor/openstack_osp9.conf [new file with mode: 0755]
deploy/compass_conf/flavor_field/general.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-juno.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-kilo.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-liberty.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-mitaka.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-mitaka_xenial.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-newton_xenial.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/allinone.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/ha-multinodes.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/multinodes.conf [new file with mode: 0755]
deploy/compass_conf/flavor_mapping/single-contoller-multi-compute.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-juno.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-kilo.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-liberty.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-mitaka.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-mitaka_xenial.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-newton_xenial.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-osp9.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/HA-multinodes.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/allinone.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/multinodes.conf [new file with mode: 0755]
deploy/compass_conf/flavor_metadata/single-contoller-multi-compute.conf [new file with mode: 0755]
deploy/compass_conf/machine_list/machine_list.conf [new file with mode: 0755]
deploy/compass_conf/os/centos.conf [new file with mode: 0755]
deploy/compass_conf/os/centos6.5.conf [new file with mode: 0755]
deploy/compass_conf/os/centos6.6.conf [new file with mode: 0755]
deploy/compass_conf/os/centos7.0.conf [new file with mode: 0755]
deploy/compass_conf/os/centos7.2.conf [new file with mode: 0755]
deploy/compass_conf/os/general.conf [new file with mode: 0755]
deploy/compass_conf/os/rhel7.2.conf [new file with mode: 0755]
deploy/compass_conf/os/sles11sp3.conf [new file with mode: 0755]
deploy/compass_conf/os/suse.conf [new file with mode: 0755]
deploy/compass_conf/os/ubuntu.conf [new file with mode: 0755]
deploy/compass_conf/os/ubuntu12.04.conf [new file with mode: 0755]
deploy/compass_conf/os/ubuntu14.04.3.conf [new file with mode: 0755]
deploy/compass_conf/os/ubuntu14.04.conf [new file with mode: 0755]
deploy/compass_conf/os/ubuntu16.04.conf [new file with mode: 0755]
deploy/compass_conf/os/uvp11sp3.conf [new file with mode: 0755]
deploy/compass_conf/os_field/dns.conf [new file with mode: 0755]
deploy/compass_conf/os_field/domain.conf [new file with mode: 0755]
deploy/compass_conf/os_field/gateway.conf [new file with mode: 0755]
deploy/compass_conf/os_field/general.conf [new file with mode: 0755]
deploy/compass_conf/os_field/general_list.conf [new file with mode: 0755]
deploy/compass_conf/os_field/ip.conf [new file with mode: 0755]
deploy/compass_conf/os_field/ip_list.conf [new file with mode: 0755]
deploy/compass_conf/os_field/netmask.conf [new file with mode: 0755]
deploy/compass_conf/os_field/network.conf [new file with mode: 0755]
deploy/compass_conf/os_field/password.conf [new file with mode: 0755]
deploy/compass_conf/os_field/percentage.conf [new file with mode: 0755]
deploy/compass_conf/os_field/size.conf [new file with mode: 0755]
deploy/compass_conf/os_field/string.conf [new file with mode: 0755]
deploy/compass_conf/os_field/url.conf [new file with mode: 0755]
deploy/compass_conf/os_field/username.conf [new file with mode: 0755]
deploy/compass_conf/os_installer/cobbler.conf [new file with mode: 0755]
deploy/compass_conf/os_mapping/os_mapping.conf [new file with mode: 0755]
deploy/compass_conf/os_metadata/general.conf [new file with mode: 0755]
deploy/compass_conf/package_field/anytype.conf [new file with mode: 0755]
deploy/compass_conf/package_field/dns.conf [new file with mode: 0755]
deploy/compass_conf/package_field/gateway.conf [new file with mode: 0755]
deploy/compass_conf/package_field/general.conf [new file with mode: 0755]
deploy/compass_conf/package_field/general_list.conf [new file with mode: 0755]
deploy/compass_conf/package_field/integer.conf [new file with mode: 0755]
deploy/compass_conf/package_field/ip.conf [new file with mode: 0755]
deploy/compass_conf/package_field/netmask.conf [new file with mode: 0755]
deploy/compass_conf/package_field/network.conf [new file with mode: 0755]
deploy/compass_conf/package_field/password.conf [new file with mode: 0755]
deploy/compass_conf/package_field/percentage.conf [new file with mode: 0755]
deploy/compass_conf/package_field/roles.conf [new file with mode: 0755]
deploy/compass_conf/package_field/size.conf [new file with mode: 0755]
deploy/compass_conf/package_field/username.conf [new file with mode: 0755]
deploy/compass_conf/package_installer/ansible-juno.conf [new file with mode: 0755]
deploy/compass_conf/package_installer/ansible-kilo.conf [new file with mode: 0755]
deploy/compass_conf/package_installer/ansible-liberty.conf [new file with mode: 0755]
deploy/compass_conf/package_installer/ansible-mitaka.conf [new file with mode: 0755]
deploy/compass_conf/package_installer/ansible-mitaka_xenial.conf [new file with mode: 0755]
deploy/compass_conf/package_installer/ansible-newton_xenial.conf [new file with mode: 0755]
deploy/compass_conf/package_installer/ansible-osp9.conf [new file with mode: 0755]
deploy/compass_conf/package_metadata/openstack.conf [new file with mode: 0755]
deploy/compass_conf/progress_calculator/progress_calculator.conf [new file with mode: 0755]
deploy/compass_conf/role/openstack_juno_ansible.conf [new file with mode: 0755]
deploy/compass_conf/role/openstack_kilo_ansible.conf [new file with mode: 0755]
deploy/compass_conf/role/openstack_liberty_ansible.conf [new file with mode: 0755]
deploy/compass_conf/role/openstack_mitaka_ansible.conf [new file with mode: 0755]
deploy/compass_conf/role/openstack_mitaka_xenial_ansible.conf [new file with mode: 0755]
deploy/compass_conf/role/openstack_newton_xenial_ansible.conf [new file with mode: 0755]
deploy/compass_conf/role/openstack_osp9_ansible.conf [new file with mode: 0755]
deploy/compass_conf/setting [new file with mode: 0755]
deploy/compass_conf/switch_list/switch_list.conf [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/HA-ansible-multinodes.tmplr [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/allinone.tmplr [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/multinodes.tmplr [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/single-controller.tmplr [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/HA-ansible-multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/allinone.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/multinodes.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/single-controller.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/CentOS-6.5-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/CentOS-6.6-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/CentOS-7-Minimal-1511-x86_64/profile.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/CentOS-7-Minimal-1511-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/CentOS-7.0-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/Ubuntu-12.04-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/Ubuntu-14.04-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/rhel-server-7.2-x86_64/profile.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/rhel-server-7.2-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/sles-11sp3-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/ubuntu-14.04.3-server-x86_64/profile.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/ubuntu-14.04.3-server-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/ubuntu-16.04-server-x86_64/profile.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/ubuntu-16.04-server-x86_64/system.tmpl [new file with mode: 0755]
deploy/compass_conf/templates/cobbler/uvp-11sp3-x86_64/system.tmpl [new file with mode: 0755]
deploy/conf/base.conf

index fa3e01e..94a8e94 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -187,6 +187,7 @@ function copy_file()
     done
 
     cp $COMPASS_PATH/deploy/adapters $new/compass/compass-adapters -rf
+    cp $COMPASS_PATH/deploy/compass_conf/* $new/compass/compass-core/conf -rf
 
     tar -zxvf $CACHE_DIR/`basename $PIP_REPO` -C $new/
     tar -zxvf $CACHE_DIR/`basename $PIP_OPENSTACK_REPO` -C $new/
diff --git a/deploy/compass_conf/adapter/ansible_openstack_juno.conf b/deploy/compass_conf/adapter/ansible_openstack_juno.conf
new file mode 100755 (executable)
index 0000000..6d36cd5
--- /dev/null
@@ -0,0 +1,7 @@
+NAME = 'openstack_juno'
+DISPLAY_NAME = 'Openstack Juno'
+PARENT = 'openstack'
+PACKAGE_INSTALLER = 'ansible_installer_juno'
+OS_INSTALLER = 'cobbler'
+SUPPORTED_OS_PATTERNS = ['(?i)ubuntu-14\.04.*', '(?i)ubuntu-14\.04\.3.*', '(?i)CentOS-7.*15.*']
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/adapter/ansible_openstack_kilo.conf b/deploy/compass_conf/adapter/ansible_openstack_kilo.conf
new file mode 100755 (executable)
index 0000000..943453a
--- /dev/null
@@ -0,0 +1,7 @@
+NAME = 'openstack_kilo'
+DISPLAY_NAME = 'Openstack kilo'
+PARENT = 'openstack'
+PACKAGE_INSTALLER = 'ansible_installer_kilo'
+OS_INSTALLER = 'cobbler'
+SUPPORTED_OS_PATTERNS = ['(?i)ubuntu-14\.04.*', '(?i)ubuntu-14\.04\.3.*', '(?i)CentOS-7.*15.*']
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/adapter/ansible_openstack_liberty.conf b/deploy/compass_conf/adapter/ansible_openstack_liberty.conf
new file mode 100755 (executable)
index 0000000..d181d1c
--- /dev/null
@@ -0,0 +1,7 @@
+NAME = 'openstack_liberty'
+DISPLAY_NAME = 'Openstack Liberty'
+PARENT = 'openstack'
+PACKAGE_INSTALLER = 'ansible_installer_liberty'
+OS_INSTALLER = 'cobbler'
+SUPPORTED_OS_PATTERNS = ['(?i)ubuntu-14\.04.*', '(?i)ubuntu-14\.04\.3.*', '(?i)CentOS-7.*15.*']
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/adapter/ansible_openstack_mitaka.conf b/deploy/compass_conf/adapter/ansible_openstack_mitaka.conf
new file mode 100755 (executable)
index 0000000..0e53829
--- /dev/null
@@ -0,0 +1,7 @@
+NAME = 'openstack_mitaka'
+DISPLAY_NAME = 'Openstack Mitaka'
+PARENT = 'openstack'
+PACKAGE_INSTALLER = 'ansible_installer_mitaka'
+OS_INSTALLER = 'cobbler'
+SUPPORTED_OS_PATTERNS = ['(?i)ubuntu-14\.04.*', '(?i)ubuntu-14\.04\.3.*', '(?i)ubuntu-16\.04', '(?i)CentOS-7.*15.*']
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/adapter/ansible_openstack_mitaka_xenial.conf b/deploy/compass_conf/adapter/ansible_openstack_mitaka_xenial.conf
new file mode 100755 (executable)
index 0000000..691ce93
--- /dev/null
@@ -0,0 +1,7 @@
+NAME = 'openstack_mitaka_xenial'
+DISPLAY_NAME = 'Openstack Mitaka Xenial'
+PARENT = 'openstack'
+PACKAGE_INSTALLER = 'ansible_installer_mitaka_xenial'
+OS_INSTALLER = 'cobbler'
+SUPPORTED_OS_PATTERNS = ['(?i)ubuntu-14\.04.*', '(?i)ubuntu-14\.04\.3.*', '(?i)ubuntu-16\.04', '(?i)CentOS-7.*15.*']
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/adapter/ansible_openstack_newton_xenial.conf b/deploy/compass_conf/adapter/ansible_openstack_newton_xenial.conf
new file mode 100755 (executable)
index 0000000..cd8d2de
--- /dev/null
@@ -0,0 +1,7 @@
+NAME = 'openstack_newton_xenial'
+DISPLAY_NAME = 'Openstack Mitaka Xenial'
+PARENT = 'openstack'
+PACKAGE_INSTALLER = 'ansible_installer_newton_xenial'
+OS_INSTALLER = 'cobbler'
+SUPPORTED_OS_PATTERNS = ['(?i)ubuntu-14\.04.*', '(?i)ubuntu-14\.04\.3.*', '(?i)ubuntu-16\.04', '(?i)CentOS-7.*15.*']
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/adapter/ansible_openstack_osp9.conf b/deploy/compass_conf/adapter/ansible_openstack_osp9.conf
new file mode 100755 (executable)
index 0000000..81c00a0
--- /dev/null
@@ -0,0 +1,7 @@
+NAME = 'openstack_osp9'
+DISPLAY_NAME = 'RedHat OSP 9'
+PARENT = 'openstack'
+PACKAGE_INSTALLER = 'ansible_installer_osp9'
+OS_INSTALLER = 'cobbler'
+SUPPORTED_OS_PATTERNS = ['(?i)rhel-server-7\.2.*']
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/adapter/ceph.conf b/deploy/compass_conf/adapter/ceph.conf
new file mode 100755 (executable)
index 0000000..d63ecf1
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'ceph'
+PARENT = 'general'
diff --git a/deploy/compass_conf/adapter/general.conf b/deploy/compass_conf/adapter/general.conf
new file mode 100755 (executable)
index 0000000..4d8cb37
--- /dev/null
@@ -0,0 +1 @@
+NAME = 'general'
diff --git a/deploy/compass_conf/adapter/openstack.conf b/deploy/compass_conf/adapter/openstack.conf
new file mode 100755 (executable)
index 0000000..66bdd8b
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'openstack'
+PARENT = 'general'
diff --git a/deploy/compass_conf/adapter/os_only.conf b/deploy/compass_conf/adapter/os_only.conf
new file mode 100755 (executable)
index 0000000..253ff84
--- /dev/null
@@ -0,0 +1,5 @@
+NAME = 'os_only'
+PARENT = 'general'
+OS_INSTALLER = 'cobbler'
+SUPPORTED_OS_PATTERNS = ['(?i)centos.*', '(?i)ubuntu.*', '(?i)sles.*', '(?i)uvp.*']
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/celeryconfig b/deploy/compass_conf/celeryconfig
new file mode 100755 (executable)
index 0000000..f491127
--- /dev/null
@@ -0,0 +1,9 @@
+## Celery related setting: this is the default setting once we install RabbitMQ
+
+CELERY_RESULT_BACKEND ="amqp://"
+
+BROKER_URL = "amqp://guest:guest@localhost:5672//"
+
+CELERY_IMPORTS=("compass.tasks.tasks",)
+CELERY_ACCEPT_CONTENT = ['pickle', 'json', 'msgpack', 'yaml']
+C_FORCE_ROOT = 1
diff --git a/deploy/compass_conf/distributed_system/ceph.conf b/deploy/compass_conf/distributed_system/ceph.conf
new file mode 100755 (executable)
index 0000000..674b824
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'ceph'
+PARENT = 'general'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/distributed_system/general.conf b/deploy/compass_conf/distributed_system/general.conf
new file mode 100755 (executable)
index 0000000..655beb0
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'general'
+PARENT = ''
diff --git a/deploy/compass_conf/distributed_system/openstack.conf b/deploy/compass_conf/distributed_system/openstack.conf
new file mode 100755 (executable)
index 0000000..d4a14a2
--- /dev/null
@@ -0,0 +1,3 @@
+NAME ='openstack'
+PARENT = 'general'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/distributed_system/openstack_ceph.conf b/deploy/compass_conf/distributed_system/openstack_ceph.conf
new file mode 100755 (executable)
index 0000000..1f59eb8
--- /dev/null
@@ -0,0 +1,3 @@
+NAME ='openstack_ceph'
+PARENT = 'general'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/flavor/openstack_juno_ansible.conf b/deploy/compass_conf/flavor/openstack_juno_ansible.conf
new file mode 100755 (executable)
index 0000000..53724b5
--- /dev/null
@@ -0,0 +1,32 @@
+ADAPTER_NAME = 'openstack_juno'
+FLAVORS = [{
+    'flavor': 'allinone',
+    'display_name': 'All-In-One',
+    'template': 'allinone.tmpl',
+    'roles': ['allinone-compute'],
+}, {
+    'flavor': 'single-controller',
+    'display_name': 'Single Controller',
+    'template': 'single-controller.tmpl',
+    'roles': [
+        'controller', 'compute', 'network', 'storage', 'odl', 'onos'
+    ],
+}, {
+    'flavor': 'multinodes',
+    'display_name': 'Multi-nodes',
+    'template': 'multinodes.tmpl',
+    'roles': [
+        'compute-controller', 'compute-worker', 'network-server',
+        'network-worker', 'database', 'messaging', 'image', 'odl',
+        'dashboard', 'identity', 'storage-controller', 'storage-volume'
+    ],
+}, {
+    'flavor': 'HA-ansible-multinodes-juno',
+    'display_name': 'HA-ansible-multinodes-juno',
+    'template': 'HA-ansible-multinodes.tmpl',
+    'roles': [
+        'controller', 'compute', 'ha', 'odl', 'onos', 'ceph', 'ceph-adm', 'ceph-mon', 'ceph-osd', 'sec-patch', 'ceph-osd-node'
+    ],
+}]
+
+
diff --git a/deploy/compass_conf/flavor/openstack_kilo_ansible.conf b/deploy/compass_conf/flavor/openstack_kilo_ansible.conf
new file mode 100755 (executable)
index 0000000..d8d93fe
--- /dev/null
@@ -0,0 +1,32 @@
+ADAPTER_NAME = 'openstack_kilo'
+FLAVORS = [{
+    'flavor': 'allinone',
+    'display_name': 'All-In-One',
+    'template': 'allinone.tmpl',
+    'roles': ['allinone-compute'],
+}, {
+    'flavor': 'single-controller',
+    'display_name': 'Single Controller',
+    'template': 'single-controller.tmpl',
+    'roles': [
+        'controller', 'compute', 'network', 'storage', 'odl', 'onos'
+    ],
+}, {
+    'flavor': 'multinodes',
+    'display_name': 'Multi-nodes',
+    'template': 'multinodes.tmpl',
+    'roles': [
+        'compute-controller', 'compute-worker', 'network-server',
+        'network-worker', 'database', 'messaging', 'image', 'odl',
+        'dashboard', 'identity', 'storage-controller', 'storage-volume'
+    ],
+}, {
+    'flavor': 'HA-ansible-multinodes-kilo',
+    'display_name': 'HA-ansible-multinodes-kilo',
+    'template': 'HA-ansible-multinodes.tmpl',
+    'roles': [
+        'controller', 'compute', 'ha', 'odl', 'onos', 'ceph', 'ceph-adm', 'ceph-mon', 'ceph-osd'
+    ],
+}]
+
+
diff --git a/deploy/compass_conf/flavor/openstack_liberty_ansible.conf b/deploy/compass_conf/flavor/openstack_liberty_ansible.conf
new file mode 100755 (executable)
index 0000000..21aaa51
--- /dev/null
@@ -0,0 +1,32 @@
+ADAPTER_NAME = 'openstack_liberty'
+FLAVORS = [{
+    'flavor': 'allinone',
+    'display_name': 'All-In-One',
+    'template': 'allinone.tmpl',
+    'roles': ['allinone-compute'],
+}, {
+    'flavor': 'single-controller',
+    'display_name': 'Single Controller',
+    'template': 'single-controller.tmpl',
+    'roles': [
+        'controller', 'compute', 'network', 'storage', 'odl', 'onos'
+    ],
+}, {
+    'flavor': 'multinodes',
+    'display_name': 'Multi-nodes',
+    'template': 'multinodes.tmpl',
+    'roles': [
+        'compute-controller', 'compute-worker', 'network-server',
+        'network-worker', 'database', 'messaging', 'image', 'odl',
+        'dashboard', 'identity', 'storage-controller', 'storage-volume'
+    ],
+}, {
+    'flavor': 'HA-ansible-multinodes-liberty',
+    'display_name': 'HA-ansible-multinodes-liberty',
+    'template': 'HA-ansible-multinodes.tmpl',
+    'roles': [
+        'controller', 'compute', 'ha', 'odl', 'onos', 'opencontrail', 'ceph', 'ceph-adm', 'ceph-mon', 'ceph-osd', 'sec-patch', 'ceph-osd-node'
+    ],
+}]
+
+
diff --git a/deploy/compass_conf/flavor/openstack_mitaka.conf b/deploy/compass_conf/flavor/openstack_mitaka.conf
new file mode 100755 (executable)
index 0000000..ffa2e2b
--- /dev/null
@@ -0,0 +1,32 @@
+ADAPTER_NAME = 'openstack_mitaka'
+FLAVORS = [{
+    'flavor': 'allinone',
+    'display_name': 'All-In-One',
+    'template': 'allinone.tmpl',
+    'roles': ['allinone-compute'],
+}, {
+    'flavor': 'single-controller',
+    'display_name': 'Single Controller',
+    'template': 'single-controller.tmpl',
+    'roles': [
+        'controller', 'compute', 'network', 'storage', 'odl', 'onos'
+    ],
+}, {
+    'flavor': 'multinodes',
+    'display_name': 'Multi-nodes',
+    'template': 'multinodes.tmpl',
+    'roles': [
+        'compute-controller', 'compute-worker', 'network-server',
+        'network-worker', 'database', 'messaging', 'image', 'odl',
+        'dashboard', 'identity', 'storage-controller', 'storage-volume'
+    ],
+}, {
+    'flavor': 'HA-ansible-multinodes-mitaka',
+    'display_name': 'HA-ansible-multinodes-mitaka',
+    'template': 'HA-ansible-multinodes.tmpl',
+    'roles': [
+        'controller', 'compute', 'ha', 'odl', 'onos', 'opencontrail', 'ceph', 'ceph-adm', 'ceph-mon', 'ceph-osd', 'sec-patch', 'ceph-osd-node'
+    ],
+}]
+
+
diff --git a/deploy/compass_conf/flavor/openstack_mitaka_xenial.conf b/deploy/compass_conf/flavor/openstack_mitaka_xenial.conf
new file mode 100755 (executable)
index 0000000..9f3bf0f
--- /dev/null
@@ -0,0 +1,32 @@
+ADAPTER_NAME = 'openstack_mitaka_xenial'
+FLAVORS = [{
+    'flavor': 'allinone',
+    'display_name': 'All-In-One',
+    'template': 'allinone.tmpl',
+    'roles': ['allinone-compute'],
+}, {
+    'flavor': 'single-controller',
+    'display_name': 'Single Controller',
+    'template': 'single-controller.tmpl',
+    'roles': [
+        'controller', 'compute', 'network', 'storage', 'odl', 'onos'
+    ],
+}, {
+    'flavor': 'multinodes',
+    'display_name': 'Multi-nodes',
+    'template': 'multinodes.tmpl',
+    'roles': [
+        'compute-controller', 'compute-worker', 'network-server',
+        'network-worker', 'database', 'messaging', 'image', 'odl',
+        'dashboard', 'identity', 'storage-controller', 'storage-volume'
+    ],
+}, {
+    'flavor': 'HA-ansible-multinodes-mitaka_xenial',
+    'display_name': 'HA-ansible-multinodes-mitaka_xenial',
+    'template': 'HA-ansible-multinodes.tmpl',
+    'roles': [
+        'controller', 'compute', 'ha', 'odl', 'onos', 'opencontrail', 'ceph', 'ceph-adm', 'ceph-mon', 'ceph-osd', 'sec-patch', 'ceph-osd-node'
+    ],
+}]
+
+
diff --git a/deploy/compass_conf/flavor/openstack_newton_xenial.conf b/deploy/compass_conf/flavor/openstack_newton_xenial.conf
new file mode 100755 (executable)
index 0000000..3566ace
--- /dev/null
@@ -0,0 +1,32 @@
+ADAPTER_NAME = 'openstack_newton_xenial'
+FLAVORS = [{
+    'flavor': 'allinone',
+    'display_name': 'All-In-One',
+    'template': 'allinone.tmpl',
+    'roles': ['allinone-compute'],
+}, {
+    'flavor': 'single-controller',
+    'display_name': 'Single Controller',
+    'template': 'single-controller.tmpl',
+    'roles': [
+        'controller', 'compute', 'network', 'storage', 'odl', 'onos'
+    ],
+}, {
+    'flavor': 'multinodes',
+    'display_name': 'Multi-nodes',
+    'template': 'multinodes.tmpl',
+    'roles': [
+        'compute-controller', 'compute-worker', 'network-server',
+        'network-worker', 'database', 'messaging', 'image', 'odl',
+        'dashboard', 'identity', 'storage-controller', 'storage-volume'
+    ],
+}, {
+    'flavor': 'HA-ansible-multinodes-newton_xenial',
+    'display_name': 'HA-ansible-multinodes-newton_xenial',
+    'template': 'HA-ansible-multinodes.tmpl',
+    'roles': [
+        'controller', 'compute', 'ha', 'odl', 'onos', 'opencontrail', 'ceph', 'ceph-adm', 'ceph-mon', 'ceph-osd', 'sec-patch', 'ceph-osd-node'
+    ],
+}]
+
+
diff --git a/deploy/compass_conf/flavor/openstack_osp9.conf b/deploy/compass_conf/flavor/openstack_osp9.conf
new file mode 100755 (executable)
index 0000000..b627c6f
--- /dev/null
@@ -0,0 +1,32 @@
+ADAPTER_NAME = 'openstack_osp9'
+FLAVORS = [{
+    'flavor': 'allinone',
+    'display_name': 'All-In-One',
+    'template': 'allinone.tmpl',
+    'roles': ['allinone-compute'],
+}, {
+    'flavor': 'single-controller',
+    'display_name': 'Single Controller',
+    'template': 'single-controller.tmpl',
+    'roles': [
+        'controller', 'compute', 'network', 'storage', 'odl', 'onos'
+    ],
+}, {
+    'flavor': 'multinodes',
+    'display_name': 'Multi-nodes',
+    'template': 'multinodes.tmpl',
+    'roles': [
+        'compute-controller', 'compute-worker', 'network-server',
+        'network-worker', 'database', 'messaging', 'image', 'odl',
+        'dashboard', 'identity', 'storage-controller', 'storage-volume'
+    ],
+}, {
+    'flavor': 'HA-ansible-multinodes-osp9',
+    'display_name': 'HA-ansible-multinodes-osp9',
+    'template': 'HA-ansible-multinodes.tmpl',
+    'roles': [
+        'controller', 'compute', 'ha', 'odl', 'onos', 'opencontrail', 'ceph', 'ceph-adm', 'ceph-mon', 'ceph-osd', 'sec-patch', 'ceph-osd-node'
+    ],
+}]
+
+
diff --git a/deploy/compass_conf/flavor_field/general.conf b/deploy/compass_conf/flavor_field/general.conf
new file mode 100755 (executable)
index 0000000..4d8cb37
--- /dev/null
@@ -0,0 +1 @@
+NAME = 'general'
diff --git a/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-juno.conf b/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-juno.conf
new file mode 100755 (executable)
index 0000000..ec69a41
--- /dev/null
@@ -0,0 +1,112 @@
+ADAPTER = 'openstack_juno'
+FLAVOR = 'HA-ansible-multinodes-juno'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "network": {
+                    "username": "network",
+                    "password": "network"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                },
+                "heat": {
+                    "username": "heat",
+                    "password": "heat"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "demo": {
+                    "username": "demo",
+                    "password": "demo"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "heat": {
+                   "username": "heat",
+                   "password": "heat"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-kilo.conf b/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-kilo.conf
new file mode 100755 (executable)
index 0000000..20be023
--- /dev/null
@@ -0,0 +1,104 @@
+ADAPTER = 'openstack_kilo'
+FLAVOR = 'HA-ansible-multinodes-kilo'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "network": {
+                    "username": "neutron",
+                    "password": "neutron"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "demo": {
+                    "username": "demo",
+                    "password": "demo"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-liberty.conf b/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-liberty.conf
new file mode 100755 (executable)
index 0000000..87843ed
--- /dev/null
@@ -0,0 +1,112 @@
+ADAPTER = 'openstack_liberty'
+FLAVOR = 'HA-ansible-multinodes-liberty'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "network": {
+                    "username": "neutron",
+                    "password": "neutron"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                },
+                "heat": {
+                    "username": "heat",
+                    "password": "heat"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "demo": {
+                    "username": "demo",
+                    "password": "demo"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "heat": {
+                   "username": "heat",
+                   "password": "heat"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-mitaka.conf b/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-mitaka.conf
new file mode 100755 (executable)
index 0000000..5339be4
--- /dev/null
@@ -0,0 +1,124 @@
+ADAPTER = 'openstack_mitaka'
+FLAVOR = 'HA-ansible-multinodes-mitaka'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "alarming": {
+                    "username": "aodh",
+                    "password": "aodh"
+                },
+                "network": {
+                    "username": "neutron",
+                    "password": "neutron"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                },
+                "heat": {
+                    "username": "heat",
+                    "password": "heat"
+                },
+                "policy": {
+                    "username": "congress",
+                    "password": "congress"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "demo": {
+                    "username": "demo",
+                    "password": "demo"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "alarming": {
+                    "username": "aodh",
+                    "password": "aodh"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "heat": {
+                   "username": "heat",
+                   "password": "heat"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-mitaka_xenial.conf b/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-mitaka_xenial.conf
new file mode 100755 (executable)
index 0000000..3719573
--- /dev/null
@@ -0,0 +1,120 @@
+ADAPTER = 'openstack_mitaka_xenial'
+FLAVOR = 'HA-ansible-multinodes-mitaka_xenial'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "alarming": {
+                    "username": "aodh",
+                    "password": "aodh"
+                },
+                "network": {
+                    "username": "neutron",
+                    "password": "neutron"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                },
+                "heat": {
+                    "username": "heat",
+                    "password": "heat"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "demo": {
+                    "username": "demo",
+                    "password": "demo"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "alarming": {
+                    "username": "aodh",
+                    "password": "aodh"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "heat": {
+                   "username": "heat",
+                   "password": "heat"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-newton_xenial.conf b/deploy/compass_conf/flavor_mapping/HA-ansible-multinodes-newton_xenial.conf
new file mode 100755 (executable)
index 0000000..5095b20
--- /dev/null
@@ -0,0 +1,120 @@
+ADAPTER = 'openstack_newton_xenial'
+FLAVOR = 'HA-ansible-multinodes-newton_xenial'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "alarming": {
+                    "username": "aodh",
+                    "password": "aodh"
+                },
+                "network": {
+                    "username": "neutron",
+                    "password": "neutron"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                },
+                "heat": {
+                    "username": "heat",
+                    "password": "heat"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "demo": {
+                    "username": "demo",
+                    "password": "demo"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "alarming": {
+                    "username": "aodh",
+                    "password": "aodh"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "heat": {
+                   "username": "heat",
+                   "password": "heat"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/allinone.conf b/deploy/compass_conf/flavor_mapping/allinone.conf
new file mode 100755 (executable)
index 0000000..4752a80
--- /dev/null
@@ -0,0 +1,132 @@
+ADAPTER = 'openstack-icehouse'
+FLAVOR = 'allinone'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+        "neutron_config": {
+            "accordion_heading": "Neutron Configurations",
+            "data_structure": "form",
+            "category": "neutron_config",
+            "form_name": "neutronForm",
+            "data": {
+                "openvswitch": {
+                    "tenant_network_type": {
+                        "label": "Tenant Network Type",
+                        "input_type": "dropdown",
+                        "mapped_key": [
+                            "name", "is_required", "options", "default_value"
+                        ],
+                        "content_data": {
+                            "gre": [{
+                                "label": "Tunnel ID Ranges",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "tunnel_id_ranges",
+                                "hint": "1:1000",
+                            }],
+                            "vlan": [{
+                                "label": "Network Vlan Ranges",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "network_vlan_ranges",
+                                "hint": "physnet1:2700:2999"
+                            }, {
+                                "label": "Bridge Mapping",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "bridge_mappings",
+                                "hint": "physnet1:br-eth1"
+                            }]
+                        }
+                    }
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/ha-multinodes.conf b/deploy/compass_conf/flavor_mapping/ha-multinodes.conf
new file mode 100755 (executable)
index 0000000..34d76be
--- /dev/null
@@ -0,0 +1,147 @@
+ADAPTER = 'openstack-icehouse'
+FLAVOR = 'HA-multinodes'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+        "neutron_config": {
+            "accordion_heading": "Neutron Configurations",
+            "data_structure": "form",
+            "category": "neutron_config",
+            "form_name": "neutronForm",
+            "data": {
+                "openvswitch": {
+                    "tenant_network_type": {
+                        "label": "Tenant Network Type",
+                        "input_type": "dropdown",
+                        "mapped_key": [
+                            "name", "is_required", "options", "default_value"
+                        ],
+                        "content_data": {
+                            "gre": [{
+                                "label": "Tunnel ID Ranges",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "tunnel_id_ranges",
+                                "hint": "1:1000",
+                            }],
+                            "vlan": [{
+                                "label": "Network Vlan Ranges",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "network_vlan_ranges",
+                                "hint": "physnet1:2700:2999"
+                            }, {
+                                "label": "Bridge Mapping",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "bridge_mappings",
+                                "hint": "physnet1:br-eth1"
+                            }]
+                        }
+                    }
+                }
+            }
+        }
+    },{
+        "ha_proxy": {
+            "accordion_heading": "High Availability Configurations",
+            "data_structure": "form",
+            "category": "ha_proxy",
+            "form_name": "haForm",
+            "data": {
+                "vip": {
+                    "label": "VIP",
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ]
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/multinodes.conf b/deploy/compass_conf/flavor_mapping/multinodes.conf
new file mode 100755 (executable)
index 0000000..bed52f0
--- /dev/null
@@ -0,0 +1,132 @@
+ADAPTER = 'openstack-icehouse'
+FLAVOR = 'multinodes'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+        "neutron_config": {
+            "accordion_heading": "Neutron Configurations",
+            "data_structure": "form",
+            "category": "neutron_config",
+            "form_name": "neutronForm",
+            "data": {
+                "openvswitch": {
+                    "tenant_network_type": {
+                        "label": "Tenant Network Type",
+                        "input_type": "dropdown",
+                        "mapped_key": [
+                            "name", "is_required", "options", "default_value"
+                        ],
+                        "content_data": {
+                            "gre": [{
+                                "label": "Tunnel ID Ranges",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "tunnel_id_ranges",
+                                "hint": "1:1000",
+                            }],
+                            "vlan": [{
+                                "label": "Network Vlan Ranges",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "network_vlan_ranges",
+                                "hint": "physnet1:2700:2999"
+                            }, {
+                                "label": "Bridge Mapping",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "bridge_mappings",
+                                "hint": "physnet1:br-eth1"
+                            }]
+                        }
+                    }
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_mapping/single-contoller-multi-compute.conf b/deploy/compass_conf/flavor_mapping/single-contoller-multi-compute.conf
new file mode 100755 (executable)
index 0000000..c7bbff7
--- /dev/null
@@ -0,0 +1,132 @@
+ADAPTER = 'openstack-icehouse'
+FLAVOR = 'single-contoller-multi-compute'
+CONFIG_MAPPING = {
+    "mapped_name": "flavor_config",
+    "mapped_children": [{
+        "security": {
+            "accordion_heading": "OpenStack Database and Queue Credentials",
+            "category": "service_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config": {
+                "rabbitmq": {
+                    "username": "guest",
+                    "password": "guest"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "identity": {
+                    "username": "keystone",
+                    "password": "keystone"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "mysql": {
+                    "username": "root",
+                    "password": "root"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+       "security": {
+            "accordion_heading": "OpenStack Keystone User Credentials",
+            "category": "console_credentials",
+            "data_structure": "table",
+            "action": "true",
+            "modifiable_data": ["username", "password"],
+            "table_display_header": ["Service", "UserName", "Password", "Action"],
+            "config":{
+                "admin": {
+                    "username": "admin",
+                    "password": "admin"
+                },
+                "compute": {
+                    "username": "nova",
+                    "password": "nova"
+                },
+                "dashboard": {
+                    "username": "dashboard",
+                    "password": "dashboard"
+                },
+                "image": {
+                    "username": "glance",
+                    "password": "glance"
+                },
+                "metering": {
+                    "username": "ceilometer",
+                    "password": "ceilometer"
+                },
+                "network": {
+                    "username": "quantum",
+                    "password": "quantum"
+                },
+                "object-store": {
+                    "username": "swift",
+                    "password": "swift"
+                },
+                "volume": {
+                    "username": "cinder",
+                    "password": "cinder"
+                }
+            }
+        }
+    },{
+        "neutron_config": {
+            "accordion_heading": "Neutron Configurations",
+            "data_structure": "form",
+            "category": "neutron_config",
+            "form_name": "neutronForm",
+            "data": {
+                "openvswitch": {
+                    "tenant_network_type": {
+                        "label": "Tenant Network Type",
+                        "input_type": "dropdown",
+                        "mapped_key": [
+                            "name", "is_required", "options"
+                        ],
+                        "content_data": {
+                            "gre": [{
+                                "label": "Tunnel ID Ranges",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "tunnel_id_ranges",
+                                "hint": "1:1000"
+                            }],
+                            "vlan": [{
+                                "label": "Network Vlan Ranges",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "network_vlan_ranges",
+                                "hint": "physnet1:2700:2999"
+                            }, {
+                                "label": "Bridge Mapping",
+                                "is_required": "true",
+                                "display_type": "dropdown_text_multiple",
+                                "name": "bridge_mappings",
+                                "hint": "physnet1:br-eth1"
+                            }]
+                        }
+                    }
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-juno.conf b/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-juno.conf
new file mode 100755 (executable)
index 0000000..e3ff468
--- /dev/null
@@ -0,0 +1,19 @@
+ADAPTER = 'openstack_juno'
+FLAVOR = 'HA-ansible-multinodes-juno'
+METADATA = {
+    'ha_proxy': {
+        '_self': {
+        },
+        'vip': {
+            '_self': {
+                'is_required': True,
+                'field': 'general',
+                'mapping_to': 'ha_vip'
+            }
+        },
+        'test': {
+            '_self': {
+            },
+        }
+    }
+}
diff --git a/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-kilo.conf b/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-kilo.conf
new file mode 100755 (executable)
index 0000000..c944c0d
--- /dev/null
@@ -0,0 +1,19 @@
+ADAPTER = 'openstack_kilo'
+FLAVOR = 'HA-ansible-multinodes-kilo'
+METADATA = {
+    'ha_proxy': {
+        '_self': {
+        },
+        'vip': {
+            '_self': {
+                'is_required': True,
+                'field': 'general',
+                'mapping_to': 'ha_vip'
+            }
+        },
+        'test': {
+            '_self': {
+            },
+        }
+    }
+}
diff --git a/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-liberty.conf b/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-liberty.conf
new file mode 100755 (executable)
index 0000000..2d1cc7d
--- /dev/null
@@ -0,0 +1,19 @@
+ADAPTER = 'openstack_liberty'
+FLAVOR = 'HA-ansible-multinodes-liberty'
+METADATA = {
+    'ha_proxy': {
+        '_self': {
+        },
+        'vip': {
+            '_self': {
+                'is_required': True,
+                'field': 'general',
+                'mapping_to': 'ha_vip'
+            }
+        },
+        'test': {
+            '_self': {
+            },
+        }
+    }
+}
diff --git a/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-mitaka.conf b/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-mitaka.conf
new file mode 100755 (executable)
index 0000000..1558b51
--- /dev/null
@@ -0,0 +1,19 @@
+ADAPTER = 'openstack_mitaka'
+FLAVOR = 'HA-ansible-multinodes-mitaka'
+METADATA = {
+    'ha_proxy': {
+        '_self': {
+        },
+        'vip': {
+            '_self': {
+                'is_required': True,
+                'field': 'general',
+                'mapping_to': 'ha_vip'
+            }
+        },
+        'test': {
+            '_self': {
+            },
+        }
+    }
+}
diff --git a/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-mitaka_xenial.conf b/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-mitaka_xenial.conf
new file mode 100755 (executable)
index 0000000..e844e16
--- /dev/null
@@ -0,0 +1,19 @@
+ADAPTER = 'openstack_mitaka_xenial'
+FLAVOR = 'HA-ansible-multinodes-mitaka_xenial'
+METADATA = {
+    'ha_proxy': {
+        '_self': {
+        },
+        'vip': {
+            '_self': {
+                'is_required': True,
+                'field': 'general',
+                'mapping_to': 'ha_vip'
+            }
+        },
+        'test': {
+            '_self': {
+            },
+        }
+    }
+}
diff --git a/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-newton_xenial.conf b/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-newton_xenial.conf
new file mode 100755 (executable)
index 0000000..c646657
--- /dev/null
@@ -0,0 +1,19 @@
+ADAPTER = 'openstack_newton_xenial'
+FLAVOR = 'HA-ansible-multinodes-newton_xenial'
+METADATA = {
+    'ha_proxy': {
+        '_self': {
+        },
+        'vip': {
+            '_self': {
+                'is_required': True,
+                'field': 'general',
+                'mapping_to': 'ha_vip'
+            }
+        },
+        'test': {
+            '_self': {
+            },
+        }
+    }
+}
diff --git a/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-osp9.conf b/deploy/compass_conf/flavor_metadata/HA-ansible-multinodes-osp9.conf
new file mode 100755 (executable)
index 0000000..20e9f90
--- /dev/null
@@ -0,0 +1,19 @@
+ADAPTER = 'openstack_osp9'
+FLAVOR = 'HA-ansible-multinodes-osp9'
+METADATA = {
+    'ha_proxy': {
+        '_self': {
+        },
+        'vip': {
+            '_self': {
+                'is_required': True,
+                'field': 'general',
+                'mapping_to': 'ha_vip'
+            }
+        },
+        'test': {
+            '_self': {
+            },
+        }
+    }
+}
diff --git a/deploy/compass_conf/flavor_metadata/HA-multinodes.conf b/deploy/compass_conf/flavor_metadata/HA-multinodes.conf
new file mode 100755 (executable)
index 0000000..c859c93
--- /dev/null
@@ -0,0 +1,19 @@
+ADAPTER = 'openstack_icehouse'
+FLAVOR = 'HA-multinodes'
+METADATA = {
+    'ha_proxy': {
+        '_self': {
+        },
+        'vip': {
+            '_self': {
+                'is_required': True,
+                'field': 'general',
+                'mapping_to': 'ha_vip'
+            }
+        },
+        'test': {
+            '_self': {
+            },
+        }
+    }
+}
diff --git a/deploy/compass_conf/flavor_metadata/allinone.conf b/deploy/compass_conf/flavor_metadata/allinone.conf
new file mode 100755 (executable)
index 0000000..7d248ec
--- /dev/null
@@ -0,0 +1,3 @@
+ADAPTER = 'openstack_icehouse'
+FLAVOR = 'allinone'
+METADATA = {}
diff --git a/deploy/compass_conf/flavor_metadata/multinodes.conf b/deploy/compass_conf/flavor_metadata/multinodes.conf
new file mode 100755 (executable)
index 0000000..7fb835f
--- /dev/null
@@ -0,0 +1,3 @@
+ADAPTER = 'openstack_icehouse'
+FLAVOR = 'multinodes'
+METADATA = {}
diff --git a/deploy/compass_conf/flavor_metadata/single-contoller-multi-compute.conf b/deploy/compass_conf/flavor_metadata/single-contoller-multi-compute.conf
new file mode 100755 (executable)
index 0000000..69faf5d
--- /dev/null
@@ -0,0 +1,3 @@
+ADAPTER = 'openstack_icehouse'
+FLAVOR = 'single-contoller-multi-compute'
+METADATA = {}
diff --git a/deploy/compass_conf/machine_list/machine_list.conf b/deploy/compass_conf/machine_list/machine_list.conf
new file mode 100755 (executable)
index 0000000..a07ce51
--- /dev/null
@@ -0,0 +1,46 @@
+MACHINE_LIST = [
+    {
+        '127.0.0.1': [
+            {
+                'port': '200',
+                'mac': '80:fb:06:35:8c:85',
+                'vlan': 0,
+            },
+            {
+                'port': '201',
+                'mac': '70:7b:e8:75:71:dc',
+                'vlan': 0,
+            },
+            {
+                'port': '202',
+                'mac': '80:fb:06:35:8c:a0',
+                'vlan': 0,
+            },
+            {
+                'port': '203',
+                'mac': '70:7b:e8:75:71:d3',
+                'vlan': 0,
+            },
+            {
+                'port': '204',
+                'mac': '70:7b:e8:75:72:21',
+                'vlan': 0,
+            },
+            {
+                'port': '205',
+                'mac': '70:7b:e8:75:71:37',
+                'vlan': 0,
+            },
+            {
+                'port': '206',
+                'mac': '70:fb:e8:75:71:d6',
+                'vlan': 0,
+            },
+            {
+                'port': '207',
+                'mac': '70:7b:e8:75:71:d9',
+                'vlan': 0,
+            }
+        ]
+    },
+]
diff --git a/deploy/compass_conf/os/centos.conf b/deploy/compass_conf/os/centos.conf
new file mode 100755 (executable)
index 0000000..d67f12a
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'CentOS'
+PARENT = 'general'
diff --git a/deploy/compass_conf/os/centos6.5.conf b/deploy/compass_conf/os/centos6.5.conf
new file mode 100755 (executable)
index 0000000..75d4eb1
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'CentOS-6.5-x86_64'
+PARENT = 'CentOS'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/centos6.6.conf b/deploy/compass_conf/os/centos6.6.conf
new file mode 100755 (executable)
index 0000000..0f07278
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'CentOS-6.6-x86_64'
+PARENT = 'CentOS'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/centos7.0.conf b/deploy/compass_conf/os/centos7.0.conf
new file mode 100755 (executable)
index 0000000..9dcdf75
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'CentOS-7.0-x86_64'
+PARENT = 'CentOS'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/centos7.2.conf b/deploy/compass_conf/os/centos7.2.conf
new file mode 100755 (executable)
index 0000000..9cc8d32
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'CentOS-7-Minimal-1511-x86_64'
+PARENT = 'CentOS'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/general.conf b/deploy/compass_conf/os/general.conf
new file mode 100755 (executable)
index 0000000..655beb0
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'general'
+PARENT = ''
diff --git a/deploy/compass_conf/os/rhel7.2.conf b/deploy/compass_conf/os/rhel7.2.conf
new file mode 100755 (executable)
index 0000000..bcb5f58
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'rhel-server-7.2-x86_64'
+PARENT = 'CentOS'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/sles11sp3.conf b/deploy/compass_conf/os/sles11sp3.conf
new file mode 100755 (executable)
index 0000000..2c1218d
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'sles-11sp3-x86_64'
+PARENT = 'suse'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/suse.conf b/deploy/compass_conf/os/suse.conf
new file mode 100755 (executable)
index 0000000..af891b3
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'suse'
+PARENT = 'general'
diff --git a/deploy/compass_conf/os/ubuntu.conf b/deploy/compass_conf/os/ubuntu.conf
new file mode 100755 (executable)
index 0000000..2207329
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'Ubuntu'
+PARENT = 'general'
diff --git a/deploy/compass_conf/os/ubuntu12.04.conf b/deploy/compass_conf/os/ubuntu12.04.conf
new file mode 100755 (executable)
index 0000000..db81006
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'Ubuntu-12.04-x86_64'
+PARENT = 'Ubuntu'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/ubuntu14.04.3.conf b/deploy/compass_conf/os/ubuntu14.04.3.conf
new file mode 100755 (executable)
index 0000000..54b94a7
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'ubuntu-14.04.3-server-x86_64'
+PARENT = 'Ubuntu'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/ubuntu14.04.conf b/deploy/compass_conf/os/ubuntu14.04.conf
new file mode 100755 (executable)
index 0000000..0fa90fb
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'Ubuntu-14.04-x86_64'
+PARENT = 'Ubuntu'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/ubuntu16.04.conf b/deploy/compass_conf/os/ubuntu16.04.conf
new file mode 100755 (executable)
index 0000000..f360502
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'ubuntu-16.04-server-x86_64'
+PARENT = 'Ubuntu'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os/uvp11sp3.conf b/deploy/compass_conf/os/uvp11sp3.conf
new file mode 100755 (executable)
index 0000000..41a99b1
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'uvp-11sp3-x86_64'
+PARENT = 'suse'
+DEPLOYABLE = True
diff --git a/deploy/compass_conf/os_field/dns.conf b/deploy/compass_conf/os_field/dns.conf
new file mode 100755 (executable)
index 0000000..b97b154
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'dns'
+VALIDATOR = is_valid_dns
diff --git a/deploy/compass_conf/os_field/domain.conf b/deploy/compass_conf/os_field/domain.conf
new file mode 100755 (executable)
index 0000000..fdf7428
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'domain'
+VALIDATOR = is_valid_domain
diff --git a/deploy/compass_conf/os_field/gateway.conf b/deploy/compass_conf/os_field/gateway.conf
new file mode 100755 (executable)
index 0000000..f9a3139
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'gateway'
+VALIDATOR = is_valid_gateway
diff --git a/deploy/compass_conf/os_field/general.conf b/deploy/compass_conf/os_field/general.conf
new file mode 100755 (executable)
index 0000000..8ca13a3
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'general'
+DISPLAY_TYPE = 'dropdown'
diff --git a/deploy/compass_conf/os_field/general_list.conf b/deploy/compass_conf/os_field/general_list.conf
new file mode 100755 (executable)
index 0000000..8cd7783
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'general_list'
+FIELD_TYPE = list
+DISPLAY_TYPE = 'multitext'
diff --git a/deploy/compass_conf/os_field/ip.conf b/deploy/compass_conf/os_field/ip.conf
new file mode 100755 (executable)
index 0000000..4f53209
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'ip'
+VALIDATOR = is_valid_ip
diff --git a/deploy/compass_conf/os_field/ip_list.conf b/deploy/compass_conf/os_field/ip_list.conf
new file mode 100755 (executable)
index 0000000..718ffa1
--- /dev/null
@@ -0,0 +1,4 @@
+NAME = 'ip_list'
+FIELD_TYPE = list
+VALIDATOR = is_valid_ip
+DISPLAY_TYPE = 'multitext'
diff --git a/deploy/compass_conf/os_field/netmask.conf b/deploy/compass_conf/os_field/netmask.conf
new file mode 100755 (executable)
index 0000000..2dab869
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'netmask'
+VALIDATOR = is_valid_netmask
diff --git a/deploy/compass_conf/os_field/network.conf b/deploy/compass_conf/os_field/network.conf
new file mode 100755 (executable)
index 0000000..c7f627f
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'network'
+VALIDATOR = is_valid_network
diff --git a/deploy/compass_conf/os_field/password.conf b/deploy/compass_conf/os_field/password.conf
new file mode 100755 (executable)
index 0000000..5cf7c3d
--- /dev/null
@@ -0,0 +1,4 @@
+NAME = 'password'
+VALIDATOR = is_valid_password
+DESCRIPTION = 'password'
+DISPLAY_TYPE = 'password'
diff --git a/deploy/compass_conf/os_field/percentage.conf b/deploy/compass_conf/os_field/percentage.conf
new file mode 100755 (executable)
index 0000000..2e61c89
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'percentage'
+FIELD_TYPE = int
+VALIDATOR = is_valid_percentage
diff --git a/deploy/compass_conf/os_field/size.conf b/deploy/compass_conf/os_field/size.conf
new file mode 100755 (executable)
index 0000000..b3b686e
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'size'
+VALIDATOR = is_valid_size
diff --git a/deploy/compass_conf/os_field/string.conf b/deploy/compass_conf/os_field/string.conf
new file mode 100755 (executable)
index 0000000..48b6673
--- /dev/null
@@ -0,0 +1 @@
+NAME = 'string'
diff --git a/deploy/compass_conf/os_field/url.conf b/deploy/compass_conf/os_field/url.conf
new file mode 100755 (executable)
index 0000000..b6a74f3
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'url'
+VALIDATOR = is_valid_url
diff --git a/deploy/compass_conf/os_field/username.conf b/deploy/compass_conf/os_field/username.conf
new file mode 100755 (executable)
index 0000000..79907b1
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'username'
+VALIDATOR = is_valid_username
+DESCRIPTION = 'username'
diff --git a/deploy/compass_conf/os_installer/cobbler.conf b/deploy/compass_conf/os_installer/cobbler.conf
new file mode 100755 (executable)
index 0000000..fb2043a
--- /dev/null
@@ -0,0 +1,9 @@
+NAME = 'cobbler'
+INSTANCE_NAME = 'cobbler'
+SETTINGS = {
+    'cobbler_url': 'http://$cobbler_ip/cobbler_api',
+    'credentials': {
+        'username': 'cobbler',
+        'password': 'cobbler'
+    }
+}
diff --git a/deploy/compass_conf/os_mapping/os_mapping.conf b/deploy/compass_conf/os_mapping/os_mapping.conf
new file mode 100755 (executable)
index 0000000..cf7b1c8
--- /dev/null
@@ -0,0 +1,188 @@
+OS = 'general'
+CONFIG_MAPPING = {
+    "mapped_name": "os_global_config",
+    "mapped_children": [{
+        "server_credentials":{
+            "name": "server_credentials",
+            "title": "Server Credentials",
+            "order": 2,
+            "data": {
+                "username": {
+                    "placeholder": "Username",
+                    "display_name": "User name",
+                    "order": 1,
+                    "mapped_key": [
+                        "name", "is_required", "display_type", "default_value"
+                    ]
+                },
+                "password": {
+                    "placeholder": "Password",
+                    "display_name": "Password",
+                    "order": 2,
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ]
+                },
+                "confirm_password": {
+                    "placeholder": "Confirm Password",
+                    "name": "confirmPassword",
+                    "display_name": "Confirm Password",
+                    "display_type": "password",
+                    "is_required": "true",
+                    "datamatch": "password",
+                    "order": 3
+                }
+            }
+        }
+    },{
+        "general": {
+            "name": "general",
+            "title": "",
+            "order": 1,
+            "data": {
+                "language": {
+                    "display_name": "Language",
+                    "order": 1,
+                    "default_value": "en",
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ],
+                    "options": [{
+                        "name": "English",
+                        "value": "en"
+                    },{
+                        "name": "Chinese",
+                        "value": "cn"
+                    }],
+                },
+                "timezone": {
+                    "display_name": "Timezone",
+                    "order": 2,
+                    "default_value": "America/Los_Angeles",
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ],
+                    "options": [{
+                        "name": "Los Angeles",
+                        "value": "America/Los_Angeles"
+                    },{
+                        "name": "Chicago",
+                        "value": "America/Chicago"
+                    },{
+                        "name": "Hong_Kong",
+                        "value": "Asia/Hong Kong"
+                    },{
+                        "name": "Shanghai",
+                        "value": "Asia/Shanghai"
+                    },{
+                        "name": "London",
+                        "value": "Europe/London"
+                    },{
+                        "name": "Paris",
+                        "value": "Europe/Paris"
+                    },{
+                        "name": "New York",
+                        "value": "America/New_York"
+                    },],
+                },
+                "http_proxy": {
+                    "placeholder": "HTTP Proxy",
+                    "display_name": "HTTP Proxy",
+                    "order": 3,
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ]
+                },
+                "https_proxy": {
+                    "placeholder": "HTTPS Proxy",
+                    "display_name": "HTTPS Proxy",
+                    "order": 4,
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ]
+                },
+                "no_proxy": {
+                    "placeholder": "No Proxy",
+                    "display_name": "No Proxy",
+                    "order": 5,
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ]
+                },
+                "ntp_server": {
+                   "placeholder": "NTP Server",
+                   "display_name": "NTP Server",
+                   "order": 6,
+                   "mapped_key": [
+                       "name", "is_required", "display_type"
+                   ]
+                },
+                "dns_servers": {
+                    "placeholder": "DNS Server",
+                    "display_name": "DNS Server",
+                    "order": 7,
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ]
+                },
+                "search_path": {
+                    "placeholder": "Search Path",
+                    "display_name": "Search Path",
+                    "order": 8,
+                    "mapped_key": [
+                        "name", "is_required", "display_type", "default_value"
+                    ]
+                },
+                "domain": {
+                    "placeholder": "Domain",
+                    "display_name": "Domain",
+                    "order": 9,
+                    "mapped_key": [
+                        "name", "is_required", "display_type", "default_value"
+                    ]
+                },
+                "default_gateway": {
+                    "placeholder": "Gateway",
+                    "display_name": "Default Gateway",
+                    "order": 10,
+                    "mapped_key": [
+                        "name", "is_required", "display_type", "default_value"
+                    ]
+                },
+                "local_repo": {
+                    "placeholder": "Local Repo",
+                    "display_name": "Local Repository",
+                    "order": 11,
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ]
+                },
+                "repo_name": {
+                    "placeholder": "Repo Name",
+                    "display_name": "Repository",
+                    "default_value": "trusty-juno-ppa",
+                    "order": 12,
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ]
+                },
+                "deploy_type": {
+                    "placeholder": "Deploy Type",
+                    "display_name": "Deploy Type",
+                    "default_value": "virtual",
+                    "order": 13,
+                    "mapped_key": [
+                        "name", "is_required", "display_type"
+                    ],
+                    "options": [{
+                        "name": "virtual",
+                        "value": "virtual"
+                    },{
+                        "name": "baremetal",
+                        "value": "baremetal"
+                    }],
+                }
+            }
+        }
+    }]
+}
diff --git a/deploy/compass_conf/os_metadata/general.conf b/deploy/compass_conf/os_metadata/general.conf
new file mode 100755 (executable)
index 0000000..e6e6431
--- /dev/null
@@ -0,0 +1,179 @@
+OS = 'general'
+METADATA = {
+    'general': {
+        '_self': {
+            'required_in_whole_config': True
+        },
+        'language': {
+            '_self': {
+                'field': 'general',
+                'is_required': True,
+                'default_value': 'EN',
+                'options': ['EN', 'CN'],
+                'mapping_to': 'language'
+            }
+        },
+        'timezone': {
+            '_self': {
+                'field': 'general',
+                'is_required': True,
+                'default_value': 'UTC',
+                'options': [
+                    'America/New_York', 'America/Chicago',
+                    'America/Los_Angeles', 'Asia/Shanghai',
+                    'Asia/Tokyo', 'Europe/Paris',
+                    'Europe/London', 'Europe/Moscow',
+                    'Europe/Rome', 'Europe/Madrid',
+                    'Europe/Berlin', 'UTC'
+                ],
+                'mapping_to': 'timezone'
+            }
+        },
+        'http_proxy': {
+            '_self': {
+                'field': 'url',
+                'default_callback': default_proxy,
+                'options_callback': proxy_options,
+                'mapping_to': 'http_proxy'
+            }
+        },
+        'https_proxy': {
+            '_self': {
+                'field': 'url',
+                'default_callback': default_proxy,
+                'options_callback': proxy_options,
+                'mapping_to': 'https_proxy'
+            }
+        },
+        'no_proxy': {
+            '_self': {
+                'field': 'general_list',
+               'default_callback': default_noproxy,
+               'options_callback': noproxy_options,
+                'autofill_callback': autofill_no_proxy,
+                'mapping_to': 'no_proxy'
+            }
+        },
+        'ntp_server': {
+            '_self': {
+                'is_required': True,
+                'field': 'string',
+               'default_callback': default_ntp_server,
+                'options_callback': ntp_server_options,
+                'mapping_to': 'ntp_server'
+            }
+        },
+        'dns_servers': {
+            '_self': {
+                'is_required': True,
+                'field': 'ip_list',
+               'default_callback': default_dns_servers,
+                'options_callback': dns_servers_options,
+                'mapping_to': 'nameservers'
+            }
+        },
+        'domain': {
+            '_self': {
+                'field': 'domain',
+                'is_required' : True,
+               'default_callback': default_domain,
+                'options_callback': domain_options,
+            }
+        },
+        'search_path': {
+            '_self': {
+                'field': 'general_list',
+                'default_callback': default_search_path,
+                'options_callback': search_path_options,
+                'mapping_to': 'search_path'
+            }
+        },
+        'default_gateway': {
+            '_self': {
+                'is_required': True,
+                'field': 'ip',
+                'default_callback': default_gateway,
+                'mapping_to': 'gateway'
+            }
+        },
+        'local_repo': {
+            '_self': {
+                'field': 'url',
+                'default_callback': default_localrepo,
+                'mapping_to': 'local_repo'
+            }
+        },
+        'repo_name': {
+            '_self': {
+                'field': 'string',
+                'mapping_to': 'repo_name'
+            }
+        },
+        'deploy_type': {
+            '_self': {
+                'field': 'general',
+                'is_required': True,
+                'default_value': 'baremetal',
+                'options': [
+                    'baremetal', 'virtual'
+                 ],
+                'mapping_to': 'deploy_type'
+            }
+        },
+    },
+    'server_credentials': {
+        '_self': {
+            'required_in_whole_config': True,
+            'mapping_to': 'server_credentials'
+        },
+        'username': {
+            '_self': {
+                'is_required': True,
+               'default_value': 'root',
+                'field': 'username',
+                'mapping_to': 'username'
+            }
+        },
+        'password': {
+            '_self': {
+                'is_required': True,
+               'default_value': 'root',
+                'field': 'password',
+                'mapping_to': 'password'
+            }
+        }
+    },
+    'partition': {
+        '_self': {
+            'required_in_whole_config': True,
+            'options': ['/boot', 'swap', '/var', '/home'],
+            'mapping_to': 'partition'
+        },
+        '$partition': {
+            '_self': {
+                'validator': is_valid_partition,
+               'mapping_to': '$partition'
+            },
+            'max_size': {
+                '_self': {
+                    'field': 'size',
+                    'mapping_to': 'max_vol_size'
+                },
+            },
+            'percentage': {
+                '_self': {
+                    'field': 'percentage',
+                    'default_value': 10,
+                    'mapping_to': 'vol_percentage'
+                }
+            },
+            'size': {
+                '_self': {
+                    'field': 'size',
+                   'default_value': '1G',
+                    'mapping_to': 'vol_size'
+                },
+            }
+        }
+    }
+}
diff --git a/deploy/compass_conf/package_field/anytype.conf b/deploy/compass_conf/package_field/anytype.conf
new file mode 100755 (executable)
index 0000000..dd65c59
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'anytype'
+FIELD_TYPE = object
diff --git a/deploy/compass_conf/package_field/dns.conf b/deploy/compass_conf/package_field/dns.conf
new file mode 100755 (executable)
index 0000000..b97b154
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'dns'
+VALIDATOR = is_valid_dns
diff --git a/deploy/compass_conf/package_field/gateway.conf b/deploy/compass_conf/package_field/gateway.conf
new file mode 100755 (executable)
index 0000000..f9a3139
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'gateway'
+VALIDATOR = is_valid_gateway
diff --git a/deploy/compass_conf/package_field/general.conf b/deploy/compass_conf/package_field/general.conf
new file mode 100755 (executable)
index 0000000..4d8cb37
--- /dev/null
@@ -0,0 +1 @@
+NAME = 'general'
diff --git a/deploy/compass_conf/package_field/general_list.conf b/deploy/compass_conf/package_field/general_list.conf
new file mode 100755 (executable)
index 0000000..9b37cb9
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'general_list'
+FIELD_TYPE = list
diff --git a/deploy/compass_conf/package_field/integer.conf b/deploy/compass_conf/package_field/integer.conf
new file mode 100755 (executable)
index 0000000..45f000e
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'integer'
+FIELD_TYPE = int
diff --git a/deploy/compass_conf/package_field/ip.conf b/deploy/compass_conf/package_field/ip.conf
new file mode 100755 (executable)
index 0000000..0389cef
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'ip address'
+VALIDATOR = is_valid_ip
diff --git a/deploy/compass_conf/package_field/netmask.conf b/deploy/compass_conf/package_field/netmask.conf
new file mode 100755 (executable)
index 0000000..2dab869
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'netmask'
+VALIDATOR = is_valid_netmask
diff --git a/deploy/compass_conf/package_field/network.conf b/deploy/compass_conf/package_field/network.conf
new file mode 100755 (executable)
index 0000000..c7f627f
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'network'
+VALIDATOR = is_valid_network
diff --git a/deploy/compass_conf/package_field/password.conf b/deploy/compass_conf/package_field/password.conf
new file mode 100755 (executable)
index 0000000..bdb026e
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'password'
+VALIDATOR = is_valid_password
+DESCRIPTION = 'password'
diff --git a/deploy/compass_conf/package_field/percentage.conf b/deploy/compass_conf/package_field/percentage.conf
new file mode 100755 (executable)
index 0000000..2e61c89
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'percentage'
+FIELD_TYPE = int
+VALIDATOR = is_valid_percentage
diff --git a/deploy/compass_conf/package_field/roles.conf b/deploy/compass_conf/package_field/roles.conf
new file mode 100755 (executable)
index 0000000..a0319ed
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'roles'
+FIELD_TYPE = list
+DESCRIPTION = 'roles'
diff --git a/deploy/compass_conf/package_field/size.conf b/deploy/compass_conf/package_field/size.conf
new file mode 100755 (executable)
index 0000000..b3b686e
--- /dev/null
@@ -0,0 +1,2 @@
+NAME = 'size'
+VALIDATOR = is_valid_size
diff --git a/deploy/compass_conf/package_field/username.conf b/deploy/compass_conf/package_field/username.conf
new file mode 100755 (executable)
index 0000000..79907b1
--- /dev/null
@@ -0,0 +1,3 @@
+NAME = 'username'
+VALIDATOR = is_valid_username
+DESCRIPTION = 'username'
diff --git a/deploy/compass_conf/package_installer/ansible-juno.conf b/deploy/compass_conf/package_installer/ansible-juno.conf
new file mode 100755 (executable)
index 0000000..0c74b2e
--- /dev/null
@@ -0,0 +1,13 @@
+NAME = 'ansible_installer'
+INSTANCE_NAME = 'ansible_installer_juno'
+SETTINGS = {
+    'ansible_dir': '/var/ansible',
+    'ansible_run_dir': '/var/ansible/run',
+    'ansible_config': 'ansible.cfg',
+    'playbook_file': 'site.yml',
+    'inventory_file': 'inventory.yml',
+    'group_variable': 'all',
+    'etc_hosts_path': 'roles/common/templates/hosts',
+    'runner_dirs': ['roles','openstack_juno/templates','openstack_juno/roles']
+}
+
diff --git a/deploy/compass_conf/package_installer/ansible-kilo.conf b/deploy/compass_conf/package_installer/ansible-kilo.conf
new file mode 100755 (executable)
index 0000000..cfe2147
--- /dev/null
@@ -0,0 +1,13 @@
+NAME = 'ansible_installer'
+INSTANCE_NAME = 'ansible_installer_kilo'
+SETTINGS = {
+    'ansible_dir': '/var/ansible',
+    'ansible_run_dir': '/var/ansible/run',
+    'ansible_config': 'ansible.cfg',
+    'playbook_file': 'site.yml',
+    'inventory_file': 'inventory.yml',
+    'group_variable': 'all',
+    'etc_hosts_path': 'roles/common/templates/hosts',
+    'runner_dirs': ['roles','openstack_kilo/templates','openstack_kilo/roles']
+}
+
diff --git a/deploy/compass_conf/package_installer/ansible-liberty.conf b/deploy/compass_conf/package_installer/ansible-liberty.conf
new file mode 100755 (executable)
index 0000000..f0c8fb3
--- /dev/null
@@ -0,0 +1,13 @@
+NAME = 'ansible_installer'
+INSTANCE_NAME = 'ansible_installer_liberty'
+SETTINGS = {
+    'ansible_dir': '/var/ansible',
+    'ansible_run_dir': '/var/ansible/run',
+    'ansible_config': 'ansible.cfg',
+    'playbook_file': 'site.yml',
+    'inventory_file': 'inventory.yml',
+    'group_variable': 'all',
+    'etc_hosts_path': 'roles/common/templates/hosts',
+    'runner_dirs': ['roles','openstack_liberty/templates','openstack_liberty/roles']
+}
+
diff --git a/deploy/compass_conf/package_installer/ansible-mitaka.conf b/deploy/compass_conf/package_installer/ansible-mitaka.conf
new file mode 100755 (executable)
index 0000000..e83f888
--- /dev/null
@@ -0,0 +1,13 @@
+NAME = 'ansible_installer'
+INSTANCE_NAME = 'ansible_installer_mitaka'
+SETTINGS = {
+    'ansible_dir': '/var/ansible',
+    'ansible_run_dir': '/var/ansible/run',
+    'ansible_config': 'ansible.cfg',
+    'playbook_file': 'site.yml',
+    'inventory_file': 'inventory.yml',
+    'group_variable': 'all',
+    'etc_hosts_path': 'roles/common/templates/hosts',
+    'runner_dirs': ['roles','openstack_mitaka/templates','openstack_mitaka/roles']
+}
+
diff --git a/deploy/compass_conf/package_installer/ansible-mitaka_xenial.conf b/deploy/compass_conf/package_installer/ansible-mitaka_xenial.conf
new file mode 100755 (executable)
index 0000000..03c3b3b
--- /dev/null
@@ -0,0 +1,13 @@
+NAME = 'ansible_installer'
+INSTANCE_NAME = 'ansible_installer_mitaka_xenial'
+SETTINGS = {
+    'ansible_dir': '/var/ansible',
+    'ansible_run_dir': '/var/ansible/run',
+    'ansible_config': 'ansible.cfg',
+    'playbook_file': 'site.yml',
+    'inventory_file': 'inventory.yml',
+    'group_variable': 'all',
+    'etc_hosts_path': 'roles/common/templates/hosts',
+    'runner_dirs': ['roles','openstack_mitaka_xenial/templates','openstack_mitaka_xenial/roles']
+}
+
diff --git a/deploy/compass_conf/package_installer/ansible-newton_xenial.conf b/deploy/compass_conf/package_installer/ansible-newton_xenial.conf
new file mode 100755 (executable)
index 0000000..d51f167
--- /dev/null
@@ -0,0 +1,13 @@
+NAME = 'ansible_installer'
+INSTANCE_NAME = 'ansible_installer_newton_xenial'
+SETTINGS = {
+    'ansible_dir': '/var/ansible',
+    'ansible_run_dir': '/var/ansible/run',
+    'ansible_config': 'ansible.cfg',
+    'playbook_file': 'site.yml',
+    'inventory_file': 'inventory.yml',
+    'group_variable': 'all',
+    'etc_hosts_path': 'roles/common/templates/hosts',
+    'runner_dirs': ['roles','openstack_newton_xenial/templates','openstack_newton_xenial/roles']
+}
+
diff --git a/deploy/compass_conf/package_installer/ansible-osp9.conf b/deploy/compass_conf/package_installer/ansible-osp9.conf
new file mode 100755 (executable)
index 0000000..65f8351
--- /dev/null
@@ -0,0 +1,13 @@
+NAME = 'ansible_installer'
+INSTANCE_NAME = 'ansible_installer_osp9'
+SETTINGS = {
+    'ansible_dir': '/var/ansible',
+    'ansible_run_dir': '/var/ansible/run',
+    'ansible_config': 'ansible.cfg',
+    'playbook_file': 'site.yml',
+    'inventory_file': 'inventory.yml',
+    'group_variable': 'all',
+    'etc_hosts_path': 'roles/common/templates/hosts',
+    'runner_dirs': ['roles','openstack_osp9/templates','openstack_osp9/roles']
+}
+
diff --git a/deploy/compass_conf/package_metadata/openstack.conf b/deploy/compass_conf/package_metadata/openstack.conf
new file mode 100755 (executable)
index 0000000..000c1a2
--- /dev/null
@@ -0,0 +1,437 @@
+ADAPTER = 'openstack'
+METADATA = {
+    'security': {
+        '_self': {
+            'required_in_whole_config': True,
+        },
+        'service_credentials': {
+            '_self': {
+                'required_in_whole_config': True,
+                'key_extensions': {
+                '$service': ['image', 'compute', 'dashboard', 'identity', 'metering', 'network', 'rabbitmq', 'volume', 'mysql', 'heat', 'alarming', 'policy']
+                },
+                'mapping_to': 'service_credentials'
+            },
+            '$service': {
+               '_self': {
+                   'required_in_whole_config': True,
+                   'mapping_to': '$service'
+               },
+               'username': {
+                   '_self': {
+                       'is_required': True,
+                       'field': 'username',
+                       'mapping_to': 'username'
+                   }
+               },
+               'password': {
+                   '_self': {
+                       'is_required': True,
+                       'field': 'password',
+                       'mapping_to': 'password'
+                   }
+               }
+            }
+        },
+        'console_credentials': {
+            '_self': {
+                'required_in_whole_config': True,
+                'key_extensions': {
+                    '$console': ['admin', 'demo', 'compute', 'dashboard', 'image', 'identity', 'metering', 'network', 'object-store', 'volume', 'heat', 'alarming', 'policy']
+                },
+                'mapping_to': 'console_credentials'
+            },
+            '$console': {
+                '_self': {
+                    'required_in_whole_config': True,
+                    'mapping_to': '$console'
+                },
+                'username': {
+                    '_self': {
+                        'is_required': True,
+                        'field': 'username',
+                        'mapping_to': 'username'
+                    }
+                },
+                'password': {
+                    '_self': {
+                        'is_required': True,
+                        'field': 'password',
+                        'mapping_to': 'password'
+                    }
+                }
+            }
+        }
+    },
+
+    'enable_secgroup': {
+        '_self': {
+            'mapping_to': 'enable_secgroup',
+            'field': 'anytype',
+            'is_required':False,
+            'default_value': True
+        }
+    },
+
+    'enable_fwaas': {
+        '_self': {
+            'mapping_to': 'enable_fwaas',
+            'field': 'anytype',
+            'is_required':False,
+            'default_value': True
+        }
+    },
+    'enable_vpnaas': {
+        '_self': {
+            'mapping_to': 'enable_vpnaas',
+            'field': 'anytype',
+            'is_required':False,
+            'default_value': True
+        }
+    },
+    'odl_l3_agent': {
+        '_self': {
+            'mapping_to': 'odl_l3_agent',
+            'field': 'anytype',
+            'is_required':False,
+            'default_value': 'Disable'
+        }
+    },
+    'onos_sfc': {
+        '_self': {
+            'mapping_to': 'onos_sfc',
+            'field': 'anytype',
+            'is_required':False,
+            'default_value': 'Disable'
+        }
+    },
+    'odl_sfc': {
+        '_self': {
+            'mapping_to': 'odl_sfc',
+            'field': 'anytype',
+            'is_required':False,
+            'default_value': 'Disable'
+        }
+    },
+    'moon': {
+        '_self': {
+            'mapping_to': 'moon',
+            'field': 'anytype',
+            'is_required':False,
+            'default_value': 'Disable'
+        }
+    },
+    'ha_network': {
+        '_self': {
+            'mapping_to': 'ha_network',
+            'field': 'anytype',
+            'is_required':False,
+            'default_value': 'Disable'
+        }
+    },
+    'network_cfg': {
+        '_self': {
+            'mapping_to': 'network_cfg'
+        },
+
+        'nic_mappings': {
+            '_self': {
+                'mapping_to': 'nic_mappings',
+                'field': 'general_list'
+            }
+        },
+
+        'bond_mappings': {
+            '_self': {
+                'mapping_to': 'bond_mappings',
+                'field': 'general_list'
+            }
+        },
+
+        'sys_intf_mappings': {
+            '_self': {
+                'mapping_to': 'sys_intf_mappings',
+                'field': 'general_list'
+            }
+        },
+
+        'ip_settings': {
+             '_self': {
+                 'mapping_to': 'ip_settings',
+                 'field': 'general_list'
+             }
+        },
+
+        'provider_net_mappings': {
+            '_self': {
+                'mapping_to': 'provider_net_mappings',
+                'field': 'general_list'
+            }
+        },
+
+        'ceph_disk': {
+            '_self': {
+                'mapping_to': 'ceph_disk',
+                'field': 'general',
+                'is_required':False
+            }
+        },
+
+        'public_vip': {
+        '_self': {
+            'mapping_to': 'public_vip',
+            'is_required': False
+        },
+
+        'ip': {
+            '_self': {
+            'mapping_to': 'ip',
+            'is_required': True,
+            'field': 'general',
+            }
+        },
+        'netmask': {
+            '_self': {
+            'mapping_to': 'netmask',
+            'is_required': True,
+            'field': 'general',
+            }
+        },
+        'interface': {
+            '_self': {
+            'mapping_to': 'interface',
+            'is_required': True,
+            'field': 'general',
+            }
+        }
+        },
+
+        'internal_vip': {
+        '_self': {
+            'mapping_to': 'internal_vip',
+            'is_required': False
+        },
+
+        'ip': {
+            '_self': {
+            'mapping_to': 'ip',
+            'is_required': True,
+            'field': 'general',
+            }
+        },
+        'netmask': {
+            '_self': {
+            'mapping_to': 'netmask',
+            'is_required': True,
+            'field': 'general',
+            }
+        },
+        'interface': {
+            '_self': {
+            'mapping_to': 'interface',
+            'is_required': True,
+            'field': 'general',
+            }
+        }
+    },
+
+    'onos_nic': {
+        '_self': {
+            'mapping_to': 'onos_nic',
+            'is_required': False,
+            'field': 'general',
+            'default_value': 'eth2'
+        }
+    },
+
+    'public_net_info': {
+        '_self': {
+            'mapping_to': 'public_net_info'
+        },
+
+        'enable': {
+            '_self': {
+            'mapping_to': 'enable',
+            'is_required': False,
+            'field': 'anytype',
+            'default_value': True
+            }
+        },
+
+        'network': {
+            '_self': {
+            'mapping_to': 'network',
+            'is_required': True,
+            'field': 'general',
+            'default_value': 'ext-net'
+            }
+        },
+
+        'type': {
+            '_self': {
+            'mapping_to': 'type',
+            'is_required': True,
+            'field': 'general',
+            'options': ['flat', 'vlan'],
+            'default_value': 'vlan'
+            }
+        },
+
+        'segment_id': {
+            '_self': {
+            'mapping_to': 'segment_id',
+            'is_required': False,
+            'field': 'anytype'
+            }
+        },
+
+        'subnet': {
+            '_self': {
+            'mapping_to': 'subnet',
+            'is_required': True,
+            'field': 'general',
+            'default_value': 'ext-subnet'
+            }
+        },
+
+        'provider_network': {
+            '_self': {
+            'mapping_to': 'provider_network',
+            'is_required': True,
+            'field': 'general',
+            'default_value': 'physnet'
+            }
+        },
+
+        'router': {
+            '_self': {
+            'mapping_to': 'router',
+            'is_required': True,
+            'field': 'general',
+            'default_value': 'ext-router'
+            }
+        },
+
+        'enable_dhcp': {
+            '_self': {
+            'mapping_to': 'enable_dhcp',
+            'is_required': True,
+            'field': 'anytype'
+            }
+        },
+
+        'no_gateway': {
+            '_self': {
+            'mapping_to': 'no_gateway',
+            'is_required': True,
+            'field': 'anytype'
+            }
+        },
+
+        'external_gw': {
+            '_self': {
+            'mapping_to': 'external_gw',
+            'is_required': False,
+            'field': 'general'
+            }
+        },
+
+        'floating_ip_cidr': {
+            '_self': {
+            'mapping_to': 'floating_ip_cidr',
+            'is_required': True,
+            'field': 'general'
+            }
+        },
+
+        'floating_ip_start': {
+            '_self': {
+            'mapping_to': 'floating_ip_start',
+            'is_required': True,
+            'field': 'general'
+            }
+        },
+
+        'floating_ip_end': {
+            '_self': {
+            'mapping_to': 'floating_ip_end',
+            'is_required': True,
+            'field': 'general'
+            }
+        }
+    },
+    },
+    'neutron_config': {
+        '_self': {
+            'mapping_to': 'neutron_config'
+        },
+        'openvswitch': {
+            '_self': {
+                'mapping_to': 'openvswitch',
+                'required_in_whole_config': True
+            },
+            'tenant_network_type': {
+                '_self': {
+                    'mapping_to': 'tenant_network_type',
+                    'is_required': True,
+                    'field': 'general',
+                    'options': ['gre', 'vlan'],
+                    'default_value': 'gre'
+                }
+            },
+            'network_vlan_ranges': {
+                '_self': {
+                    'mapping_to': 'vlan_ranges',
+                    'is_required': False,
+                    'field': 'general_list',
+                    'default_value': ['physnet1:2700:2999']
+                }
+            },
+            'bridge_mappings': {
+                '_self': {
+                    'mapping_to': 'bridge_mappings',
+                    'is_required': False,
+                    'field': 'general_list',
+                    'default_value': ['physnet1:br-eth1']
+                }
+            },
+            'tunnel_id_ranges': {
+                '_self': {
+                    'mapping_to': 'tunnel_id_ranges',
+                    'is_required': False,
+                    'field': 'general_list',
+                    'default_value': ['1:1000']
+                }
+            }
+        }
+    },
+    'network_mapping': {
+        '_self': {
+            'required_in_whole_config': True,
+                'key_extensions': {
+                '$interface_type': ['install']
+            }
+        },
+        '$interface_type': {
+            '_self': {
+                'required_in_whole_config': True,
+                'field': 'anytype',
+                'autofill_callback': autofill_network_mapping,
+                'mapping_to': '$interface_type'
+            },
+            'interface': {
+                '_self': {
+                    'is_required': True,
+                    'field': 'general',
+                }
+            },
+            'subnet': {
+                '_self': {
+                    'is_required': False,
+                    'field': 'general'
+                }
+            }
+        }
+    },
+
+}
diff --git a/deploy/compass_conf/progress_calculator/progress_calculator.conf b/deploy/compass_conf/progress_calculator/progress_calculator.conf
new file mode 100755 (executable)
index 0000000..f4f991e
--- /dev/null
@@ -0,0 +1,558 @@
+OS_INSTALLER_CONFIGURATIONS = {
+    'cobbler': {
+        'Ubuntu': AdapterItemMatcher(
+            file_matchers=[
+                FileMatcher(
+                    filename='syslog',
+                    min_progress=0.0,
+                    max_progress=1.0,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'.*',
+                            progress=.05,
+                            message_template='start installing',
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='ethdetect'
+                        ),
+                        'ethdetect': LineMatcher(
+                            pattern=r'Menu.*item.*\'ethdetect\'.*selected',
+                            progress=.1,
+                            message_template='ethdetect selected',
+                            unmatch_nextline_next_matcher_name='ethdetect',
+                            match_nextline_next_matcher_name='netcfg'
+                        ),
+                        'netcfg': LineMatcher(
+                            pattern=r'Menu.*item.*\'netcfg\'.*selected',
+                            progress=.12,
+                            message_template='netcfg selected',
+                            unmatch_nextline_next_matcher_name='netcfg',
+                            match_nextline_next_matcher_name='network-preseed'
+                        ),
+                        'network-preseed': LineMatcher(
+                            pattern=(
+                                r'Menu.*item.*\'network-preseed\'.*selected'
+                            ),
+                            progress=.15,
+                            message_template='network-preseed selected',
+                            unmatch_nextline_next_matcher_name=(
+                                'network-preseed'
+                            ),
+                            match_nextline_next_matcher_name='localechooser'
+                        ),
+                        'localechooser': LineMatcher(
+                            pattern=r'Menu.*item.*\'localechooser\'.*selected',
+                            progress=.18,
+                            message_template='localechooser selected',
+                            unmatch_nextline_next_matcher_name='localechooser',
+                            match_nextline_next_matcher_name=(
+                                'download-installer'
+                            )
+                        ),
+                        'download-installer': LineMatcher(
+                            pattern=(
+                                r'Menu.*item.*\'download-installer\'.*selected'
+                            ),
+                            progress=.2,
+                            message_template='download installer selected',
+                            unmatch_nextline_next_matcher_name=(
+                                'download-installer'),
+                            match_nextline_next_matcher_name='clock-setup'
+                        ),
+                        'clock-setup': LineMatcher(
+                            pattern=r'Menu.*item.*\'clock-setup\'.*selected',
+                            progress=.3,
+                            message_template='clock-setup selected',
+                            unmatch_nextline_next_matcher_name='clock-setup',
+                            match_nextline_next_matcher_name='disk-detect'
+                        ),
+                        'disk-detect': LineMatcher(
+                            pattern=r'Menu.*item.*\'disk-detect\'.*selected',
+                            progress=.32,
+                            message_template='disk-detect selected',
+                            unmatch_nextline_next_matcher_name='disk-detect',
+                            match_nextline_next_matcher_name='partman-base'
+                        ),
+                        'partman-base': LineMatcher(
+                            pattern=(
+                                r'Menu.*item.*\'partman-base\'.*selected'
+                            ),
+                            progress=.35,
+                            message_template='partman-base selected',
+                            unmatch_nextline_next_matcher_name='partman-base',
+                            match_nextline_next_matcher_name='apt-setup-udeb'
+                        ),
+                        'apt-setup-udeb': LineMatcher(
+                            pattern=(
+                                r'Menu.*item.*\'apt-setup-udeb\'.*selected'
+                            ),
+                            progress=.45,
+                            message_template='apt-setup-udeb selected',
+                            unmatch_nextline_next_matcher_name=(
+                                'apt-setup-udeb'
+                            ),
+                            match_nextline_next_matcher_name='pkgsel'
+                        ),
+                        'pkgsel': LineMatcher(
+                            pattern=r'Menu.*item.*\'pkgsel\'.*selected',
+                            progress=.5,
+                            message_template='pkgsel selected',
+                            unmatch_nextline_next_matcher_name='pkgsel',
+                            match_nextline_next_matcher_name='grub-installer'
+                        ),
+                        'grub-installer': LineMatcher(
+                            pattern=(
+                                r'Menu.*item.*\'grub-installer\'.*selected'
+                            ),
+                            progress=.9,
+                            message_template='grub-installer selected',
+                            unmatch_nextline_next_matcher_name=(
+                                'grub-installer'
+                            ),
+                            match_nextline_next_matcher_name='finish-install'
+                        ),
+                        'finish-install': LineMatcher(
+                            pattern=(
+                                r'Menu.*item.*\'finish-install\'.*selected'
+                            ),
+                            progress=.95,
+                            message_template='finish-install selected',
+                            unmatch_nextline_next_matcher_name=(
+                                'finish-install'
+                            ),
+                            match_nextline_next_matcher_name=(
+                                'finish-install-done'
+                            )
+                        ),
+                        'finish-install-done': LineMatcher(
+                            pattern=(
+                                r'Running.*finish-install.d/.*save-logs'
+                            ),
+                            progress=1.0,
+                            message_template='finish-install is done',
+                            unmatch_nextline_next_matcher_name=(
+                                'finish-install-done'
+                            ),
+                            match_nextline_next_matcher_name='exit'
+                        ),
+                    }
+                ),
+                FileMatcher(
+                    filename='status',
+                    min_progress=.2,
+                    max_progress=.3,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'Package: (?P<package>.*)',
+                            progress=IncrementalProgress(0.0, 0.99, 0.05),
+                            message_template='Installing udeb %(package)s',
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='start'
+                        )
+                    }
+                ),
+                FileMatcher(
+                    filename='initial-status',
+                    min_progress=.5,
+                    max_progress=.9,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'Package: (?P<package>.*)',
+                            progress=IncrementalProgress(0.0, 0.99, 0.01),
+                            message_template='Installing deb %(package)s',
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='start'
+                        )
+                    }
+                ),
+            ]
+        ),
+        'CentOS6': AdapterItemMatcher(
+            file_matchers=[
+                FileMatcher(
+                    filename='sys.log',
+                    min_progress=0.0,
+                    max_progress=0.1,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'NOTICE (?P<message>.*)',
+                            progress=IncrementalProgress(.1, .9, .1),
+                            message_template='%(message)s',
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='exit'
+                        ),
+                    }
+                ),
+                FileMatcher(
+                    filename='anaconda.log',
+                    min_progress=0.1,
+                    max_progress=1.0,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'setting.*up.*kickstart',
+                            progress=.1,
+                            message_template=(
+                                'Setting up kickstart configurations'),
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='STEP_STAGE2'
+                        ),
+                        'STEP_STAGE2': LineMatcher(
+                            pattern=r'starting.*STEP_STAGE2',
+                            progress=.15,
+                            message_template=(
+                                'Downloading installation '
+                                'images from server'),
+                            unmatch_nextline_next_matcher_name='STEP_STAGE2',
+                            match_nextline_next_matcher_name='start_anaconda'
+                        ),
+                        'start_anaconda': LineMatcher(
+                            pattern=r'Running.*anaconda.*script',
+                            progress=.2,
+                            unmatch_nextline_next_matcher_name=(
+                                'start_anaconda'),
+                            match_nextline_next_matcher_name=(
+                                'start_kickstart_pre')
+                        ),
+                        'start_kickstart_pre': LineMatcher(
+                            pattern=r'Running.*kickstart.*pre.*script',
+                            progress=.25,
+                            unmatch_nextline_next_matcher_name=(
+                                'start_kickstart_pre'),
+                            match_nextline_next_matcher_name=(
+                                'kickstart_pre_done')
+                        ),
+                        'kickstart_pre_done': LineMatcher(
+                            pattern=(
+                                r'All.*kickstart.*pre'
+                                '.*script.*have.*been.*run'
+                            ),
+                            progress=.3,
+                            unmatch_nextline_next_matcher_name=(
+                                'kickstart_pre_done'),
+                            match_nextline_next_matcher_name=(
+                                'start_enablefilesystem')
+                        ),
+                        'start_enablefilesystem': LineMatcher(
+                            pattern=(
+                                r'moving.*step.*enablefilesystems'
+                            ),
+                            progress=0.3,
+                            message_template=(
+                                'Performing hard-disk partitioning and '
+                                'enabling filesystems'
+                            ),
+                            unmatch_nextline_next_matcher_name=(
+                                'start_enablefilesystem'),
+                            match_nextline_next_matcher_name=(
+                                'enablefilesystem_done')
+                        ),
+                        'enablefilesystem_done': LineMatcher(
+                            pattern=(
+                                r'leaving.*step.*enablefilesystems'
+                            ),
+                            progress=.35,
+                            message_template='Filesystems are enabled',
+                            unmatch_nextline_next_matcher_name=(
+                                'enablefilesystem_done'),
+                            match_nextline_next_matcher_name=(
+                                'setup_repositories')
+                        ),
+                        'setup_repositories': LineMatcher(
+                            pattern=r'moving.*step.*reposetup',
+                            progress=0.35,
+                            message_template=(
+                                'Setting up Customized Repositories'
+                            ),
+                            unmatch_nextline_next_matcher_name=(
+                                'setup_repositories'),
+                            match_nextline_next_matcher_name=(
+                                'repositories_ready')
+                        ),
+                        'repositories_ready': LineMatcher(
+                            pattern=r'leaving.*step.*reposetup',
+                            progress=0.4,
+                            message_template=(
+                                'Customized Repositories setting up are done'
+                            ),
+                            unmatch_nextline_next_matcher_name=(
+                                'repositories_ready'),
+                            match_nextline_next_matcher_name='checking_dud'
+                        ),
+                        'checking_dud': LineMatcher(
+                            pattern=r'moving.*step.*postselection',
+                            progress=0.4,
+                            message_template='Checking DUD modules',
+                            unmatch_nextline_next_matcher_name='checking_dud',
+                            match_nextline_next_matcher_name='dud_checked'
+                        ),
+                        'dud_checked': LineMatcher(
+                            pattern=r'leaving.*step.*postselection',
+                            progress=0.5,
+                            message_template='Checking DUD modules are done',
+                            unmatch_nextline_next_matcher_name='dud_checked',
+                            match_nextline_next_matcher_name=(
+                                'installing_packages'
+                            )
+                        ),
+                        'installing_packages': LineMatcher(
+                            pattern=r'moving.*step.*installpackages',
+                            progress=0.5,
+                            message_template='Installing packages',
+                            unmatch_nextline_next_matcher_name=(
+                                'installing_packages'),
+                            match_nextline_next_matcher_name=(
+                                'packages_installed')
+                        ),
+                        'packages_installed': LineMatcher(
+                            pattern=r'leaving.*step.*installpackages',
+                            progress=0.8,
+                            message_template='Packages are installed',
+                            unmatch_nextline_next_matcher_name=(
+                                'packages_installed'),
+                            match_nextline_next_matcher_name=(
+                                'installing_bootloader')
+                        ),
+                        'installing_bootloader': LineMatcher(
+                            pattern=r'moving.*step.*instbootloader',
+                            progress=0.9,
+                            message_template='Installing bootloaders',
+                            unmatch_nextline_next_matcher_name=(
+                                'installing_bootloader'),
+                            match_nextline_next_matcher_name=(
+                                'bootloader_installed'),
+                        ),
+                        'bootloader_installed': LineMatcher(
+                            pattern=r'leaving.*step.*instbootloader',
+                            progress=1.0,
+                            message_template='bootloaders is installed',
+                            unmatch_nextline_next_matcher_name=(
+                                'bootloader_installed'),
+                            match_nextline_next_matcher_name='exit'
+                        ),
+                    }
+                ),
+                FileMatcher(
+                    filename='install.log',
+                    min_progress=0.56,
+                    max_progress=0.80,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'Installing (?P<package>.*)',
+                            progress=IncrementalProgress(0.0, 0.99, 0.005),
+                            message_template='Installing %(package)s',
+                            unmatch_sameline_next_matcher_name=(
+                                'package_complete'
+                            ),
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='start'
+                        ),
+                        'package_complete': LineMatcher(
+                            pattern='FINISHED.*INSTALLING.*PACKAGES',
+                            progress=1.0,
+                            message_template='installing packages finished',
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='exit'
+                        ),
+                    }
+                ),
+            ]
+        ),
+        'CentOS7': AdapterItemMatcher(
+            file_matchers=[
+                FileMatcher(
+                    filename='syslog',
+                    min_progress=0.0,
+                    max_progress=0.1,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'NOTICE (?P<message>.*)',
+                            progress=IncrementalProgress(.1, .9, .1),
+                            message_template='%(message)s',
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='exit'
+                        ),
+                    }
+                ),
+                FileMatcher(
+                    filename='anaconda.log',
+                    min_progress=0.1,
+                    max_progress=1.0,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'Running.*kickstart.*pre.*script',
+                            progress=.15,
+                            unmatch_nextline_next_matcher_name=(
+                                'start'),
+                            match_nextline_next_matcher_name=(
+                                'kickstart_pre_done')
+                        ),
+                        'kickstart_pre_done': LineMatcher(
+                            pattern=(
+                                r'All.*kickstart.*pre'
+                                '.*script.*have.*been.*run'
+                            ),
+                            progress=.2,
+                            unmatch_nextline_next_matcher_name=(
+                                'kickstart_pre_done'),
+                            match_nextline_next_matcher_name=(
+                                'geolocation_lookup')
+                        ),
+                        'geolocation_lookup': LineMatcher(
+                            pattern=r'Starting.*geolocation.*lookup',
+                            progress=0.3,
+                            message_template=(
+                                'Setting up Customized Repositories'
+                            ),
+                            unmatch_nextline_next_matcher_name=(
+                                'geolocation_lookup'),
+                            match_nextline_next_matcher_name=(
+                                'geolocation_done')
+                        ),
+                        'geolocation_done': LineMatcher(
+                            pattern=r'Geolocation.*lookup.*finished',
+                            progress=0.4,
+                            message_template=(
+                                'Geolocation lookup are done'
+                            ),
+                            unmatch_nextline_next_matcher_name=(
+                                'geolocation_done'),
+                            match_nextline_next_matcher_name='setup_environment'
+                        ),
+                        'setup_environment': LineMatcher(
+                            pattern=r'Setting.*installation.*environment',
+                            progress=0.5,
+                            message_template='Setting up installation environment',
+                            unmatch_nextline_next_matcher_name='setup_environment',
+                            match_nextline_next_matcher_name='installing_packages'
+                        ),
+                        'installing_packages': LineMatcher(
+                            pattern=(
+                                r'Creating.*biosboot.*on'
+                            ),
+                            progress=.5,
+                            message_template=(
+                                'Installing packages'
+                            ),
+                            unmatch_nextline_next_matcher_name=(
+                                'installing_packages'),
+                            match_nextline_next_matcher_name=(
+                                'packages_installed')
+                        ),
+                        'packages_installed': LineMatcher(
+                            pattern=(
+                                r'bootloader.*args'
+                            ),
+                            progress=.8,
+                            message_template='Packages are installed',
+                            unmatch_nextline_next_matcher_name=(
+                                'packages_installed'),
+                            match_nextline_next_matcher_name=(
+                                'installing_bootloader')
+                        ),
+                        'installing_bootloader': LineMatcher(
+                            pattern=r'setting.*installation.*environment',
+                            progress=0.9,
+                            message_template='Setup installation environment',
+                            unmatch_nextline_next_matcher_name=(
+                                'installing_bootloader'),
+                            match_nextline_next_matcher_name=(
+                                'post_installation'),
+                        ),
+                        'post_installation': LineMatcher(
+                            pattern=r'Running.*post-installation.*scripts',
+                            progress=1.0,
+                            message_template='Ran post-nstallation scripts',
+                            unmatch_nextline_next_matcher_name=(
+                                'post_installation'),
+                            match_nextline_next_matcher_name='exit'
+                        ),
+                    }
+                ),
+                FileMatcher(
+                    filename='packaging.log',
+                    min_progress=0.56,
+                    max_progress=0.80,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=r'Installing (?P<package>.*)',
+                            progress=IncrementalProgress(0.0, 0.99, 0.005),
+                            message_template='Installing %(package)s',
+                            unmatch_sameline_next_matcher_name=(
+                                'package_complete'
+                            ),
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='start'
+                        ),
+                        'package_complete': LineMatcher(
+                            pattern='end.*rpm.*scriptlet',
+                            progress=1.0,
+                            message_template='installing packages finished',
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='exit'
+                        ),
+                    }
+                ),
+            ]
+        ),
+    }
+}
+
+OS_LOG_CONFIGURATIONS = [{
+    'os_installer_name': 'cobbler',
+    'os_pattern': 'CentOS-6.*',
+    'item_matcher': OS_INSTALLER_CONFIGURATIONS['cobbler']['CentOS6'],
+    'logdir': setting.INSTALLATION_LOGDIR['CobblerInstaller']
+}, {
+    'os_installer_name': 'cobbler',
+    'os_pattern': 'CentOS-7.*',
+    'item_matcher': OS_INSTALLER_CONFIGURATIONS['cobbler']['CentOS7'],
+    'logdir': setting.INSTALLATION_LOGDIR['CobblerInstaller']
+}, {
+    'os_installer_name': 'cobbler',
+    'os_pattern': 'Ubuntu.*',
+    'item_matcher': OS_INSTALLER_CONFIGURATIONS['cobbler']['Ubuntu'],
+    'logdir': setting.INSTALLATION_LOGDIR['CobblerInstaller']
+}]
+
+PACKAGE_INSTALLER_CONFIGURATIONS = {
+    'chef_installer': {
+        'default': AdapterItemMatcher(
+            file_matchers=[
+                FileMatcher(
+                    filename='chef-client.log',
+                    min_progress=0.1,
+                    max_progress=1.0,
+                    line_matchers={
+                        'start': LineMatcher(
+                            pattern=(
+                                r'Processing\s*(?P<install_type>.*)'
+                                r'\[(?P<package>.*)\].*'),
+                            progress=IncrementalProgress(0.0, .90, 0.005),
+                            message_template=(
+                                'Processing %(install_type)s %(package)s'),
+                            unmatch_sameline_next_matcher_name=(
+                                'chef_complete'),
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='start'
+                        ),
+                        'chef_complete': LineMatcher(
+                            pattern=r'Chef.*Run.*complete',
+                            progress=1.0,
+                            message_template='Chef run complete',
+                            unmatch_nextline_next_matcher_name='start',
+                            match_nextline_next_matcher_name='exit'
+                        ),
+                    }
+                ),
+            ]
+        ),
+    }
+}
+
+ADAPTER_LOG_CONFIGURATIONS = [{
+    'package_installer_name': 'chef_installer',
+    'adapter_pattern': '.*',
+    'item_matcher': PACKAGE_INSTALLER_CONFIGURATIONS['chef_installer']['default'],
+    'logdir': setting.INSTALLATION_LOGDIR['ChefInstaller']
+}]
+
+
diff --git a/deploy/compass_conf/role/openstack_juno_ansible.conf b/deploy/compass_conf/role/openstack_juno_ansible.conf
new file mode 100755 (executable)
index 0000000..48c171c
--- /dev/null
@@ -0,0 +1,110 @@
+ADAPTER_NAME = 'openstack_juno'
+ROLES = [{
+    'role': 'allinone-compute',
+    'display_name': 'all in one',
+    'description': 'All in One'
+}, {
+    'role': 'controller',
+    'display_name': 'controller node',
+    'description': 'Controller Node'
+}, {
+    'role': 'compute',
+    'display_name': 'compute node',
+    'description': 'Compute Node'
+}, {
+    'role': 'storage',
+    'display_name': 'storage node',
+    'description': 'Storage Node'
+}, {
+    'role': 'network',
+    'display_name': 'network node',
+    'description': 'Network Node'
+}, {
+    'role': 'compute-worker',
+    'display_name': 'Compute worker node',
+    'description': 'Compute worker node'
+}, {
+    'role': 'compute-controller',
+    'display_name': 'Compute controller node',
+    'description': 'Compute controller node'
+}, {
+    'role': 'network-server',
+    'display_name': 'Network server node',
+    'description': 'Network server node'
+}, {
+    'role': 'database',
+    'display_name': 'Database node',
+    'description': 'Database node'
+}, {
+    'role': 'messaging',
+    'display_name': 'Messaging queue node',
+    'description': 'Messaging queue node'
+}, {
+    'role': 'image',
+    'display': 'Image node',
+    'description': 'Image node'
+}, {
+    'role': 'dashboard',
+    'display': 'Dashboard node',
+    'description': 'Dashboard node'
+}, {
+    'role': 'identity',
+    'display': 'Identity node',
+    'description': 'Identity node'
+}, {
+    'role': 'storage-controller',
+    'display': 'Storage controller node',
+    'description': 'Storage controller node'
+}, {
+    'role': 'storage-volume',
+    'display': 'Storage volume node',
+    'description': 'Storage volume node'
+}, {
+    'role': 'network-worker',
+    'display': 'Network worker node',
+    'description': 'Network worker node'
+}, {
+    'role': 'odl',
+    'display': 'open day light',
+    'description': 'odl node',
+    'optional': True
+}, {
+    'role': 'onos',
+    'display': 'open network operating system',
+    'description': 'onos node',
+    'optional': True
+}, {
+    'role': 'ha',
+    'display': 'Cluster with HA',
+    'description': 'Cluster with HA node'
+}, {
+    'role': 'ceph-adm',
+    'display': 'Ceph Admin Node',
+    'description': 'Ceph Admin Node',
+    'optional': True
+}, {
+    'role': 'ceph-mon',
+    'display': 'Ceph Monitor Node',
+    'description': 'Ceph Monitor Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd',
+    'display': 'Ceph Storage Node',
+    'description': 'Ceph Storage Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd-node',
+    'display': 'Ceph osd install from node',
+    'description': '',
+    'optional': True
+}, {
+    'role': 'ceph',
+    'display': 'ceph node',
+    'description': 'ceph node',
+    'optional': True
+}, {
+    'role': 'sec-patch',
+    'display': 'sec-patch node',
+    'description': 'Security Patch Node',
+    'optional': True
+}]
diff --git a/deploy/compass_conf/role/openstack_kilo_ansible.conf b/deploy/compass_conf/role/openstack_kilo_ansible.conf
new file mode 100755 (executable)
index 0000000..ac3af5a
--- /dev/null
@@ -0,0 +1,110 @@
+ADAPTER_NAME = 'openstack_kilo'
+ROLES = [{
+    'role': 'allinone-compute',
+    'display_name': 'all in one',
+    'description': 'All in One'
+}, {
+    'role': 'controller',
+    'display_name': 'controller node',
+    'description': 'Controller Node'
+}, {
+    'role': 'compute',
+    'display_name': 'compute node',
+    'description': 'Compute Node'
+}, {
+    'role': 'storage',
+    'display_name': 'storage node',
+    'description': 'Storage Node'
+}, {
+    'role': 'network',
+    'display_name': 'network node',
+    'description': 'Network Node'
+}, {
+    'role': 'compute-worker',
+    'display_name': 'Compute worker node',
+    'description': 'Compute worker node'
+}, {
+    'role': 'compute-controller',
+    'display_name': 'Compute controller node',
+    'description': 'Compute controller node'
+}, {
+    'role': 'network-server',
+    'display_name': 'Network server node',
+    'description': 'Network server node'
+}, {
+    'role': 'database',
+    'display_name': 'Database node',
+    'description': 'Database node'
+}, {
+    'role': 'messaging',
+    'display_name': 'Messaging queue node',
+    'description': 'Messaging queue node'
+}, {
+    'role': 'image',
+    'display': 'Image node',
+    'description': 'Image node'
+}, {
+    'role': 'dashboard',
+    'display': 'Dashboard node',
+    'description': 'Dashboard node'
+}, {
+    'role': 'identity',
+    'display': 'Identity node',
+    'description': 'Identity node'
+}, {
+    'role': 'storage-controller',
+    'display': 'Storage controller node',
+    'description': 'Storage controller node'
+}, {
+    'role': 'storage-volume',
+    'display': 'Storage volume node',
+    'description': 'Storage volume node'
+}, {
+    'role': 'network-worker',
+    'display': 'Network worker node',
+    'description': 'Network worker node'
+}, {
+    'role': 'odl',
+    'display': 'open day light',
+    'description': 'odl node',
+    'optional': True
+}, {
+    'role': 'onos',
+    'display': 'open network operating system',
+    'description': 'onos node',
+    'optional': True
+}, {
+    'role': 'ha',
+    'display': 'Cluster with HA',
+    'description': 'Cluster with HA node'
+}, {
+    'role': 'ceph-adm',
+    'display': 'Ceph Admin Node',
+    'description': 'Ceph Admin Node',
+    'optional': True
+}, {
+    'role': 'ceph-mon',
+    'display': 'Ceph Monitor Node',
+    'description': 'Ceph Monitor Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd',
+    'display': 'Ceph Storage Node',
+    'description': 'Ceph Storage Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd-node',
+    'display': 'Ceph osd install from node',
+    'description': '',
+    'optional': True
+}, {
+    'role': 'ceph',
+    'display': 'ceph node',
+    'description': 'ceph node',
+    'optional': True
+}, {
+    'role': 'sec-patch',
+    'display': 'sec-patch node',
+    'description': 'Security Patch Node',
+    'optional': True
+}]
diff --git a/deploy/compass_conf/role/openstack_liberty_ansible.conf b/deploy/compass_conf/role/openstack_liberty_ansible.conf
new file mode 100755 (executable)
index 0000000..c481c8a
--- /dev/null
@@ -0,0 +1,115 @@
+ADAPTER_NAME = 'openstack_liberty'
+ROLES = [{
+    'role': 'allinone-compute',
+    'display_name': 'all in one',
+    'description': 'All in One'
+}, {
+    'role': 'controller',
+    'display_name': 'controller node',
+    'description': 'Controller Node'
+}, {
+    'role': 'compute',
+    'display_name': 'compute node',
+    'description': 'Compute Node'
+}, {
+    'role': 'storage',
+    'display_name': 'storage node',
+    'description': 'Storage Node'
+}, {
+    'role': 'network',
+    'display_name': 'network node',
+    'description': 'Network Node'
+}, {
+    'role': 'compute-worker',
+    'display_name': 'Compute worker node',
+    'description': 'Compute worker node'
+}, {
+    'role': 'compute-controller',
+    'display_name': 'Compute controller node',
+    'description': 'Compute controller node'
+}, {
+    'role': 'network-server',
+    'display_name': 'Network server node',
+    'description': 'Network server node'
+}, {
+    'role': 'database',
+    'display_name': 'Database node',
+    'description': 'Database node'
+}, {
+    'role': 'messaging',
+    'display_name': 'Messaging queue node',
+    'description': 'Messaging queue node'
+}, {
+    'role': 'image',
+    'display': 'Image node',
+    'description': 'Image node'
+}, {
+    'role': 'dashboard',
+    'display': 'Dashboard node',
+    'description': 'Dashboard node'
+}, {
+    'role': 'identity',
+    'display': 'Identity node',
+    'description': 'Identity node'
+}, {
+    'role': 'storage-controller',
+    'display': 'Storage controller node',
+    'description': 'Storage controller node'
+}, {
+    'role': 'storage-volume',
+    'display': 'Storage volume node',
+    'description': 'Storage volume node'
+}, {
+    'role': 'network-worker',
+    'display': 'Network worker node',
+    'description': 'Network worker node'
+}, {
+    'role': 'odl',
+    'display': 'open day light',
+    'description': 'odl node',
+    'optional': True
+}, {
+    'role': 'onos',
+    'display': 'open network operating system',
+    'description': 'onos node',
+    'optional': True
+}, {
+    'role': 'opencontrail',
+    'display': 'open contrail',
+    'description': 'opencontrail node',
+    'optional': True
+}, {
+    'role': 'ha',
+    'display': 'Cluster with HA',
+    'description': 'Cluster with HA node'
+}, {
+    'role': 'ceph-adm',
+    'display': 'Ceph Admin Node',
+    'description': 'Ceph Admin Node',
+    'optional': True
+}, {
+    'role': 'ceph-mon',
+    'display': 'Ceph Monitor Node',
+    'description': 'Ceph Monitor Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd',
+    'display': 'Ceph Storage Node',
+    'description': 'Ceph Storage Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd-node',
+    'display': 'Ceph osd install from node',
+    'description': '',
+    'optional': True
+}, {
+    'role': 'ceph',
+    'display': 'ceph node',
+    'description': 'ceph node',
+    'optional': True
+}, {
+    'role': 'sec-patch',
+    'display': 'sec-patch node',
+    'description': 'Security Patch Node',
+    'optional': True
+}]
diff --git a/deploy/compass_conf/role/openstack_mitaka_ansible.conf b/deploy/compass_conf/role/openstack_mitaka_ansible.conf
new file mode 100755 (executable)
index 0000000..4ab8dac
--- /dev/null
@@ -0,0 +1,115 @@
+ADAPTER_NAME = 'openstack_mitaka'
+ROLES = [{
+    'role': 'allinone-compute',
+    'display_name': 'all in one',
+    'description': 'All in One'
+}, {
+    'role': 'controller',
+    'display_name': 'controller node',
+    'description': 'Controller Node'
+}, {
+    'role': 'compute',
+    'display_name': 'compute node',
+    'description': 'Compute Node'
+}, {
+    'role': 'storage',
+    'display_name': 'storage node',
+    'description': 'Storage Node'
+}, {
+    'role': 'network',
+    'display_name': 'network node',
+    'description': 'Network Node'
+}, {
+    'role': 'compute-worker',
+    'display_name': 'Compute worker node',
+    'description': 'Compute worker node'
+}, {
+    'role': 'compute-controller',
+    'display_name': 'Compute controller node',
+    'description': 'Compute controller node'
+}, {
+    'role': 'network-server',
+    'display_name': 'Network server node',
+    'description': 'Network server node'
+}, {
+    'role': 'database',
+    'display_name': 'Database node',
+    'description': 'Database node'
+}, {
+    'role': 'messaging',
+    'display_name': 'Messaging queue node',
+    'description': 'Messaging queue node'
+}, {
+    'role': 'image',
+    'display': 'Image node',
+    'description': 'Image node'
+}, {
+    'role': 'dashboard',
+    'display': 'Dashboard node',
+    'description': 'Dashboard node'
+}, {
+    'role': 'identity',
+    'display': 'Identity node',
+    'description': 'Identity node'
+}, {
+    'role': 'storage-controller',
+    'display': 'Storage controller node',
+    'description': 'Storage controller node'
+}, {
+    'role': 'storage-volume',
+    'display': 'Storage volume node',
+    'description': 'Storage volume node'
+}, {
+    'role': 'network-worker',
+    'display': 'Network worker node',
+    'description': 'Network worker node'
+}, {
+    'role': 'odl',
+    'display': 'open day light',
+    'description': 'odl node',
+    'optional': True
+}, {
+    'role': 'onos',
+    'display': 'open network operating system',
+    'description': 'onos node',
+    'optional': True
+}, {
+    'role': 'opencontrail',
+    'display': 'open contrail',
+    'description': 'opencontrail node',
+    'optional': True
+}, {
+    'role': 'ha',
+    'display': 'Cluster with HA',
+    'description': 'Cluster with HA node'
+}, {
+    'role': 'ceph-adm',
+    'display': 'Ceph Admin Node',
+    'description': 'Ceph Admin Node',
+    'optional': True
+}, {
+    'role': 'ceph-mon',
+    'display': 'Ceph Monitor Node',
+    'description': 'Ceph Monitor Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd',
+    'display': 'Ceph Storage Node',
+    'description': 'Ceph Storage Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd-node',
+    'display': 'Ceph osd install from node',
+    'description': '',
+    'optional': True
+}, {
+    'role': 'ceph',
+    'display': 'ceph node',
+    'description': 'ceph node',
+    'optional': True
+}, {
+    'role': 'sec-patch',
+    'display': 'sec-patch node',
+    'description': 'Security Patch Node',
+    'optional': True
+}]
diff --git a/deploy/compass_conf/role/openstack_mitaka_xenial_ansible.conf b/deploy/compass_conf/role/openstack_mitaka_xenial_ansible.conf
new file mode 100755 (executable)
index 0000000..3448eb7
--- /dev/null
@@ -0,0 +1,115 @@
+ADAPTER_NAME = 'openstack_mitaka_xenial'
+ROLES = [{
+    'role': 'allinone-compute',
+    'display_name': 'all in one',
+    'description': 'All in One'
+}, {
+    'role': 'controller',
+    'display_name': 'controller node',
+    'description': 'Controller Node'
+}, {
+    'role': 'compute',
+    'display_name': 'compute node',
+    'description': 'Compute Node'
+}, {
+    'role': 'storage',
+    'display_name': 'storage node',
+    'description': 'Storage Node'
+}, {
+    'role': 'network',
+    'display_name': 'network node',
+    'description': 'Network Node'
+}, {
+    'role': 'compute-worker',
+    'display_name': 'Compute worker node',
+    'description': 'Compute worker node'
+}, {
+    'role': 'compute-controller',
+    'display_name': 'Compute controller node',
+    'description': 'Compute controller node'
+}, {
+    'role': 'network-server',
+    'display_name': 'Network server node',
+    'description': 'Network server node'
+}, {
+    'role': 'database',
+    'display_name': 'Database node',
+    'description': 'Database node'
+}, {
+    'role': 'messaging',
+    'display_name': 'Messaging queue node',
+    'description': 'Messaging queue node'
+}, {
+    'role': 'image',
+    'display': 'Image node',
+    'description': 'Image node'
+}, {
+    'role': 'dashboard',
+    'display': 'Dashboard node',
+    'description': 'Dashboard node'
+}, {
+    'role': 'identity',
+    'display': 'Identity node',
+    'description': 'Identity node'
+}, {
+    'role': 'storage-controller',
+    'display': 'Storage controller node',
+    'description': 'Storage controller node'
+}, {
+    'role': 'storage-volume',
+    'display': 'Storage volume node',
+    'description': 'Storage volume node'
+}, {
+    'role': 'network-worker',
+    'display': 'Network worker node',
+    'description': 'Network worker node'
+}, {
+    'role': 'odl',
+    'display': 'open day light',
+    'description': 'odl node',
+    'optional': True
+}, {
+    'role': 'onos',
+    'display': 'open network operating system',
+    'description': 'onos node',
+    'optional': True
+}, {
+    'role': 'opencontrail',
+    'display': 'open contrail',
+    'description': 'opencontrail node',
+    'optional': True
+}, {
+    'role': 'ha',
+    'display': 'Cluster with HA',
+    'description': 'Cluster with HA node'
+}, {
+    'role': 'ceph-adm',
+    'display': 'Ceph Admin Node',
+    'description': 'Ceph Admin Node',
+    'optional': True
+}, {
+    'role': 'ceph-mon',
+    'display': 'Ceph Monitor Node',
+    'description': 'Ceph Monitor Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd',
+    'display': 'Ceph Storage Node',
+    'description': 'Ceph Storage Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd-node',
+    'display': 'Ceph osd install from node',
+    'description': '',
+    'optional': True
+}, {
+    'role': 'ceph',
+    'display': 'ceph node',
+    'description': 'ceph node',
+    'optional': True
+}, {
+    'role': 'sec-patch',
+    'display': 'sec-patch node',
+    'description': 'Security Patch Node',
+    'optional': True
+}]
diff --git a/deploy/compass_conf/role/openstack_newton_xenial_ansible.conf b/deploy/compass_conf/role/openstack_newton_xenial_ansible.conf
new file mode 100755 (executable)
index 0000000..385f025
--- /dev/null
@@ -0,0 +1,115 @@
+ADAPTER_NAME = 'openstack_newton_xenial'
+ROLES = [{
+    'role': 'allinone-compute',
+    'display_name': 'all in one',
+    'description': 'All in One'
+}, {
+    'role': 'controller',
+    'display_name': 'controller node',
+    'description': 'Controller Node'
+}, {
+    'role': 'compute',
+    'display_name': 'compute node',
+    'description': 'Compute Node'
+}, {
+    'role': 'storage',
+    'display_name': 'storage node',
+    'description': 'Storage Node'
+}, {
+    'role': 'network',
+    'display_name': 'network node',
+    'description': 'Network Node'
+}, {
+    'role': 'compute-worker',
+    'display_name': 'Compute worker node',
+    'description': 'Compute worker node'
+}, {
+    'role': 'compute-controller',
+    'display_name': 'Compute controller node',
+    'description': 'Compute controller node'
+}, {
+    'role': 'network-server',
+    'display_name': 'Network server node',
+    'description': 'Network server node'
+}, {
+    'role': 'database',
+    'display_name': 'Database node',
+    'description': 'Database node'
+}, {
+    'role': 'messaging',
+    'display_name': 'Messaging queue node',
+    'description': 'Messaging queue node'
+}, {
+    'role': 'image',
+    'display': 'Image node',
+    'description': 'Image node'
+}, {
+    'role': 'dashboard',
+    'display': 'Dashboard node',
+    'description': 'Dashboard node'
+}, {
+    'role': 'identity',
+    'display': 'Identity node',
+    'description': 'Identity node'
+}, {
+    'role': 'storage-controller',
+    'display': 'Storage controller node',
+    'description': 'Storage controller node'
+}, {
+    'role': 'storage-volume',
+    'display': 'Storage volume node',
+    'description': 'Storage volume node'
+}, {
+    'role': 'network-worker',
+    'display': 'Network worker node',
+    'description': 'Network worker node'
+}, {
+    'role': 'odl',
+    'display': 'open day light',
+    'description': 'odl node',
+    'optional': True
+}, {
+    'role': 'onos',
+    'display': 'open network operating system',
+    'description': 'onos node',
+    'optional': True
+}, {
+    'role': 'opencontrail',
+    'display': 'open contrail',
+    'description': 'opencontrail node',
+    'optional': True
+}, {
+    'role': 'ha',
+    'display': 'Cluster with HA',
+    'description': 'Cluster with HA node'
+}, {
+    'role': 'ceph-adm',
+    'display': 'Ceph Admin Node',
+    'description': 'Ceph Admin Node',
+    'optional': True
+}, {
+    'role': 'ceph-mon',
+    'display': 'Ceph Monitor Node',
+    'description': 'Ceph Monitor Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd',
+    'display': 'Ceph Storage Node',
+    'description': 'Ceph Storage Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd-node',
+    'display': 'Ceph osd install from node',
+    'description': '',
+    'optional': True
+}, {
+    'role': 'ceph',
+    'display': 'ceph node',
+    'description': 'ceph node',
+    'optional': True
+}, {
+    'role': 'sec-patch',
+    'display': 'sec-patch node',
+    'description': 'Security Patch Node',
+    'optional': True
+}]
diff --git a/deploy/compass_conf/role/openstack_osp9_ansible.conf b/deploy/compass_conf/role/openstack_osp9_ansible.conf
new file mode 100755 (executable)
index 0000000..0a5f67b
--- /dev/null
@@ -0,0 +1,115 @@
+ADAPTER_NAME = 'openstack_osp9'
+ROLES = [{
+    'role': 'allinone-compute',
+    'display_name': 'all in one',
+    'description': 'All in One'
+}, {
+    'role': 'controller',
+    'display_name': 'controller node',
+    'description': 'Controller Node'
+}, {
+    'role': 'compute',
+    'display_name': 'compute node',
+    'description': 'Compute Node'
+}, {
+    'role': 'storage',
+    'display_name': 'storage node',
+    'description': 'Storage Node'
+}, {
+    'role': 'network',
+    'display_name': 'network node',
+    'description': 'Network Node'
+}, {
+    'role': 'compute-worker',
+    'display_name': 'Compute worker node',
+    'description': 'Compute worker node'
+}, {
+    'role': 'compute-controller',
+    'display_name': 'Compute controller node',
+    'description': 'Compute controller node'
+}, {
+    'role': 'network-server',
+    'display_name': 'Network server node',
+    'description': 'Network server node'
+}, {
+    'role': 'database',
+    'display_name': 'Database node',
+    'description': 'Database node'
+}, {
+    'role': 'messaging',
+    'display_name': 'Messaging queue node',
+    'description': 'Messaging queue node'
+}, {
+    'role': 'image',
+    'display': 'Image node',
+    'description': 'Image node'
+}, {
+    'role': 'dashboard',
+    'display': 'Dashboard node',
+    'description': 'Dashboard node'
+}, {
+    'role': 'identity',
+    'display': 'Identity node',
+    'description': 'Identity node'
+}, {
+    'role': 'storage-controller',
+    'display': 'Storage controller node',
+    'description': 'Storage controller node'
+}, {
+    'role': 'storage-volume',
+    'display': 'Storage volume node',
+    'description': 'Storage volume node'
+}, {
+    'role': 'network-worker',
+    'display': 'Network worker node',
+    'description': 'Network worker node'
+}, {
+    'role': 'odl',
+    'display': 'open day light',
+    'description': 'odl node',
+    'optional': True
+}, {
+    'role': 'onos',
+    'display': 'open network operating system',
+    'description': 'onos node',
+    'optional': True
+}, {
+    'role': 'opencontrail',
+    'display': 'open contrail',
+    'description': 'opencontrail node',
+    'optional': True
+}, {
+    'role': 'ha',
+    'display': 'Cluster with HA',
+    'description': 'Cluster with HA node'
+}, {
+    'role': 'ceph-adm',
+    'display': 'Ceph Admin Node',
+    'description': 'Ceph Admin Node',
+    'optional': True
+}, {
+    'role': 'ceph-mon',
+    'display': 'Ceph Monitor Node',
+    'description': 'Ceph Monitor Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd',
+    'display': 'Ceph Storage Node',
+    'description': 'Ceph Storage Node',
+    'optional': True
+}, {
+    'role': 'ceph-osd-node',
+    'display': 'Ceph osd install from node',
+    'description': '',
+    'optional': True
+}, {
+    'role': 'ceph',
+    'display': 'ceph node',
+    'description': 'ceph node',
+    'optional': True
+}, {
+    'role': 'sec-patch',
+    'display': 'sec-patch node',
+    'description': 'Security Patch Node',
+    'optional': True
+}]
diff --git a/deploy/compass_conf/setting b/deploy/compass_conf/setting
new file mode 100755 (executable)
index 0000000..a1e9bff
--- /dev/null
@@ -0,0 +1,31 @@
+CONFIG_DIR = '/etc/compass'
+DATABASE_TYPE = 'mysql'
+DATABASE_USER = 'root'
+DATABASE_PASSWORD = 'root'
+DATABASE_SERVER = '127.0.0.1:3306'
+DATABASE_NAME = 'compass'
+SQLALCHEMY_DATABASE_URI = '%s://%s:%s@%s/%s' % (DATABASE_TYPE, DATABASE_USER, DATABASE_PASSWORD, DATABASE_SERVER, DATABASE_NAME)
+SQLALCHEMY_DATABASE_POOL_TYPE = 'instant'
+COBBLER_INSTALLATION_LOGDIR = '/var/log/cobbler/anamon'
+CHEF_INSTALLATION_LOGDIR = '/var/log/chef'
+DEFAULT_LOGLEVEL = 'info'
+DEFAULT_LOGDIR = '/var/log/compass'
+DEFAULT_LOGINTERVAL = 6
+DEFAULT_LOGINTERVAL_UNIT = 'h'
+DEFAULT_LOGFORMAT = '%(asctime)s - %(filename)s - %(lineno)d - %(levelname)s - %(message)s'
+WEB_LOGFILE = 'compass_web.log'
+CELERY_LOGFILE = 'celery.log'
+CELERYCONFIG_DIR = '/etc/compass'
+CELERYCONFIG_FILE = 'celeryconfig'
+PROGRESS_UPDATE_INTERVAL=30
+POLLSWITCH_INTERVAL=60
+SWITCHES = [
+]
+TMPL_DIR = '/etc/compass/templates'
+COMPASS_SUPPORTED_PROXY = 'http://$ipaddr:3128'
+COMPASS_SUPPORTED_DEFAULT_NOPROXY = ['127.0.0.1','$ipaddr','$hostname']
+COMPASS_SUPPORTED_NTP_SERVER = '$ipaddr'
+COMPASS_SUPPORTED_DNS_SERVERS = ['$ipaddr']
+COMPASS_SUPPORTED_DOMAINS = ['$domains']
+COMPASS_SUPPORTED_DEFAULT_GATEWAY = '$gateway'
+COMPASS_SUPPORTED_LOCAL_REPO = 'http://$ipaddr'
diff --git a/deploy/compass_conf/switch_list/switch_list.conf b/deploy/compass_conf/switch_list/switch_list.conf
new file mode 100755 (executable)
index 0000000..21c46c0
--- /dev/null
@@ -0,0 +1,3 @@
+SWITCH_LIST = [
+    '127.0.0.1'
+]
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..264d439
--- /dev/null
@@ -0,0 +1,7 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_juno-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
+library = /opt/openstack-ansible-modules
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/allinone.tmpl
new file mode 100755 (executable)
index 0000000..35b8e0e
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_juno-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..35b8e0e
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_juno-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/ansible_cfg/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..35b8e0e
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_juno-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..9d628b5
--- /dev/null
@@ -0,0 +1,31 @@
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+# localhost
+127.0.0.1 localhost
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($compute, list)
+    #set computes = [$computes]
+#end if
+# controller
+#for worker in $controllers
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b777815
--- /dev/null
@@ -0,0 +1,10 @@
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+# allinone
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ca8c793
--- /dev/null
@@ -0,0 +1,110 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+# compute-controller
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# database
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# messaging
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-controller
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# image
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# identity
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-server
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# dashboard
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-volume
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-worker
+#for worker in $network_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# compute-worker
+#for worker in $compute_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/hosts/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..3ed9469
--- /dev/null
@@ -0,0 +1,40 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+# controller
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage
+#for worker in $storages
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network
+#for worker in $networks
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..9197f50
--- /dev/null
@@ -0,0 +1,110 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set has = $getVar('ha', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#set ceph_adm_list = $getVar('ceph_adm',[])
+#set ceph_mon_list = $getVar('ceph_mon',[])
+#set ceph_osd_list = $getVar('ceph_osd',[])
+#set sec_patch_list = $getVar('sec_patch',[])
+#set ceph_osd_node_list = $getVar('ceph_osd_node',[])
+
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance(has, list)
+    #set has = [has]
+#end if
+#if not $isinstance(odls, list)
+    #set odls = [odls]
+#end if
+#if not $isinstance(onoss, list)
+    #set onoss = [onoss]
+#end if
+#if not $isinstance(ceph_adm_list, list)
+    #set ceph_adm_list = [ceph_adm_list]
+#end if
+#if not $isinstance(ceph_mon_list, list)
+    #set ceph_mon_list = [ceph_mon_list]
+#end if
+#if not $isinstance(ceph_osd_list, list)
+    #set ceph_osd_list = [ceph_osd_list]
+#end if
+#if not $isinstance(sec_patch_list, list)
+    #set sec_patch_list = [sec_patch_list]
+#end if
+#if not $isinstance(ceph_osd_node_list, list)
+    #set ceph_osd_node_list = [ceph_osd_node_list]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.install.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.install.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ha]
+#for ha in $has
+    #set ha_ip = $ha.install.ip
+    #set ha_hostname = $ha.hostname
+$ha_hostname ansible_ssh_host=$ha_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in $odls
+    #set odl_ip = $odl.install.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[onos]
+#for onos in $onoss
+    #set onos_ip = $onos.install.ip
+    #set onos_hostname = $onos.hostname
+$onos_hostname ansible_ssh_host=$onos_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_adm]
+#for ceph_adm in $ceph_adm_list
+    #set ceph_adm_ip = $ceph_adm.install.ip
+    #set ceph_adm_hostname = $ceph_adm.hostname
+$ceph_adm_hostname ansible_ssh_host=$ceph_adm_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_mon]
+#for ceph_mon in $ceph_mon_list
+    #set ceph_mon_ip = $ceph_mon.install.ip
+    #set ceph_mon_hostname = $ceph_mon.hostname
+$ceph_mon_hostname ansible_ssh_host=$ceph_mon_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd]
+#for ceph_osd in $ceph_osd_list
+    #set ceph_osd_ip = $ceph_osd.install.ip
+    #set ceph_osd_hostname = $ceph_osd.hostname
+$ceph_osd_hostname ansible_ssh_host=$ceph_osd_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[sec_patch]
+#for sec_patch in $sec_patch_list
+    #set sec_patch_ip = $sec_patch.install.ip
+    #set sec_patch_hostname = $sec_patch.hostname
+$sec_patch_hostname ansible_ssh_host=$sec_patch_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd_node]
+#for ceph_osd_node in $ceph_osd_node_list
+    #set ceph_osd_node_ip = $ceph_osd_node.install.ip
+    #set ceph_osd_node_hostname = $ceph_osd_node.hostname
+$ceph_osd_node_hostname ansible_ssh_host=$ceph_osd_node_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[ceph:children]
+ceph_adm
+ceph_mon
+ceph_osd
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/allinone.tmpl
new file mode 100755 (executable)
index 0000000..38e0038
--- /dev/null
@@ -0,0 +1,47 @@
+#set controllers = $getVar('allinone_compute', [])
+#set computes = $getVar('allinone_compute', [])
+#set storages = $getVar('allinone_compute', [])
+#set networks = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..7cdfbef
--- /dev/null
@@ -0,0 +1,123 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[compute-controller]
+#for controller in $compute_controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute-worker]
+#for compute in $compute_workers
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-server]
+#for network in $network_servers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-worker]
+#for network in $network_workers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[database]
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[messaging]
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[image]
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[dashboard]
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[identity]
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-controller]
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-volume]
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/inventories/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..e1bf72c
--- /dev/null
@@ -0,0 +1,67 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($odls, list)
+    #set odls = [$odls]
+#end if
+#if not $isinstance($onoss, list)
+    #set onoss = [$onoss]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in odls
+    #set odl_ip = $odl.management.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..5987f44
--- /dev/null
@@ -0,0 +1,202 @@
+#from random import randint
+#set cluster_name = $getVar('name', '')
+#set network_cfg = $getVar('network_cfg', {})
+#set ntp_server = $getVar('ntp_server', "")
+#set ceph_disk = $getVar('ceph_disk',"")
+#set $sys_intf_mappings= {}
+#for $intf_info in $network_cfg.sys_intf_mappings
+#set $sys_intf_mappings[$intf_info["name"]] = $intf_info
+#end for  
+
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items() 
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+#set neutron_cfg = $getVar('neutron_config', {})
+#set ovs_config = $neutron_cfg.openvswitch
+
+#set has = $getVar('ha', [])
+#set ha_vip = $getVar('ha_vip', [])
+
+#set controllers = $getVar('controller', [])
+#set computers = $getVar('compute', [])
+
+enable_secgroup: $getVar('enable_secgroup', True)
+enable_fwaas: $getVar('enable_fwaas', True)
+enable_vpnaas: $getVar('enable_vpnaas', True)
+onos_nic: $getVar('onos_nic', 'eth2')
+ip_settings: $ip_settings
+network_cfg: $network_cfg
+sys_intf_mappings: $sys_intf_mappings
+deploy_type: $getVar('deploy_type', 'virtual')
+
+public_cidr: $computers[0]['install']['subnet']
+storage_cidr: "{{ ip_settings[inventory_hostname]['storage']['cidr'] }}"
+mgmt_cidr: "{{ ip_settings[inventory_hostname]['mgmt']['cidr'] }}"
+
+public_net_info: "{{ network_cfg.public_net_info }}"
+host_ip_settings: "{{ ip_settings[inventory_hostname] }}"
+
+ntp_server: $ntp_server
+internal_vip:
+  ip: $network_cfg["internal_vip"]["ip"]
+  netmask: $network_cfg["internal_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["interface"]
+#end if
+
+public_vip:
+  ip: $network_cfg["public_vip"]["ip"]
+  netmask: $network_cfg["public_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["interface"]
+#end if
+
+db_host: "{{ internal_vip.ip }}"
+rabbit_host: "{{ internal_vip.ip }}"
+
+internal_ip: "{{ ip_settings[inventory_hostname]['mgmt']['ip'] }}"
+internal_nic: mgmt
+
+#set random_id = randint(1, 255)
+vrouter_id_internal: $random_id
+vrouter_id_public: $random_id
+
+identity_host: "{{ internal_ip }}"
+controllers_host: "{{ internal_ip }}"
+storage_controller_host: "{{ internal_ip }}"
+compute_controller_host: "{{ internal_ip }}"
+image_host: "{{ internal_ip }}"
+network_server_host: "{{ internal_ip }}"
+dashboard_host: "{{ internal_ip }}"
+
+haproxy_hosts:
+#for $item in $has
+#set $hostname=$item["hostname"]
+  $hostname: $ip_settings[$hostname]["mgmt"]["ip"]
+#end for
+
+host_index:
+#for $index, $item in enumerate($has)
+  $item["hostname"]: $index
+#end for
+
+ERLANG_TOKEN: YOWSJSJIGGAUFZTIBRAD
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set keystone_pass = $console_credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set heat_dbpass = $credentials.heat.password
+#set heat_pass = $console_credentials.heat.password
+#set neutron_dbpass = $credentials.network.password
+#set neutron_pass = $console_credentials.network.password
+#set ceilometer_dbpass = $credentials.metering.password
+#set ceilometer_pass = $console_credentials.metering.password
+#set admin_pass = $console_credentials.admin.password
+#set demo_pass = $console_credentials.demo.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controllers_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+erlang.cookie: DJJVECFMCJPVYQTJTDWG
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+KEYSTONE_PASS: $keystone_pass
+CEILOMETER_DBPASS: $ceilometer_dbpass
+CEILOMETER_PASS: $ceilometer_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_dbpass
+NEUTRON_PASS: $neutron_pass
+HEAT_DBPASS: $heat_dbpass
+HEAT_PASS: $heat_pass
+DEMO_PASS: $demo_pass
+ADMIN_PASS: $admin_pass
+
+#set neutron_service_plugins=['router']
+
+#if $getVar('enable_fwaas', True)
+#neutron_service_plugins.append('firewall')
+#end if
+
+#if $getVar('enable_vpnaas', True)
+#neutron_service_plugins.append('vpnaas')
+#end if
+
+NEUTRON_SERVICE_PLUGINS: $neutron_service_plugins
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan', 'vlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['$ovs_config["tenant_network_type"]']
+NEUTRON_OVS_BRIDGE_MAPPINGS: $ovs_config['bridge_mappings']
+#if 'vlan_ranges' in $ovs_config
+NEUTRON_VLAN_RANGES: $ovs_config['vlan_ranges']
+#else
+NEUTRON_VLAN_RANGES: []
+#end if
+#if 'tunnel_id_ranges' in $ovs_config
+NEUTRON_TUNNEL_ID_RANGES: $ovs_config['tunnel_id_ranges']
+#else
+NEUTRON_TUNNEL_ID_RANGES: []
+#end if
+
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+WSREP_SST_USER: wsrep_sst
+WSREP_SST_PASS: wsrep_sst_sercet
+
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: "{{ internal_ip }}"
+
+#build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image: http://192.168.121.12:9999/img/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/allinone.tmpl
new file mode 100755 (executable)
index 0000000..740397c
--- /dev/null
@@ -0,0 +1,96 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $controllers
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password 
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+
+cluster_name: $cluster_name
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..da266a7
--- /dev/null
@@ -0,0 +1,165 @@
+#set cluster_name = $getVar('name', '')
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+db_host: $worker_ip
+#end for
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+rabbit_host: $worker_ip
+#end for
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+storage_controller_host: $worker_ip
+#end for
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+image_host: $worker_ip
+#end for
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+identity_host: $worker_ip
+#end for
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+network_server_host: $worker_ip
+#end for
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+dashboard_host: $worker_ip
+#end for
+#for network in $network_workers
+    #set network_external_nic = $network.external.interface
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ compute_controller_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_juno/vars/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..b24bc81
--- /dev/null
@@ -0,0 +1,108 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set networks = $getVar('network', [])
+#set storages = $getVar('storage', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $networks
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+deploy_type: $getVar('deploy_type', 'virtual')
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+# EXTERNAL_NETWORK_CIDR: $network_external_subnet
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..81f55ab
--- /dev/null
@@ -0,0 +1,7 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_kilo-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
+library = /opt/openstack-ansible-modules
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/allinone.tmpl
new file mode 100755 (executable)
index 0000000..35b8e0e
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_juno-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..35b8e0e
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_juno-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/ansible_cfg/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..35b8e0e
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_juno-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..9d628b5
--- /dev/null
@@ -0,0 +1,31 @@
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+# localhost
+127.0.0.1 localhost
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($compute, list)
+    #set computes = [$computes]
+#end if
+# controller
+#for worker in $controllers
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b777815
--- /dev/null
@@ -0,0 +1,10 @@
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+# allinone
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ca8c793
--- /dev/null
@@ -0,0 +1,110 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+# compute-controller
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# database
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# messaging
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-controller
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# image
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# identity
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-server
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# dashboard
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-volume
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-worker
+#for worker in $network_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# compute-worker
+#for worker in $compute_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/hosts/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..3ed9469
--- /dev/null
@@ -0,0 +1,40 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+# controller
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage
+#for worker in $storages
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network
+#for worker in $networks
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..277b452
--- /dev/null
@@ -0,0 +1,109 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set has = $getVar('ha', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#set ceph_adm_list = $getVar('ceph_adm',[])
+#set ceph_mon_list = $getVar('ceph_mon',[])
+#set ceph_osd_list = $getVar('ceph_osd',[])
+#set sec_patch_list = $getVar('sec_patch',[])
+#set ceph_osd_node_list = $getVar('ceph_osd_node',[])
+
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance(has, list)
+    #set has = [has]
+#end if
+#if not $isinstance(odls, list)
+    #set odls = [odls]
+#end if
+#if not $isinstance(onoss, list)
+    #set onoss = [onoss]
+#end if
+#if not $isinstance(ceph_adm_list, list)
+    #set ceph_adm_list = [ceph_adm_list]
+#end if
+#if not $isinstance(ceph_mon_list, list)
+    #set ceph_mon_list = [ceph_mon_list]
+#end if
+#if not $isinstance(ceph_osd_list, list)
+    #set ceph_osd_list = [ceph_osd_list]
+#end if
+#if not $isinstance(sec_patch_list, list)
+    #set sec_patch_list = [sec_patch_list]
+#end if
+#if not $isinstance(ceph_osd_node_list, list)
+    #set ceph_osd_node_list = [ceph_osd_node_list]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.install.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.install.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ha]
+#for ha in $has
+    #set ha_ip = $ha.install.ip
+    #set ha_hostname = $ha.hostname
+$ha_hostname ansible_ssh_host=$ha_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in $odls
+    #set odl_ip = $odl.install.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[onos]
+#for onos in $onoss
+    #set onos_ip = $onos.install.ip
+    #set onos_hostname = $onos.hostname
+$onos_hostname ansible_ssh_host=$onos_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_adm]
+#for ceph_adm in $ceph_adm_list
+    #set ceph_adm_ip = $ceph_adm.install.ip
+    #set ceph_adm_hostname = $ceph_adm.hostname
+$ceph_adm_hostname ansible_ssh_host=$ceph_adm_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_mon]
+#for ceph_mon in $ceph_mon_list
+    #set ceph_mon_ip = $ceph_mon.install.ip
+    #set ceph_mon_hostname = $ceph_mon.hostname
+$ceph_mon_hostname ansible_ssh_host=$ceph_mon_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd]
+#for ceph_osd in $ceph_osd_list
+    #set ceph_osd_ip = $ceph_osd.install.ip
+    #set ceph_osd_hostname = $ceph_osd.hostname
+$ceph_osd_hostname ansible_ssh_host=$ceph_osd_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[sec_patch]
+#for sec_patch in $sec_patch_list
+    #set sec_patch_ip = $sec_patch.install.ip
+    #set sec_patch_hostname = $sec_patch.hostname
+$sec_patch_hostname ansible_ssh_host=$sec_patch_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd_node]
+#for ceph_osd_node in $ceph_osd_node_list
+    #set ceph_osd_node_ip = $ceph_osd_node.install.ip
+    #set ceph_osd_node_hostname = $ceph_osd_node.hostname
+$ceph_osd_node_hostname ansible_ssh_host=$ceph_osd_node_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph:children]
+ceph_adm
+ceph_mon
+ceph_osd
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/allinone.tmpl
new file mode 100755 (executable)
index 0000000..38e0038
--- /dev/null
@@ -0,0 +1,47 @@
+#set controllers = $getVar('allinone_compute', [])
+#set computes = $getVar('allinone_compute', [])
+#set storages = $getVar('allinone_compute', [])
+#set networks = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..7cdfbef
--- /dev/null
@@ -0,0 +1,123 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[compute-controller]
+#for controller in $compute_controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute-worker]
+#for compute in $compute_workers
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-server]
+#for network in $network_servers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-worker]
+#for network in $network_workers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[database]
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[messaging]
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[image]
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[dashboard]
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[identity]
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-controller]
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-volume]
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/inventories/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..e1bf72c
--- /dev/null
@@ -0,0 +1,67 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($odls, list)
+    #set odls = [$odls]
+#end if
+#if not $isinstance($onoss, list)
+    #set onoss = [$onoss]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in odls
+    #set odl_ip = $odl.management.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..5987f44
--- /dev/null
@@ -0,0 +1,202 @@
+#from random import randint
+#set cluster_name = $getVar('name', '')
+#set network_cfg = $getVar('network_cfg', {})
+#set ntp_server = $getVar('ntp_server', "")
+#set ceph_disk = $getVar('ceph_disk',"")
+#set $sys_intf_mappings= {}
+#for $intf_info in $network_cfg.sys_intf_mappings
+#set $sys_intf_mappings[$intf_info["name"]] = $intf_info
+#end for  
+
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items() 
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+#set neutron_cfg = $getVar('neutron_config', {})
+#set ovs_config = $neutron_cfg.openvswitch
+
+#set has = $getVar('ha', [])
+#set ha_vip = $getVar('ha_vip', [])
+
+#set controllers = $getVar('controller', [])
+#set computers = $getVar('compute', [])
+
+enable_secgroup: $getVar('enable_secgroup', True)
+enable_fwaas: $getVar('enable_fwaas', True)
+enable_vpnaas: $getVar('enable_vpnaas', True)
+onos_nic: $getVar('onos_nic', 'eth2')
+ip_settings: $ip_settings
+network_cfg: $network_cfg
+sys_intf_mappings: $sys_intf_mappings
+deploy_type: $getVar('deploy_type', 'virtual')
+
+public_cidr: $computers[0]['install']['subnet']
+storage_cidr: "{{ ip_settings[inventory_hostname]['storage']['cidr'] }}"
+mgmt_cidr: "{{ ip_settings[inventory_hostname]['mgmt']['cidr'] }}"
+
+public_net_info: "{{ network_cfg.public_net_info }}"
+host_ip_settings: "{{ ip_settings[inventory_hostname] }}"
+
+ntp_server: $ntp_server
+internal_vip:
+  ip: $network_cfg["internal_vip"]["ip"]
+  netmask: $network_cfg["internal_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["interface"]
+#end if
+
+public_vip:
+  ip: $network_cfg["public_vip"]["ip"]
+  netmask: $network_cfg["public_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["interface"]
+#end if
+
+db_host: "{{ internal_vip.ip }}"
+rabbit_host: "{{ internal_vip.ip }}"
+
+internal_ip: "{{ ip_settings[inventory_hostname]['mgmt']['ip'] }}"
+internal_nic: mgmt
+
+#set random_id = randint(1, 255)
+vrouter_id_internal: $random_id
+vrouter_id_public: $random_id
+
+identity_host: "{{ internal_ip }}"
+controllers_host: "{{ internal_ip }}"
+storage_controller_host: "{{ internal_ip }}"
+compute_controller_host: "{{ internal_ip }}"
+image_host: "{{ internal_ip }}"
+network_server_host: "{{ internal_ip }}"
+dashboard_host: "{{ internal_ip }}"
+
+haproxy_hosts:
+#for $item in $has
+#set $hostname=$item["hostname"]
+  $hostname: $ip_settings[$hostname]["mgmt"]["ip"]
+#end for
+
+host_index:
+#for $index, $item in enumerate($has)
+  $item["hostname"]: $index
+#end for
+
+ERLANG_TOKEN: YOWSJSJIGGAUFZTIBRAD
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set keystone_pass = $console_credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set heat_dbpass = $credentials.heat.password
+#set heat_pass = $console_credentials.heat.password
+#set neutron_dbpass = $credentials.network.password
+#set neutron_pass = $console_credentials.network.password
+#set ceilometer_dbpass = $credentials.metering.password
+#set ceilometer_pass = $console_credentials.metering.password
+#set admin_pass = $console_credentials.admin.password
+#set demo_pass = $console_credentials.demo.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controllers_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+erlang.cookie: DJJVECFMCJPVYQTJTDWG
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+KEYSTONE_PASS: $keystone_pass
+CEILOMETER_DBPASS: $ceilometer_dbpass
+CEILOMETER_PASS: $ceilometer_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_dbpass
+NEUTRON_PASS: $neutron_pass
+HEAT_DBPASS: $heat_dbpass
+HEAT_PASS: $heat_pass
+DEMO_PASS: $demo_pass
+ADMIN_PASS: $admin_pass
+
+#set neutron_service_plugins=['router']
+
+#if $getVar('enable_fwaas', True)
+#neutron_service_plugins.append('firewall')
+#end if
+
+#if $getVar('enable_vpnaas', True)
+#neutron_service_plugins.append('vpnaas')
+#end if
+
+NEUTRON_SERVICE_PLUGINS: $neutron_service_plugins
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan', 'vlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['$ovs_config["tenant_network_type"]']
+NEUTRON_OVS_BRIDGE_MAPPINGS: $ovs_config['bridge_mappings']
+#if 'vlan_ranges' in $ovs_config
+NEUTRON_VLAN_RANGES: $ovs_config['vlan_ranges']
+#else
+NEUTRON_VLAN_RANGES: []
+#end if
+#if 'tunnel_id_ranges' in $ovs_config
+NEUTRON_TUNNEL_ID_RANGES: $ovs_config['tunnel_id_ranges']
+#else
+NEUTRON_TUNNEL_ID_RANGES: []
+#end if
+
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+WSREP_SST_USER: wsrep_sst
+WSREP_SST_PASS: wsrep_sst_sercet
+
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: "{{ internal_ip }}"
+
+#build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image: http://192.168.121.12:9999/img/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/allinone.tmpl
new file mode 100755 (executable)
index 0000000..740397c
--- /dev/null
@@ -0,0 +1,96 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $controllers
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password 
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+
+cluster_name: $cluster_name
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..da266a7
--- /dev/null
@@ -0,0 +1,165 @@
+#set cluster_name = $getVar('name', '')
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+db_host: $worker_ip
+#end for
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+rabbit_host: $worker_ip
+#end for
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+storage_controller_host: $worker_ip
+#end for
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+image_host: $worker_ip
+#end for
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+identity_host: $worker_ip
+#end for
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+network_server_host: $worker_ip
+#end for
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+dashboard_host: $worker_ip
+#end for
+#for network in $network_workers
+    #set network_external_nic = $network.external.interface
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ compute_controller_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_kilo/vars/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..b24bc81
--- /dev/null
@@ -0,0 +1,108 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set networks = $getVar('network', [])
+#set storages = $getVar('storage', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $networks
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+deploy_type: $getVar('deploy_type', 'virtual')
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+# EXTERNAL_NETWORK_CIDR: $network_external_subnet
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..f8dbfa1
--- /dev/null
@@ -0,0 +1,7 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_liberty-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
+library = /opt/openstack-ansible-modules
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/HA-ansible-multinodes.tmplr b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/HA-ansible-multinodes.tmplr
new file mode 100755 (executable)
index 0000000..f8dbfa1
--- /dev/null
@@ -0,0 +1,7 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_liberty-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
+library = /opt/openstack-ansible-modules
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/allinone.tmpl
new file mode 100755 (executable)
index 0000000..550a2ff
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_liberty-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/allinone.tmplr b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/allinone.tmplr
new file mode 100755 (executable)
index 0000000..550a2ff
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_liberty-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..550a2ff
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_liberty-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/multinodes.tmplr b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/multinodes.tmplr
new file mode 100755 (executable)
index 0000000..550a2ff
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_liberty-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..550a2ff
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_liberty-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/single-controller.tmplr b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/ansible_cfg/single-controller.tmplr
new file mode 100755 (executable)
index 0000000..550a2ff
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_liberty-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..9d628b5
--- /dev/null
@@ -0,0 +1,31 @@
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+# localhost
+127.0.0.1 localhost
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($compute, list)
+    #set computes = [$computes]
+#end if
+# controller
+#for worker in $controllers
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b777815
--- /dev/null
@@ -0,0 +1,10 @@
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+# allinone
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ca8c793
--- /dev/null
@@ -0,0 +1,110 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+# compute-controller
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# database
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# messaging
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-controller
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# image
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# identity
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-server
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# dashboard
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-volume
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-worker
+#for worker in $network_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# compute-worker
+#for worker in $compute_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/hosts/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..3ed9469
--- /dev/null
@@ -0,0 +1,40 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+# controller
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage
+#for worker in $storages
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network
+#for worker in $networks
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..94a6a15
--- /dev/null
@@ -0,0 +1,100 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set has = $getVar('ha', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#set opencontrails = $getVar('opencontrail', [])
+#set ceph_adm_list = $getVar('ceph_adm',[])
+#set ceph_mon_list = $getVar('ceph_mon',[])
+#set ceph_osd_list = $getVar('ceph_osd',[])
+
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance(has, list)
+    #set has = [has]
+#end if
+#if not $isinstance(odls, list)
+    #set odls = [odls]
+#end if
+#if not $isinstance(onoss, list)
+    #set onoss = [onoss]
+#end if
+#if not $isinstance(opencontrails, list)
+    #set opencontrails = [opencontrails]
+#end if
+#if not $isinstance(ceph_adm_list, list)
+    #set ceph_adm_list = [ceph_adm_list]
+#end if
+#if not $isinstance(ceph_mon_list, list)
+    #set ceph_mon_list = [ceph_mon_list]
+#end if
+#if not $isinstance(ceph_osd_list, list)
+    #set ceph_osd_list = [ceph_osd_list]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.install.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.install.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ha]
+#for ha in $has
+    #set ha_ip = $ha.install.ip
+    #set ha_hostname = $ha.hostname
+$ha_hostname ansible_ssh_host=$ha_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in $odls
+    #set odl_ip = $odl.install.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[onos]
+#for onos in $onoss
+    #set onos_ip = $onos.install.ip
+    #set onos_hostname = $onos.hostname
+$onos_hostname ansible_ssh_host=$onos_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[opencontrail]
+#for opencontrail in $opencontrails
+    #set opencontrail_ip = $opencontrail.install.ip
+    #set opencontrail_hostname = $opencontrail.hostname
+$opencontrail_hostname ansible_ssh_host=$opencontrail_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_adm]
+#for ceph_adm in $ceph_adm_list
+    #set ceph_adm_ip = $ceph_adm.install.ip
+    #set ceph_adm_hostname = $ceph_adm.hostname
+$ceph_adm_hostname ansible_ssh_host=$ceph_adm_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_mon]
+#for ceph_mon in $ceph_mon_list
+    #set ceph_mon_ip = $ceph_mon.install.ip
+    #set ceph_mon_hostname = $ceph_mon.hostname
+$ceph_mon_hostname ansible_ssh_host=$ceph_mon_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd]
+#for ceph_osd in $ceph_osd_list
+    #set ceph_osd_ip = $ceph_osd.install.ip
+    #set ceph_osd_hostname = $ceph_osd.hostname
+$ceph_osd_hostname ansible_ssh_host=$ceph_osd_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph:children]
+ceph_adm
+ceph_mon
+ceph_osd
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/allinone.tmpl
new file mode 100755 (executable)
index 0000000..38e0038
--- /dev/null
@@ -0,0 +1,47 @@
+#set controllers = $getVar('allinone_compute', [])
+#set computes = $getVar('allinone_compute', [])
+#set storages = $getVar('allinone_compute', [])
+#set networks = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..7cdfbef
--- /dev/null
@@ -0,0 +1,123 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[compute-controller]
+#for controller in $compute_controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute-worker]
+#for compute in $compute_workers
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-server]
+#for network in $network_servers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-worker]
+#for network in $network_workers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[database]
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[messaging]
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[image]
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[dashboard]
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[identity]
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-controller]
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-volume]
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/inventories/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..e1bf72c
--- /dev/null
@@ -0,0 +1,67 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($odls, list)
+    #set odls = [$odls]
+#end if
+#if not $isinstance($onoss, list)
+    #set onoss = [$onoss]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in odls
+    #set odl_ip = $odl.management.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..154cd44
--- /dev/null
@@ -0,0 +1,203 @@
+#from random import randint
+#set cluster_name = $getVar('name', '')
+#set network_cfg = $getVar('network_cfg', {})
+#set ntp_server = $getVar('ntp_server', "")
+#set ceph_disk = $getVar('ceph_disk',"")
+#set $sys_intf_mappings= {}
+#for $intf_info in $network_cfg.sys_intf_mappings
+#set $sys_intf_mappings[$intf_info["name"]] = $intf_info
+#end for  
+
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items() 
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+#set neutron_cfg = $getVar('neutron_config', {})
+#set ovs_config = $neutron_cfg.openvswitch
+
+#set has = $getVar('ha', [])
+#set ha_vip = $getVar('ha_vip', [])
+
+#set controllers = $getVar('controller', [])
+#set computers = $getVar('compute', [])
+
+enable_secgroup: $getVar('enable_secgroup', True)
+enable_fwaas: $getVar('enable_fwaas', True)
+enable_vpnaas: $getVar('enable_vpnaas', True)
+odl_l3_agent: $getVar('odl_l3_agent', 'Disable')
+onos_nic: $getVar('onos_nic', 'eth2')
+ip_settings: $ip_settings
+network_cfg: $network_cfg
+sys_intf_mappings: $sys_intf_mappings
+deploy_type: $getVar('deploy_type', 'virtual')
+
+public_cidr: $computers[0]['install']['subnet']
+storage_cidr: "{{ ip_settings[inventory_hostname]['storage']['cidr'] }}"
+mgmt_cidr: "{{ ip_settings[inventory_hostname]['mgmt']['cidr'] }}"
+
+public_net_info: "{{ network_cfg.public_net_info }}"
+host_ip_settings: "{{ ip_settings[inventory_hostname] }}"
+
+ntp_server: $ntp_server
+internal_vip:
+  ip: $network_cfg["internal_vip"]["ip"]
+  netmask: $network_cfg["internal_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["interface"]
+#end if
+
+public_vip:
+  ip: $network_cfg["public_vip"]["ip"]
+  netmask: $network_cfg["public_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["interface"]
+#end if
+
+db_host: "{{ internal_vip.ip }}"
+rabbit_host: "{{ internal_vip.ip }}"
+
+internal_ip: "{{ ip_settings[inventory_hostname]['mgmt']['ip'] }}"
+internal_nic: mgmt
+
+#set random_id = randint(1, 255)
+vrouter_id_internal: $random_id
+vrouter_id_public: $random_id
+
+identity_host: "{{ internal_ip }}"
+controllers_host: "{{ internal_ip }}"
+storage_controller_host: "{{ internal_ip }}"
+compute_controller_host: "{{ internal_ip }}"
+image_host: "{{ internal_ip }}"
+network_server_host: "{{ internal_ip }}"
+dashboard_host: "{{ internal_ip }}"
+
+haproxy_hosts:
+#for $item in $has
+#set $hostname=$item["hostname"]
+  $hostname: $ip_settings[$hostname]["mgmt"]["ip"]
+#end for
+
+host_index:
+#for $index, $item in enumerate($has)
+  $item["hostname"]: $index
+#end for
+
+ERLANG_TOKEN: YOWSJSJIGGAUFZTIBRAD
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set keystone_pass = $console_credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set heat_dbpass = $credentials.heat.password
+#set heat_pass = $console_credentials.heat.password
+#set neutron_dbpass = $credentials.network.password
+#set neutron_pass = $console_credentials.network.password
+#set ceilometer_dbpass = $credentials.metering.password
+#set ceilometer_pass = $console_credentials.metering.password
+#set admin_pass = $console_credentials.admin.password
+#set demo_pass = $console_credentials.demo.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controllers_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-juno.list
+juno_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+erlang.cookie: DJJVECFMCJPVYQTJTDWG
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+KEYSTONE_PASS: $keystone_pass
+CEILOMETER_DBPASS: $ceilometer_dbpass
+CEILOMETER_PASS: $ceilometer_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_dbpass
+NEUTRON_PASS: $neutron_pass
+HEAT_DBPASS: $heat_dbpass
+HEAT_PASS: $heat_pass
+DEMO_PASS: $demo_pass
+ADMIN_PASS: $admin_pass
+
+#set neutron_service_plugins=['router']
+
+#if $getVar('enable_fwaas', True)
+#neutron_service_plugins.append('firewall')
+#end if
+
+#if $getVar('enable_vpnaas', True)
+#neutron_service_plugins.append('vpnaas')
+#end if
+
+NEUTRON_SERVICE_PLUGINS: $neutron_service_plugins
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan', 'vlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['$ovs_config["tenant_network_type"]']
+NEUTRON_OVS_BRIDGE_MAPPINGS: $ovs_config['bridge_mappings']
+#if 'vlan_ranges' in $ovs_config
+NEUTRON_VLAN_RANGES: $ovs_config['vlan_ranges']
+#else
+NEUTRON_VLAN_RANGES: []
+#end if
+#if 'tunnel_id_ranges' in $ovs_config
+NEUTRON_TUNNEL_ID_RANGES: $ovs_config['tunnel_id_ranges']
+#else
+NEUTRON_TUNNEL_ID_RANGES: []
+#end if
+
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+WSREP_SST_USER: wsrep_sst
+WSREP_SST_PASS: wsrep_sst_sercet
+
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: "{{ internal_ip }}"
+
+#build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image: http://192.168.121.12:9999/img/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/allinone.tmpl
new file mode 100755 (executable)
index 0000000..09e4808
--- /dev/null
@@ -0,0 +1,96 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $controllers
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password 
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+
+cluster_name: $cluster_name
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-liberty.list
+liberty_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/liberty main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..eab6401
--- /dev/null
@@ -0,0 +1,165 @@
+#set cluster_name = $getVar('name', '')
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+db_host: $worker_ip
+#end for
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+rabbit_host: $worker_ip
+#end for
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+storage_controller_host: $worker_ip
+#end for
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+image_host: $worker_ip
+#end for
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+identity_host: $worker_ip
+#end for
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+network_server_host: $worker_ip
+#end for
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+dashboard_host: $worker_ip
+#end for
+#for network in $network_workers
+    #set network_external_nic = $network.external.interface
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ compute_controller_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-liberty.list
+liberty_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/liberty main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_liberty/vars/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..fe17604
--- /dev/null
@@ -0,0 +1,108 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set networks = $getVar('network', [])
+#set storages = $getVar('storage', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $networks
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+deploy_type: $getVar('deploy_type', 'virtual')
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-liberty.list
+liberty_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/liberty main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+# EXTERNAL_NETWORK_CIDR: $network_external_subnet
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ec9adb6
--- /dev/null
@@ -0,0 +1,7 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
+library = /opt/openstack-ansible-modules
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/allinone.tmpl
new file mode 100755 (executable)
index 0000000..ab1a0d7
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ab1a0d7
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/ansible_cfg/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..ab1a0d7
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..9d628b5
--- /dev/null
@@ -0,0 +1,31 @@
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+# localhost
+127.0.0.1 localhost
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($compute, list)
+    #set computes = [$computes]
+#end if
+# controller
+#for worker in $controllers
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b777815
--- /dev/null
@@ -0,0 +1,10 @@
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+# allinone
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ca8c793
--- /dev/null
@@ -0,0 +1,110 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+# compute-controller
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# database
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# messaging
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-controller
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# image
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# identity
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-server
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# dashboard
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-volume
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-worker
+#for worker in $network_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# compute-worker
+#for worker in $compute_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/hosts/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..3ed9469
--- /dev/null
@@ -0,0 +1,40 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+# controller
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage
+#for worker in $storages
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network
+#for worker in $networks
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..94a6a15
--- /dev/null
@@ -0,0 +1,100 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set has = $getVar('ha', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#set opencontrails = $getVar('opencontrail', [])
+#set ceph_adm_list = $getVar('ceph_adm',[])
+#set ceph_mon_list = $getVar('ceph_mon',[])
+#set ceph_osd_list = $getVar('ceph_osd',[])
+
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance(has, list)
+    #set has = [has]
+#end if
+#if not $isinstance(odls, list)
+    #set odls = [odls]
+#end if
+#if not $isinstance(onoss, list)
+    #set onoss = [onoss]
+#end if
+#if not $isinstance(opencontrails, list)
+    #set opencontrails = [opencontrails]
+#end if
+#if not $isinstance(ceph_adm_list, list)
+    #set ceph_adm_list = [ceph_adm_list]
+#end if
+#if not $isinstance(ceph_mon_list, list)
+    #set ceph_mon_list = [ceph_mon_list]
+#end if
+#if not $isinstance(ceph_osd_list, list)
+    #set ceph_osd_list = [ceph_osd_list]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.install.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.install.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ha]
+#for ha in $has
+    #set ha_ip = $ha.install.ip
+    #set ha_hostname = $ha.hostname
+$ha_hostname ansible_ssh_host=$ha_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in $odls
+    #set odl_ip = $odl.install.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[onos]
+#for onos in $onoss
+    #set onos_ip = $onos.install.ip
+    #set onos_hostname = $onos.hostname
+$onos_hostname ansible_ssh_host=$onos_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[opencontrail]
+#for opencontrail in $opencontrails
+    #set opencontrail_ip = $opencontrail.install.ip
+    #set opencontrail_hostname = $opencontrail.hostname
+$opencontrail_hostname ansible_ssh_host=$opencontrail_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_adm]
+#for ceph_adm in $ceph_adm_list
+    #set ceph_adm_ip = $ceph_adm.install.ip
+    #set ceph_adm_hostname = $ceph_adm.hostname
+$ceph_adm_hostname ansible_ssh_host=$ceph_adm_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_mon]
+#for ceph_mon in $ceph_mon_list
+    #set ceph_mon_ip = $ceph_mon.install.ip
+    #set ceph_mon_hostname = $ceph_mon.hostname
+$ceph_mon_hostname ansible_ssh_host=$ceph_mon_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd]
+#for ceph_osd in $ceph_osd_list
+    #set ceph_osd_ip = $ceph_osd.install.ip
+    #set ceph_osd_hostname = $ceph_osd.hostname
+$ceph_osd_hostname ansible_ssh_host=$ceph_osd_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph:children]
+ceph_adm
+ceph_mon
+ceph_osd
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/allinone.tmpl
new file mode 100755 (executable)
index 0000000..38e0038
--- /dev/null
@@ -0,0 +1,47 @@
+#set controllers = $getVar('allinone_compute', [])
+#set computes = $getVar('allinone_compute', [])
+#set storages = $getVar('allinone_compute', [])
+#set networks = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..7cdfbef
--- /dev/null
@@ -0,0 +1,123 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[compute-controller]
+#for controller in $compute_controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute-worker]
+#for compute in $compute_workers
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-server]
+#for network in $network_servers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-worker]
+#for network in $network_workers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[database]
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[messaging]
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[image]
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[dashboard]
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[identity]
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-controller]
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-volume]
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/inventories/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..e1bf72c
--- /dev/null
@@ -0,0 +1,67 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($odls, list)
+    #set odls = [$odls]
+#end if
+#if not $isinstance($onoss, list)
+    #set onoss = [$onoss]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in odls
+    #set odl_ip = $odl.management.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..605106b
--- /dev/null
@@ -0,0 +1,213 @@
+#from random import randint
+#set cluster_name = $getVar('name', '')
+#set network_cfg = $getVar('network_cfg', {})
+#set ntp_server = $getVar('ntp_server', "")
+#set ceph_disk = $getVar('ceph_disk',"")
+#set $sys_intf_mappings= {}
+#for $intf_info in $network_cfg.sys_intf_mappings
+#set $sys_intf_mappings[$intf_info["name"]] = $intf_info
+#end for
+
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+#set neutron_cfg = $getVar('neutron_config', {})
+#set ovs_config = $neutron_cfg.openvswitch
+
+#set has = $getVar('ha', [])
+#set ha_vip = $getVar('ha_vip', [])
+
+#set controllers = $getVar('controller', [])
+#set computers = $getVar('compute', [])
+
+enable_secgroup: $getVar('enable_secgroup', True)
+enable_fwaas: $getVar('enable_fwaas', True)
+enable_vpnaas: $getVar('enable_vpnaas', True)
+odl_l3_agent: $getVar('odl_l3_agent', 'Disable')
+onos_sfc: $getVar('onos_sfc', 'Disable')
+onos_nic: $getVar('onos_nic', 'eth2')
+odl_sfc: $getVar('odl_sfc', 'Disable')
+ip_settings: $ip_settings
+network_cfg: $network_cfg
+sys_intf_mappings: $sys_intf_mappings
+deploy_type: $getVar('deploy_type', 'virtual')
+
+public_cidr: $computers[0]['install']['subnet']
+storage_cidr: "{{ ip_settings[inventory_hostname]['storage']['cidr'] }}"
+mgmt_cidr: "{{ ip_settings[inventory_hostname]['mgmt']['cidr'] }}"
+
+public_net_info: "{{ network_cfg.public_net_info }}"
+host_ip_settings: "{{ ip_settings[inventory_hostname] }}"
+
+ntp_server: $ntp_server
+internal_vip:
+  ip: $network_cfg["internal_vip"]["ip"]
+  netmask: $network_cfg["internal_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["interface"]
+#end if
+
+public_vip:
+  ip: $network_cfg["public_vip"]["ip"]
+  netmask: $network_cfg["public_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["interface"]
+#end if
+
+db_host: "{{ internal_vip.ip }}"
+rabbit_host: "{{ internal_vip.ip }}"
+
+internal_ip: "{{ ip_settings[inventory_hostname]['mgmt']['ip'] }}"
+internal_nic: mgmt
+
+#set random_id = randint(1, 255)
+vrouter_id_internal: $random_id
+vrouter_id_public: $random_id
+
+identity_host: "{{ internal_ip }}"
+controllers_host: "{{ internal_ip }}"
+storage_controller_host: "{{ internal_ip }}"
+compute_controller_host: "{{ internal_ip }}"
+image_host: "{{ internal_ip }}"
+network_server_host: "{{ internal_ip }}"
+dashboard_host: "{{ internal_ip }}"
+
+haproxy_hosts:
+#for $item in $has
+#set $hostname=$item["hostname"]
+  $hostname: $ip_settings[$hostname]["mgmt"]["ip"]
+#end for
+
+host_index:
+#for $index, $item in enumerate($has)
+  $item["hostname"]: $index
+#end for
+
+ERLANG_TOKEN: YOWSJSJIGGAUFZTIBRAD
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set keystone_pass = $console_credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set heat_dbpass = $credentials.heat.password
+#set heat_pass = $console_credentials.heat.password
+#set neutron_dbpass = $credentials.network.password
+#set neutron_pass = $console_credentials.network.password
+#set ceilometer_dbpass = $credentials.metering.password
+#set ceilometer_pass = $console_credentials.metering.password
+#set aodh_dbpass = $credentials.alarming.password
+#set aodh_pass = $console_credentials.alarming.password
+#set congress_dbpass = $credentials.policy.password
+#set congress_pass = $console_credentials.policy.password
+#set admin_pass = $console_credentials.admin.password
+#set demo_pass = $console_credentials.demo.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controllers_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+erlang.cookie: DJJVECFMCJPVYQTJTDWG
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+KEYSTONE_PASS: $keystone_pass
+CEILOMETER_DBPASS: $ceilometer_dbpass
+CEILOMETER_PASS: $ceilometer_pass
+AODH_DBPASS: $aodh_dbpass
+AODH_PASS: $aodh_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_dbpass
+NEUTRON_PASS: $neutron_pass
+HEAT_DBPASS: $heat_dbpass
+HEAT_PASS: $heat_pass
+CONGRESS_DBPASS: $congress_dbpass
+CONGRESS_PASS: $congress_pass
+DEMO_PASS: $demo_pass
+ADMIN_PASS: $admin_pass
+
+#set neutron_service_plugins=['router']
+
+#if $getVar('enable_fwaas', True)
+#neutron_service_plugins.append('firewall')
+#end if
+
+#if $getVar('enable_vpnaas', True)
+#neutron_service_plugins.append('vpnaas')
+#end if
+
+NEUTRON_SERVICE_PLUGINS: $neutron_service_plugins
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan', 'vlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['$ovs_config["tenant_network_type"]']
+NEUTRON_OVS_BRIDGE_MAPPINGS: $ovs_config['bridge_mappings']
+#if 'vlan_ranges' in $ovs_config
+NEUTRON_VLAN_RANGES: $ovs_config['vlan_ranges']
+#else
+NEUTRON_VLAN_RANGES: []
+#end if
+#if 'tunnel_id_ranges' in $ovs_config
+NEUTRON_TUNNEL_ID_RANGES: $ovs_config['tunnel_id_ranges']
+#else
+NEUTRON_TUNNEL_ID_RANGES: []
+#end if
+
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+WSREP_SST_USER: wsrep_sst
+WSREP_SST_PASS: wsrep_sst_sercet
+
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: "{{ internal_ip }}"
+
+#build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image: http://192.168.121.12:9999/img/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b13973d
--- /dev/null
@@ -0,0 +1,96 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $controllers
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+
+cluster_name: $cluster_name
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..3828c0d
--- /dev/null
@@ -0,0 +1,165 @@
+#set cluster_name = $getVar('name', '')
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+db_host: $worker_ip
+#end for
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+rabbit_host: $worker_ip
+#end for
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+storage_controller_host: $worker_ip
+#end for
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+image_host: $worker_ip
+#end for
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+identity_host: $worker_ip
+#end for
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+network_server_host: $worker_ip
+#end for
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+dashboard_host: $worker_ip
+#end for
+#for network in $network_workers
+    #set network_external_nic = $network.external.interface
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ compute_controller_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka/vars/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..9986022
--- /dev/null
@@ -0,0 +1,108 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set networks = $getVar('network', [])
+#set storages = $getVar('storage', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $networks
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+deploy_type: $getVar('deploy_type', 'virtual')
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+# EXTERNAL_NETWORK_CIDR: $network_external_subnet
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..4f9fd71
--- /dev/null
@@ -0,0 +1,7 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka_xenial-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
+library = /opt/openstack-ansible-modules
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/allinone.tmpl
new file mode 100755 (executable)
index 0000000..60c0946
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka_xenial-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..60c0946
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka_xenial-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/ansible_cfg/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..60c0946
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka_xenial-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..9d628b5
--- /dev/null
@@ -0,0 +1,31 @@
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+# localhost
+127.0.0.1 localhost
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($compute, list)
+    #set computes = [$computes]
+#end if
+# controller
+#for worker in $controllers
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b777815
--- /dev/null
@@ -0,0 +1,10 @@
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+# allinone
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ca8c793
--- /dev/null
@@ -0,0 +1,110 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+# compute-controller
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# database
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# messaging
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-controller
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# image
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# identity
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-server
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# dashboard
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-volume
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-worker
+#for worker in $network_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# compute-worker
+#for worker in $compute_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/hosts/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..3ed9469
--- /dev/null
@@ -0,0 +1,40 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+# controller
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage
+#for worker in $storages
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network
+#for worker in $networks
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..94a6a15
--- /dev/null
@@ -0,0 +1,100 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set has = $getVar('ha', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#set opencontrails = $getVar('opencontrail', [])
+#set ceph_adm_list = $getVar('ceph_adm',[])
+#set ceph_mon_list = $getVar('ceph_mon',[])
+#set ceph_osd_list = $getVar('ceph_osd',[])
+
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance(has, list)
+    #set has = [has]
+#end if
+#if not $isinstance(odls, list)
+    #set odls = [odls]
+#end if
+#if not $isinstance(onoss, list)
+    #set onoss = [onoss]
+#end if
+#if not $isinstance(opencontrails, list)
+    #set opencontrails = [opencontrails]
+#end if
+#if not $isinstance(ceph_adm_list, list)
+    #set ceph_adm_list = [ceph_adm_list]
+#end if
+#if not $isinstance(ceph_mon_list, list)
+    #set ceph_mon_list = [ceph_mon_list]
+#end if
+#if not $isinstance(ceph_osd_list, list)
+    #set ceph_osd_list = [ceph_osd_list]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.install.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.install.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ha]
+#for ha in $has
+    #set ha_ip = $ha.install.ip
+    #set ha_hostname = $ha.hostname
+$ha_hostname ansible_ssh_host=$ha_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in $odls
+    #set odl_ip = $odl.install.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[onos]
+#for onos in $onoss
+    #set onos_ip = $onos.install.ip
+    #set onos_hostname = $onos.hostname
+$onos_hostname ansible_ssh_host=$onos_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[opencontrail]
+#for opencontrail in $opencontrails
+    #set opencontrail_ip = $opencontrail.install.ip
+    #set opencontrail_hostname = $opencontrail.hostname
+$opencontrail_hostname ansible_ssh_host=$opencontrail_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_adm]
+#for ceph_adm in $ceph_adm_list
+    #set ceph_adm_ip = $ceph_adm.install.ip
+    #set ceph_adm_hostname = $ceph_adm.hostname
+$ceph_adm_hostname ansible_ssh_host=$ceph_adm_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_mon]
+#for ceph_mon in $ceph_mon_list
+    #set ceph_mon_ip = $ceph_mon.install.ip
+    #set ceph_mon_hostname = $ceph_mon.hostname
+$ceph_mon_hostname ansible_ssh_host=$ceph_mon_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd]
+#for ceph_osd in $ceph_osd_list
+    #set ceph_osd_ip = $ceph_osd.install.ip
+    #set ceph_osd_hostname = $ceph_osd.hostname
+$ceph_osd_hostname ansible_ssh_host=$ceph_osd_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph:children]
+ceph_adm
+ceph_mon
+ceph_osd
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/allinone.tmpl
new file mode 100755 (executable)
index 0000000..38e0038
--- /dev/null
@@ -0,0 +1,47 @@
+#set controllers = $getVar('allinone_compute', [])
+#set computes = $getVar('allinone_compute', [])
+#set storages = $getVar('allinone_compute', [])
+#set networks = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..7cdfbef
--- /dev/null
@@ -0,0 +1,123 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[compute-controller]
+#for controller in $compute_controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute-worker]
+#for compute in $compute_workers
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-server]
+#for network in $network_servers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-worker]
+#for network in $network_workers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[database]
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[messaging]
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[image]
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[dashboard]
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[identity]
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-controller]
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-volume]
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/inventories/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..e1bf72c
--- /dev/null
@@ -0,0 +1,67 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($odls, list)
+    #set odls = [$odls]
+#end if
+#if not $isinstance($onoss, list)
+    #set onoss = [$onoss]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in odls
+    #set odl_ip = $odl.management.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..3e9a684
--- /dev/null
@@ -0,0 +1,209 @@
+#from random import randint
+#set cluster_name = $getVar('name', '')
+#set network_cfg = $getVar('network_cfg', {})
+#set ntp_server = $getVar('ntp_server', "")
+#set ceph_disk = $getVar('ceph_disk',"")
+#set $sys_intf_mappings= {}
+#for $intf_info in $network_cfg.sys_intf_mappings
+#set $sys_intf_mappings[$intf_info["name"]] = $intf_info
+#end for
+
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+#set neutron_cfg = $getVar('neutron_config', {})
+#set ovs_config = $neutron_cfg.openvswitch
+
+#set has = $getVar('ha', [])
+#set ha_vip = $getVar('ha_vip', [])
+
+#set controllers = $getVar('controller', [])
+#set computers = $getVar('compute', [])
+
+enable_secgroup: $getVar('enable_secgroup', True)
+enable_fwaas: $getVar('enable_fwaas', True)
+enable_vpnaas: $getVar('enable_vpnaas', True)
+odl_l3_agent: $getVar('odl_l3_agent', 'Disable')
+moon: $getVar('moon', 'Disable')
+ha_network: $getVar('ha_network', 'Disable')
+onos_nic: $getVar('onos_nic', 'eth2')
+ip_settings: $ip_settings
+network_cfg: $network_cfg
+sys_intf_mappings: $sys_intf_mappings
+deploy_type: $getVar('deploy_type', 'virtual')
+
+public_cidr: $computers[0]['install']['subnet']
+storage_cidr: "{{ ip_settings[inventory_hostname]['storage']['cidr'] }}"
+mgmt_cidr: "{{ ip_settings[inventory_hostname]['mgmt']['cidr'] }}"
+
+public_net_info: "{{ network_cfg.public_net_info }}"
+host_ip_settings: "{{ ip_settings[inventory_hostname] }}"
+
+ntp_server: $ntp_server
+internal_vip:
+  ip: $network_cfg["internal_vip"]["ip"]
+  netmask: $network_cfg["internal_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["interface"]
+#end if
+
+public_vip:
+  ip: $network_cfg["public_vip"]["ip"]
+  netmask: $network_cfg["public_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["interface"]
+#end if
+
+db_host: "{{ internal_vip.ip }}"
+rabbit_host: "{{ internal_vip.ip }}"
+
+internal_ip: "{{ ip_settings[inventory_hostname]['mgmt']['ip'] }}"
+internal_nic: mgmt
+
+#set random_id = randint(1, 255)
+vrouter_id_internal: $random_id
+vrouter_id_public: $random_id
+
+identity_host: "{{ internal_ip }}"
+controllers_host: "{{ internal_ip }}"
+storage_controller_host: "{{ internal_ip }}"
+compute_controller_host: "{{ internal_ip }}"
+image_host: "{{ internal_ip }}"
+network_server_host: "{{ internal_ip }}"
+dashboard_host: "{{ internal_ip }}"
+
+haproxy_hosts:
+#for $item in $has
+#set $hostname=$item["hostname"]
+  $hostname: $ip_settings[$hostname]["mgmt"]["ip"]
+#end for
+
+host_index:
+#for $index, $item in enumerate($has)
+  $item["hostname"]: $index
+#end for
+
+ERLANG_TOKEN: YOWSJSJIGGAUFZTIBRAD
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set keystone_pass = $console_credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set heat_dbpass = $credentials.heat.password
+#set heat_pass = $console_credentials.heat.password
+#set neutron_dbpass = $credentials.network.password
+#set neutron_pass = $console_credentials.network.password
+#set ceilometer_dbpass = $credentials.metering.password
+#set ceilometer_pass = $console_credentials.metering.password
+#set aodh_dbpass = $credentials.alarming.password
+#set aodh_pass = $console_credentials.alarming.password
+#set admin_pass = $console_credentials.admin.password
+#set demo_pass = $console_credentials.demo.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controllers_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+erlang.cookie: DJJVECFMCJPVYQTJTDWG
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+KEYSTONE_PASS: $keystone_pass
+CEILOMETER_DBPASS: $ceilometer_dbpass
+CEILOMETER_PASS: $ceilometer_pass
+AODH_DBPASS: $aodh_dbpass
+AODH_PASS: $aodh_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_dbpass
+NEUTRON_PASS: $neutron_pass
+HEAT_DBPASS: $heat_dbpass
+HEAT_PASS: $heat_pass
+DEMO_PASS: $demo_pass
+ADMIN_PASS: $admin_pass
+
+#set neutron_service_plugins=['router']
+
+#if $getVar('enable_fwaas', True)
+#neutron_service_plugins.append('firewall')
+#end if
+
+#if $getVar('enable_vpnaas', True)
+#neutron_service_plugins.append('vpnaas')
+#end if
+
+NEUTRON_SERVICE_PLUGINS: $neutron_service_plugins
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan', 'vlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['$ovs_config["tenant_network_type"]']
+NEUTRON_OVS_BRIDGE_MAPPINGS: $ovs_config['bridge_mappings']
+#if 'vlan_ranges' in $ovs_config
+NEUTRON_VLAN_RANGES: $ovs_config['vlan_ranges']
+#else
+NEUTRON_VLAN_RANGES: []
+#end if
+#if 'tunnel_id_ranges' in $ovs_config
+NEUTRON_TUNNEL_ID_RANGES: $ovs_config['tunnel_id_ranges']
+#else
+NEUTRON_TUNNEL_ID_RANGES: []
+#end if
+
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+WSREP_SST_USER: wsrep_sst
+WSREP_SST_PASS: wsrep_sst_sercet
+
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: "{{ internal_ip }}"
+
+#build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image: http://192.168.121.12:9999/img/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b13973d
--- /dev/null
@@ -0,0 +1,96 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $controllers
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+
+cluster_name: $cluster_name
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..3828c0d
--- /dev/null
@@ -0,0 +1,165 @@
+#set cluster_name = $getVar('name', '')
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+db_host: $worker_ip
+#end for
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+rabbit_host: $worker_ip
+#end for
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+storage_controller_host: $worker_ip
+#end for
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+image_host: $worker_ip
+#end for
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+identity_host: $worker_ip
+#end for
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+network_server_host: $worker_ip
+#end for
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+dashboard_host: $worker_ip
+#end for
+#for network in $network_workers
+    #set network_external_nic = $network.external.interface
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ compute_controller_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_mitaka_xenial/vars/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..9986022
--- /dev/null
@@ -0,0 +1,108 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set networks = $getVar('network', [])
+#set storages = $getVar('storage', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $networks
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+deploy_type: $getVar('deploy_type', 'virtual')
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+# EXTERNAL_NETWORK_CIDR: $network_external_subnet
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..aece7ae
--- /dev/null
@@ -0,0 +1,7 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_newton_xenial-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
+library = /opt/openstack-ansible-modules
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/allinone.tmpl
new file mode 100755 (executable)
index 0000000..8265713
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_newton_xenial-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..8265713
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_newton_xenial-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/ansible_cfg/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..8265713
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_newton_xenial-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..9d628b5
--- /dev/null
@@ -0,0 +1,31 @@
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+# localhost
+127.0.0.1 localhost
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($compute, list)
+    #set computes = [$computes]
+#end if
+# controller
+#for worker in $controllers
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b777815
--- /dev/null
@@ -0,0 +1,10 @@
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+# allinone
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ca8c793
--- /dev/null
@@ -0,0 +1,110 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+# compute-controller
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# database
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# messaging
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-controller
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# image
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# identity
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-server
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# dashboard
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-volume
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-worker
+#for worker in $network_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# compute-worker
+#for worker in $compute_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/hosts/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..3ed9469
--- /dev/null
@@ -0,0 +1,40 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+# controller
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage
+#for worker in $storages
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network
+#for worker in $networks
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..94a6a15
--- /dev/null
@@ -0,0 +1,100 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set has = $getVar('ha', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#set opencontrails = $getVar('opencontrail', [])
+#set ceph_adm_list = $getVar('ceph_adm',[])
+#set ceph_mon_list = $getVar('ceph_mon',[])
+#set ceph_osd_list = $getVar('ceph_osd',[])
+
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance(has, list)
+    #set has = [has]
+#end if
+#if not $isinstance(odls, list)
+    #set odls = [odls]
+#end if
+#if not $isinstance(onoss, list)
+    #set onoss = [onoss]
+#end if
+#if not $isinstance(opencontrails, list)
+    #set opencontrails = [opencontrails]
+#end if
+#if not $isinstance(ceph_adm_list, list)
+    #set ceph_adm_list = [ceph_adm_list]
+#end if
+#if not $isinstance(ceph_mon_list, list)
+    #set ceph_mon_list = [ceph_mon_list]
+#end if
+#if not $isinstance(ceph_osd_list, list)
+    #set ceph_osd_list = [ceph_osd_list]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.install.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.install.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ha]
+#for ha in $has
+    #set ha_ip = $ha.install.ip
+    #set ha_hostname = $ha.hostname
+$ha_hostname ansible_ssh_host=$ha_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in $odls
+    #set odl_ip = $odl.install.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[onos]
+#for onos in $onoss
+    #set onos_ip = $onos.install.ip
+    #set onos_hostname = $onos.hostname
+$onos_hostname ansible_ssh_host=$onos_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[opencontrail]
+#for opencontrail in $opencontrails
+    #set opencontrail_ip = $opencontrail.install.ip
+    #set opencontrail_hostname = $opencontrail.hostname
+$opencontrail_hostname ansible_ssh_host=$opencontrail_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_adm]
+#for ceph_adm in $ceph_adm_list
+    #set ceph_adm_ip = $ceph_adm.install.ip
+    #set ceph_adm_hostname = $ceph_adm.hostname
+$ceph_adm_hostname ansible_ssh_host=$ceph_adm_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_mon]
+#for ceph_mon in $ceph_mon_list
+    #set ceph_mon_ip = $ceph_mon.install.ip
+    #set ceph_mon_hostname = $ceph_mon.hostname
+$ceph_mon_hostname ansible_ssh_host=$ceph_mon_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd]
+#for ceph_osd in $ceph_osd_list
+    #set ceph_osd_ip = $ceph_osd.install.ip
+    #set ceph_osd_hostname = $ceph_osd.hostname
+$ceph_osd_hostname ansible_ssh_host=$ceph_osd_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph:children]
+ceph_adm
+ceph_mon
+ceph_osd
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/allinone.tmpl
new file mode 100755 (executable)
index 0000000..38e0038
--- /dev/null
@@ -0,0 +1,47 @@
+#set controllers = $getVar('allinone_compute', [])
+#set computes = $getVar('allinone_compute', [])
+#set storages = $getVar('allinone_compute', [])
+#set networks = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..7cdfbef
--- /dev/null
@@ -0,0 +1,123 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[compute-controller]
+#for controller in $compute_controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute-worker]
+#for compute in $compute_workers
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-server]
+#for network in $network_servers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-worker]
+#for network in $network_workers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[database]
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[messaging]
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[image]
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[dashboard]
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[identity]
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-controller]
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-volume]
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/inventories/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..e1bf72c
--- /dev/null
@@ -0,0 +1,67 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($odls, list)
+    #set odls = [$odls]
+#end if
+#if not $isinstance($onoss, list)
+    #set onoss = [$onoss]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in odls
+    #set odl_ip = $odl.management.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..2205431
--- /dev/null
@@ -0,0 +1,209 @@
+#from random import randint
+#set cluster_name = $getVar('name', '')
+#set network_cfg = $getVar('network_cfg', {})
+#set ntp_server = $getVar('ntp_server', "")
+#set ceph_disk = $getVar('ceph_disk',"")
+#set $sys_intf_mappings= {}
+#for $intf_info in $network_cfg.sys_intf_mappings
+#set $sys_intf_mappings[$intf_info["name"]] = $intf_info
+#end for
+
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+#set neutron_cfg = $getVar('neutron_config', {})
+#set ovs_config = $neutron_cfg.openvswitch
+
+#set has = $getVar('ha', [])
+#set ha_vip = $getVar('ha_vip', [])
+
+#set controllers = $getVar('controller', [])
+#set computers = $getVar('compute', [])
+
+enable_secgroup: $getVar('enable_secgroup', True)
+enable_fwaas: $getVar('enable_fwaas', True)
+enable_vpnaas: $getVar('enable_vpnaas', True)
+odl_l3_agent: $getVar('odl_l3_agent', 'Disable')
+moon: $getVar('moon', 'Disable')
+ha_network: $getVar('ha_network', 'Disable')
+onos_nic: $getVar('onos_nic', 'eth2')
+ip_settings: $ip_settings
+network_cfg: $network_cfg
+sys_intf_mappings: $sys_intf_mappings
+deploy_type: $getVar('deploy_type', 'virtual')
+
+public_cidr: $computers[0]['install']['subnet']
+storage_cidr: "{{ ip_settings[inventory_hostname]['storage']['cidr'] }}"
+mgmt_cidr: "{{ ip_settings[inventory_hostname]['mgmt']['cidr'] }}"
+
+public_net_info: "{{ network_cfg.public_net_info }}"
+host_ip_settings: "{{ ip_settings[inventory_hostname] }}"
+
+ntp_server: $ntp_server
+internal_vip:
+  ip: $network_cfg["internal_vip"]["ip"]
+  netmask: $network_cfg["internal_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["interface"]
+#end if
+
+public_vip:
+  ip: $network_cfg["public_vip"]["ip"]
+  netmask: $network_cfg["public_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["interface"]
+#end if
+
+db_host: "{{ internal_vip.ip }}"
+rabbit_host: "{{ internal_vip.ip }}"
+
+internal_ip: "{{ ip_settings[inventory_hostname]['mgmt']['ip'] }}"
+internal_nic: mgmt
+
+#set random_id = randint(1, 255)
+vrouter_id_internal: $random_id
+vrouter_id_public: $random_id
+
+identity_host: "{{ internal_ip }}"
+controllers_host: "{{ internal_ip }}"
+storage_controller_host: "{{ internal_ip }}"
+compute_controller_host: "{{ internal_ip }}"
+image_host: "{{ internal_ip }}"
+network_server_host: "{{ internal_ip }}"
+dashboard_host: "{{ internal_ip }}"
+
+haproxy_hosts:
+#for $item in $has
+#set $hostname=$item["hostname"]
+  $hostname: $ip_settings[$hostname]["mgmt"]["ip"]
+#end for
+
+host_index:
+#for $index, $item in enumerate($has)
+  $item["hostname"]: $index
+#end for
+
+ERLANG_TOKEN: YOWSJSJIGGAUFZTIBRAD
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set keystone_pass = $console_credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set heat_dbpass = $credentials.heat.password
+#set heat_pass = $console_credentials.heat.password
+#set neutron_dbpass = $credentials.network.password
+#set neutron_pass = $console_credentials.network.password
+#set ceilometer_dbpass = $credentials.metering.password
+#set ceilometer_pass = $console_credentials.metering.password
+#set aodh_dbpass = $credentials.alarming.password
+#set aodh_pass = $console_credentials.alarming.password
+#set admin_pass = $console_credentials.admin.password
+#set demo_pass = $console_credentials.demo.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controllers_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-newton.list
+newton_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/newton main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+erlang.cookie: DJJVECFMCJPVYQTJTDWG
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+KEYSTONE_PASS: $keystone_pass
+CEILOMETER_DBPASS: $ceilometer_dbpass
+CEILOMETER_PASS: $ceilometer_pass
+AODH_DBPASS: $aodh_dbpass
+AODH_PASS: $aodh_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_dbpass
+NEUTRON_PASS: $neutron_pass
+HEAT_DBPASS: $heat_dbpass
+HEAT_PASS: $heat_pass
+DEMO_PASS: $demo_pass
+ADMIN_PASS: $admin_pass
+
+#set neutron_service_plugins=['router']
+
+#if $getVar('enable_fwaas', True)
+#neutron_service_plugins.append('firewall')
+#end if
+
+#if $getVar('enable_vpnaas', True)
+#neutron_service_plugins.append('vpnaas')
+#end if
+
+NEUTRON_SERVICE_PLUGINS: $neutron_service_plugins
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan', 'vlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['$ovs_config["tenant_network_type"]']
+NEUTRON_OVS_BRIDGE_MAPPINGS: $ovs_config['bridge_mappings']
+#if 'vlan_ranges' in $ovs_config
+NEUTRON_VLAN_RANGES: $ovs_config['vlan_ranges']
+#else
+NEUTRON_VLAN_RANGES: []
+#end if
+#if 'tunnel_id_ranges' in $ovs_config
+NEUTRON_TUNNEL_ID_RANGES: $ovs_config['tunnel_id_ranges']
+#else
+NEUTRON_TUNNEL_ID_RANGES: []
+#end if
+
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+WSREP_SST_USER: wsrep_sst
+WSREP_SST_PASS: wsrep_sst_sercet
+
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: "{{ internal_ip }}"
+
+#build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image: http://192.168.121.12:9999/img/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/allinone.tmpl
new file mode 100755 (executable)
index 0000000..a28897b
--- /dev/null
@@ -0,0 +1,96 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $controllers
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+
+cluster_name: $cluster_name
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-newton.list
+newton_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/newton main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..16134e7
--- /dev/null
@@ -0,0 +1,165 @@
+#set cluster_name = $getVar('name', '')
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+db_host: $worker_ip
+#end for
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+rabbit_host: $worker_ip
+#end for
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+storage_controller_host: $worker_ip
+#end for
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+image_host: $worker_ip
+#end for
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+identity_host: $worker_ip
+#end for
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+network_server_host: $worker_ip
+#end for
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+dashboard_host: $worker_ip
+#end for
+#for network in $network_workers
+    #set network_external_nic = $network.external.interface
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ compute_controller_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-newton.list
+newton_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/newton main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_newton_xenial/vars/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..70b0181
--- /dev/null
@@ -0,0 +1,108 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set networks = $getVar('network', [])
+#set storages = $getVar('storage', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $networks
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+deploy_type: $getVar('deploy_type', 'virtual')
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-newton.list
+newton_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/newton main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+# EXTERNAL_NETWORK_CIDR: $network_external_subnet
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..55d80ae
--- /dev/null
@@ -0,0 +1,7 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_osp9-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
+library = /opt/openstack-ansible-modules
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/allinone.tmpl
new file mode 100755 (executable)
index 0000000..ab1a0d7
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ab1a0d7
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/ansible_cfg/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..ab1a0d7
--- /dev/null
@@ -0,0 +1,6 @@
+#set cluster_name = $getVar('name', '')
+[defaults]
+log_path = /var/ansible/run/openstack_mitaka-$cluster_name/ansible.log
+host_key_checking = False
+callback_plugins = /opt/compass/bin/ansible_callbacks
+pipelining=True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..9d628b5
--- /dev/null
@@ -0,0 +1,31 @@
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+# localhost
+127.0.0.1 localhost
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($compute, list)
+    #set computes = [$computes]
+#end if
+# controller
+#for worker in $controllers
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_hostname = $worker.hostname
+    #set worker_ip = $ip_settings[$worker_hostname].mgmt.ip
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b777815
--- /dev/null
@@ -0,0 +1,10 @@
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+# allinone
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..ca8c793
--- /dev/null
@@ -0,0 +1,110 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+# compute-controller
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# database
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# messaging
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-controller
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# image
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# identity
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-server
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# dashboard
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage-volume
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network-worker
+#for worker in $network_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# compute-worker
+#for worker in $compute_workers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/hosts/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..3ed9469
--- /dev/null
@@ -0,0 +1,40 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+# controller
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_ip $controller_hostname
+#end for
+# compute
+#for worker in $computes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# storage
+#for worker in $storages
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
+# network
+#for worker in $networks
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_ip $worker_hostname
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..94a6a15
--- /dev/null
@@ -0,0 +1,100 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set has = $getVar('ha', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#set opencontrails = $getVar('opencontrail', [])
+#set ceph_adm_list = $getVar('ceph_adm',[])
+#set ceph_mon_list = $getVar('ceph_mon',[])
+#set ceph_osd_list = $getVar('ceph_osd',[])
+
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance(has, list)
+    #set has = [has]
+#end if
+#if not $isinstance(odls, list)
+    #set odls = [odls]
+#end if
+#if not $isinstance(onoss, list)
+    #set onoss = [onoss]
+#end if
+#if not $isinstance(opencontrails, list)
+    #set opencontrails = [opencontrails]
+#end if
+#if not $isinstance(ceph_adm_list, list)
+    #set ceph_adm_list = [ceph_adm_list]
+#end if
+#if not $isinstance(ceph_mon_list, list)
+    #set ceph_mon_list = [ceph_mon_list]
+#end if
+#if not $isinstance(ceph_osd_list, list)
+    #set ceph_osd_list = [ceph_osd_list]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.install.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.install.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ha]
+#for ha in $has
+    #set ha_ip = $ha.install.ip
+    #set ha_hostname = $ha.hostname
+$ha_hostname ansible_ssh_host=$ha_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in $odls
+    #set odl_ip = $odl.install.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[onos]
+#for onos in $onoss
+    #set onos_ip = $onos.install.ip
+    #set onos_hostname = $onos.hostname
+$onos_hostname ansible_ssh_host=$onos_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[opencontrail]
+#for opencontrail in $opencontrails
+    #set opencontrail_ip = $opencontrail.install.ip
+    #set opencontrail_hostname = $opencontrail.hostname
+$opencontrail_hostname ansible_ssh_host=$opencontrail_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_adm]
+#for ceph_adm in $ceph_adm_list
+    #set ceph_adm_ip = $ceph_adm.install.ip
+    #set ceph_adm_hostname = $ceph_adm.hostname
+$ceph_adm_hostname ansible_ssh_host=$ceph_adm_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_mon]
+#for ceph_mon in $ceph_mon_list
+    #set ceph_mon_ip = $ceph_mon.install.ip
+    #set ceph_mon_hostname = $ceph_mon.hostname
+$ceph_mon_hostname ansible_ssh_host=$ceph_mon_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph_osd]
+#for ceph_osd in $ceph_osd_list
+    #set ceph_osd_ip = $ceph_osd.install.ip
+    #set ceph_osd_hostname = $ceph_osd.hostname
+$ceph_osd_hostname ansible_ssh_host=$ceph_osd_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[ceph:children]
+ceph_adm
+ceph_mon
+ceph_osd
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/allinone.tmpl
new file mode 100755 (executable)
index 0000000..38e0038
--- /dev/null
@@ -0,0 +1,47 @@
+#set controllers = $getVar('allinone_compute', [])
+#set computes = $getVar('allinone_compute', [])
+#set storages = $getVar('allinone_compute', [])
+#set networks = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..7cdfbef
--- /dev/null
@@ -0,0 +1,123 @@
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[compute-controller]
+#for controller in $compute_controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute-worker]
+#for compute in $compute_workers
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-server]
+#for network in $network_servers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network-worker]
+#for network in $network_workers
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[database]
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[messaging]
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[image]
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[dashboard]
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[identity]
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-controller]
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage-volume]
+#for worker in $storage_volumes
+    #set worker_ip = $worker.management.ip
+    #set worker_hostname = $worker.hostname
+$worker_hostname ansible_ssh_host=$worker_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/inventories/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..e1bf72c
--- /dev/null
@@ -0,0 +1,67 @@
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set storages = $getVar('storage', [])
+#set networks = $getVar('network', [])
+#set odls = $getVar('odl', [])
+#set onoss = $getVar('onos', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($odls, list)
+    #set odls = [$odls]
+#end if
+#if not $isinstance($onoss, list)
+    #set onoss = [$onoss]
+#end if
+
+#set credentials = $getVar('server_credentials', {})
+#set username = $credentials.get('username', 'root')
+#set password = $credentials.get('password', 'root')
+[controller]
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+$controller_hostname ansible_ssh_host=$controller_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[compute]
+#for compute in $computes
+    #set compute_ip = $compute.management.ip
+    #set compute_hostname = $compute.hostname
+$compute_hostname ansible_ssh_host=$compute_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[network]
+#for network in $networks
+    #set network_ip = $network.management.ip
+    #set network_hostname = $network.hostname
+$network_hostname ansible_ssh_host=$network_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[odl]
+#for odl in odls
+    #set odl_ip = $odl.management.ip
+    #set odl_hostname = $odl.hostname
+$odl_hostname ansible_ssh_host=$odl_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
+[storage]
+#for storage in storages
+    #set storage_ip = $storage.management.ip
+    #set storage_hostname = $storage.hostname
+$storage_hostname ansible_ssh_host=$storage_ip ansible_ssh_user=$username ansible_ssh_password=$password
+#end for
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/HA-ansible-multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/HA-ansible-multinodes.tmpl
new file mode 100755 (executable)
index 0000000..b5b63e6
--- /dev/null
@@ -0,0 +1,210 @@
+#from random import randint
+#set cluster_name = $getVar('name', '')
+#set network_cfg = $getVar('network_cfg', {})
+#set ntp_server = $getVar('ntp_server', "")
+#set ceph_disk = $getVar('ceph_disk',"")
+#set $sys_intf_mappings= {}
+#for $intf_info in $network_cfg.sys_intf_mappings
+#set $sys_intf_mappings[$intf_info["name"]] = $intf_info
+#end for
+
+#set ip_settings={}
+#for k,v in $getVar('ip_settings', {}).items()
+#set host_ip_settings={}
+#for intf in v
+#set $host_ip_settings[$intf["alias"]]=intf
+#end for
+#set $ip_settings[$k]=$host_ip_settings
+#end for
+
+#set neutron_cfg = $getVar('neutron_config', {})
+#set ovs_config = $neutron_cfg.openvswitch
+
+#set has = $getVar('ha', [])
+#set ha_vip = $getVar('ha_vip', [])
+
+#set controllers = $getVar('controller', [])
+#set computers = $getVar('compute', [])
+
+enable_secgroup: $getVar('enable_secgroup', True)
+enable_fwaas: $getVar('enable_fwaas', True)
+enable_vpnaas: $getVar('enable_vpnaas', True)
+odl_l3_agent: $getVar('odl_l3_agent', 'Disable')
+onos_sfc: $getVar('onos_sfc', 'Disable')
+onos_nic: $getVar('onos_nic', 'eth2')
+odl_sfc: $getVar('odl_sfc', 'Disable')
+ip_settings: $ip_settings
+network_cfg: $network_cfg
+sys_intf_mappings: $sys_intf_mappings
+deploy_type: $getVar('deploy_type', 'virtual')
+
+public_cidr: $computers[0]['install']['subnet']
+storage_cidr: "{{ ip_settings[inventory_hostname]['storage']['cidr'] }}"
+mgmt_cidr: "{{ ip_settings[inventory_hostname]['mgmt']['cidr'] }}"
+
+public_net_info: "{{ network_cfg.public_net_info }}"
+host_ip_settings: "{{ ip_settings[inventory_hostname] }}"
+
+ntp_server: $ntp_server
+internal_vip:
+  ip: $network_cfg["internal_vip"]["ip"]
+  netmask: $network_cfg["internal_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["internal_vip"]["interface"]]["interface"]
+#end if
+
+public_vip:
+  ip: $network_cfg["public_vip"]["ip"]
+  netmask: $network_cfg["public_vip"]["netmask"]
+#if "vlan_tag" in $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["name"]
+#else
+  interface: $sys_intf_mappings[$network_cfg["public_vip"]["interface"]]["interface"]
+#end if
+
+db_host: "{{ internal_vip.ip }}"
+rabbit_host: "{{ internal_vip.ip }}"
+
+internal_ip: "{{ ip_settings[inventory_hostname]['mgmt']['ip'] }}"
+internal_nic: mgmt
+
+#set random_id = randint(1, 255)
+vrouter_id_internal: $random_id
+vrouter_id_public: $random_id
+
+identity_host: "{{ internal_ip }}"
+controllers_host: "{{ internal_ip }}"
+storage_controller_host: "{{ internal_ip }}"
+compute_controller_host: "{{ internal_ip }}"
+image_host: "{{ internal_ip }}"
+network_server_host: "{{ internal_ip }}"
+dashboard_host: "{{ internal_ip }}"
+
+haproxy_hosts:
+#for $item in $has
+#set $hostname=$item["hostname"]
+  $hostname: $ip_settings[$hostname]["mgmt"]["ip"]
+#end for
+
+host_index:
+#for $index, $item in enumerate($has)
+  $item["hostname"]: $index
+#end for
+
+ERLANG_TOKEN: YOWSJSJIGGAUFZTIBRAD
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set keystone_pass = $console_credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set heat_dbpass = $credentials.heat.password
+#set heat_pass = $console_credentials.heat.password
+#set neutron_dbpass = $credentials.network.password
+#set neutron_pass = $console_credentials.network.password
+#set ceilometer_dbpass = $credentials.metering.password
+#set ceilometer_pass = $console_credentials.metering.password
+#set aodh_dbpass = $credentials.alarming.password
+#set aodh_pass = $console_credentials.alarming.password
+#set admin_pass = $console_credentials.admin.password
+#set demo_pass = $console_credentials.demo.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controllers_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+erlang.cookie: DJJVECFMCJPVYQTJTDWG
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+KEYSTONE_PASS: $keystone_pass
+CEILOMETER_DBPASS: $ceilometer_dbpass
+CEILOMETER_PASS: $ceilometer_pass
+AODH_DBPASS: $aodh_dbpass
+AODH_PASS: $aodh_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_dbpass
+NEUTRON_PASS: $neutron_pass
+HEAT_DBPASS: $heat_dbpass
+HEAT_PASS: $heat_pass
+DEMO_PASS: $demo_pass
+ADMIN_PASS: $admin_pass
+
+#set neutron_service_plugins=['router']
+
+#if $getVar('enable_fwaas', True)
+#neutron_service_plugins.append('firewall')
+#end if
+
+#if $getVar('enable_vpnaas', True)
+#neutron_service_plugins.append('vpnaas')
+#end if
+
+NEUTRON_SERVICE_PLUGINS: $neutron_service_plugins
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan', 'vlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['$ovs_config["tenant_network_type"]']
+NEUTRON_OVS_BRIDGE_MAPPINGS: $ovs_config['bridge_mappings']
+#if 'vlan_ranges' in $ovs_config
+NEUTRON_VLAN_RANGES: $ovs_config['vlan_ranges']
+#else
+NEUTRON_VLAN_RANGES: []
+#end if
+#if 'tunnel_id_ranges' in $ovs_config
+NEUTRON_TUNNEL_ID_RANGES: $ovs_config['tunnel_id_ranges']
+#else
+NEUTRON_TUNNEL_ID_RANGES: []
+#end if
+
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+WSREP_SST_USER: wsrep_sst
+WSREP_SST_PASS: wsrep_sst_sercet
+
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: "{{ internal_ip }}"
+
+#build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image: http://192.168.121.12:9999/img/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
+enable_ubuntu_theme: True
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/allinone.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/allinone.tmpl
new file mode 100755 (executable)
index 0000000..b13973d
--- /dev/null
@@ -0,0 +1,96 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('allinone_compute', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $controllers
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+
+cluster_name: $cluster_name
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/multinodes.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/multinodes.tmpl
new file mode 100755 (executable)
index 0000000..3828c0d
--- /dev/null
@@ -0,0 +1,165 @@
+#set cluster_name = $getVar('name', '')
+#set compute_controllers = $getVar('compute_controller', [])
+#set compute_workers = $getVar('compute_worker', [])
+#set network_servers = $getVar('network_server', [])
+#set network_workers = $getVar('network_worker', [])
+#set databases = $getVar('database', [])
+#set messagings = $getVar('messaging', [])
+#set images = $getVar('image', [])
+#set dashboards = $getVar('dashboard', [])
+#set identities = $getVar('identity', [])
+#set storage_controllers = $getVar('storage_controller', [])
+#set storage_volumes = $getVar('storage_volume', [])
+#if not $isinstance($compute_controllers, list)
+    #set compute_controllers = [$compute_controllers]
+#end if
+#if not $isinstance($compute_workers, list)
+    #set compute_workers = [$compute_workers]
+#end if
+#if not $isinstance($network_servers, list)
+    #set network_servers = [$network_servers]
+#end if
+#if not $isinstance($network_workers, list)
+    #set network_workers = [$network_workers]
+#end if
+#if not $isinstance($databases, list)
+    #set databases = [$databases]
+#end if
+#if not $isinstance($messagings, list)
+    #set messagings = [$messagings]
+#end if
+#if not $isinstance($images, list)
+    #set images = [$images]
+#end if
+#if not $isinstance($dashboards, list)
+    #set dashboards = [$dashboards]
+#end if
+#if not $isinstance($identities, list)
+    #set identities = [$identities]
+#end if
+#if not $isinstance($storage_controllers, list)
+    #set storage_controllers = [$storage_controllers]
+#end if
+#if not $isinstance($storage_volumes, list)
+    #set storage_volumes = [$storage_volumes]
+#end if
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $databases
+    #set worker_ip = $worker.management.ip
+db_host: $worker_ip
+#end for
+#for worker in $messagings
+    #set worker_ip = $worker.management.ip
+rabbit_host: $worker_ip
+#end for
+#for worker in $storage_controllers
+    #set worker_ip = $worker.management.ip
+storage_controller_host: $worker_ip
+#end for
+#for worker in $images
+    #set worker_ip = $worker.management.ip
+image_host: $worker_ip
+#end for
+#for worker in $identities
+    #set worker_ip = $worker.management.ip
+identity_host: $worker_ip
+#end for
+#for worker in $compute_controllers
+    #set worker_ip = $worker.management.ip
+compute_controller_host: $worker_ip
+#end for
+#for worker in $network_servers
+    #set worker_ip = $worker.management.ip
+network_server_host: $worker_ip
+#end for
+#for worker in $dashboards
+    #set worker_ip = $worker.management.ip
+dashboard_host: $worker_ip
+#end for
+#for network in $network_workers
+    #set network_external_nic = $network.external.interface
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic    
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ compute_controller_host }}"
+DB_HOST: "{{ db_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
+
+odl_pkg_url: https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.2-Helium-SR2/distribution-karaf-0.2.2-Helium-SR2.tar.gz
+odl_pkg_name: karaf.tar.gz
+odl_home: "/opt/opendaylight-0.2.2/"
+odl_base_features: ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management', 'http', 'odl-base-all','odl-aaa-authn','odl-restconf','odl-nsf-all','odl-adsal-northbound','odl-mdsal-apidocs', 'odl-openflowplugin-all']
+odl_extra_features: ['odl-l2switch-switch', 'odl-ovsdb-plugin', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound','odl-dlux-core', 'odl-restconf-all', 'odl-mdsal-clustering', 'odl-openflowplugin-flow-services', 'odl-netconf-connector', 'odl-netconf-connector-ssh', 'jolokia-osgi']
+odl_features: "{{ odl_base_features + odl_extra_features }}"
+odl_api_port: 8080
+
diff --git a/deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/single-controller.tmpl b/deploy/compass_conf/templates/ansible_installer/openstack_osp9/vars/single-controller.tmpl
new file mode 100755 (executable)
index 0000000..9986022
--- /dev/null
@@ -0,0 +1,108 @@
+#set cluster_name = $getVar('name', '')
+#set controllers = $getVar('controller', [])
+#set computes = $getVar('compute', [])
+#set networks = $getVar('network', [])
+#set storages = $getVar('storage', [])
+#if not $isinstance($controllers, list)
+    #set controllers = [$controllers]
+#end if
+#if not $isinstance($computes, list)
+    #set computes = [$computes]
+#end if
+#if not $isinstance($networks, list)
+    #set networks = [$networks]
+#end if
+#if not $isinstance($storages, list)
+    #set storages = [$storages]
+#end if
+
+#for controller in $controllers
+    #set controller_ip = $controller.management.ip
+    #set controller_hostname = $controller.hostname
+controller_host: $controller_ip
+#end for
+#for network in $networks
+    #set network_external_nic = $network.external.interface
+    #set network_external_subnet = $network.external.subnet
+    #set network_internal_nic = $network.management.interface
+INTERFACE_NAME: $network_external_nic
+INTERNAL_INTERFACE: $network_internal_nic
+#end for
+
+#set credentials = $getVar('service_credentials', {})
+#set console_credentials = $getVar('console_credentials', {})
+#set rabbit_username = $credentials.rabbitmq.username
+#set rabbit_password = $credentials.rabbitmq.password
+#set keystone_dbpass = $credentials.identity.password
+#set glance_dbpass = $credentials.image.password
+#set glance_pass = $console_credentials.image.password
+#set nova_dbpass = $credentials.compute.password
+#set nova_pass = $console_credentials.compute.password
+#set dash_dbpass = $credentials.dashboard.password
+#set cinder_dbpass = $credentials.volume.password
+#set cinder_pass = $console_credentials.volume.password
+#set admin_pass = $console_credentials.admin.password
+#set neutron_pass = $console_credentials.network.password
+
+cluster_name: $cluster_name
+deploy_type: $getVar('deploy_type', 'virtual')
+compute_controller_host: "{{ controller_host }}"
+db_host: "{{ controller_host }}"
+rabbit_host: "{{ controller_host }}"
+storage_controller_host: "{{ controller_host }}"
+image_host: "{{ controller_host }}"
+identity_host: "{{ controller_host }}"
+network_server_host: "{{ controller_host }}"
+dashboard_host: "{{ controller_host }}"
+odl_controller: 10.1.0.15
+
+DEBUG: true
+VERBOSE: true
+NTP_SERVER_LOCAL: "{{ controller_host }}"
+DB_HOST: "{{ controller_host }}"
+MQ_BROKER: rabbitmq
+
+OPENSTACK_REPO: cloudarchive-mitaka.list
+mitaka_cloud_archive: deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/mitaka main
+ADMIN_TOKEN: admin
+CEILOMETER_TOKEN: c095d479023a0fd58a54
+
+RABBIT_USER: $rabbit_username
+RABBIT_PASS: $rabbit_password
+KEYSTONE_DBPASS: $keystone_dbpass
+DEMO_PASS: demo_secret
+ADMIN_PASS: $admin_pass
+GLANCE_DBPASS: $glance_dbpass
+GLANCE_PASS: $glance_pass
+NOVA_DBPASS: $nova_dbpass
+NOVA_PASS: $nova_pass
+DASH_DBPASS: $dash_dbpass
+CINDER_DBPASS: $cinder_dbpass
+CINDER_PASS: $cinder_pass
+NEUTRON_DBPASS: $neutron_pass
+NEUTRON_PASS: $neutron_pass
+NEUTRON_TYPE_DRIVERS: ['flat', 'gre', 'vxlan']
+NEUTRON_TENANT_NETWORK_TYPES: ['vxlan']
+#NEUTRON_MECHANISM_DRIVERS: ['opendaylight']
+NEUTRON_MECHANISM_DRIVERS: ['openvswitch']
+NEUTRON_TUNNEL_TYPES: ['vxlan']
+METADATA_SECRET: metadata_secret
+INSTANCE_TUNNELS_INTERFACE_IP_ADDRESS: 10.1.1.21
+
+EXTERNAL_NETWORK_CIDR: 203.0.113.0/24
+# EXTERNAL_NETWORK_CIDR: $network_external_subnet
+EXTERNAL_NETWORK_GATEWAY: 203.0.113.1
+FLOATING_IP_START: 203.0.113.101
+FLOATING_IP_END: 203.0.113.200
+
+build_in_image: http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
+build_in_image_name: cirros-0.3.3-x86_64-disk.img
+
+physical_device: /dev/sdb
+
+internal_interface: "ansible_{{ INTERNAL_INTERFACE }}"
+internal_ip: "{{ hostvars[inventory_hostname][internal_interface]['ipv4']['address'] }}"
+HA_VIP: "{{ internal_ip }}"
+odl_username: admin
+odl_password: admin
+odl_api_port: 8080
diff --git a/deploy/compass_conf/templates/cobbler/CentOS-6.5-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/CentOS-6.5-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..8e4cbbb
--- /dev/null
@@ -0,0 +1,76 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$mgmt_key] = $val.is_mgmt
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/CentOS-6.6-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/CentOS-6.6-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..8e4cbbb
--- /dev/null
@@ -0,0 +1,76 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$mgmt_key] = $val.is_mgmt
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/CentOS-7-Minimal-1511-x86_64/profile.tmpl b/deploy/compass_conf/templates/cobbler/CentOS-7-Minimal-1511-x86_64/profile.tmpl
new file mode 100755 (executable)
index 0000000..cfa8900
--- /dev/null
@@ -0,0 +1,3 @@
+{
+    "repos": "$getVar('repo_name', '')"
+}
diff --git a/deploy/compass_conf/templates/cobbler/CentOS-7-Minimal-1511-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/CentOS-7-Minimal-1511-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..8e4cbbb
--- /dev/null
@@ -0,0 +1,76 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$mgmt_key] = $val.is_mgmt
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/CentOS-7.0-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/CentOS-7.0-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..8e4cbbb
--- /dev/null
@@ -0,0 +1,76 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$mgmt_key] = $val.is_mgmt
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/Ubuntu-12.04-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/Ubuntu-12.04-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..cfcc883
--- /dev/null
@@ -0,0 +1,75 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/Ubuntu-14.04-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/Ubuntu-14.04-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..cfcc883
--- /dev/null
@@ -0,0 +1,75 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/rhel-server-7.2-x86_64/profile.tmpl b/deploy/compass_conf/templates/cobbler/rhel-server-7.2-x86_64/profile.tmpl
new file mode 100755 (executable)
index 0000000..cfa8900
--- /dev/null
@@ -0,0 +1,3 @@
+{
+    "repos": "$getVar('repo_name', '')"
+}
diff --git a/deploy/compass_conf/templates/cobbler/rhel-server-7.2-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/rhel-server-7.2-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..8e4cbbb
--- /dev/null
@@ -0,0 +1,76 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$mgmt_key] = $val.is_mgmt
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/sles-11sp3-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/sles-11sp3-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..8e4cbbb
--- /dev/null
@@ -0,0 +1,76 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$mgmt_key] = $val.is_mgmt
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/ubuntu-14.04.3-server-x86_64/profile.tmpl b/deploy/compass_conf/templates/cobbler/ubuntu-14.04.3-server-x86_64/profile.tmpl
new file mode 100755 (executable)
index 0000000..cfa8900
--- /dev/null
@@ -0,0 +1,3 @@
+{
+    "repos": "$getVar('repo_name', '')"
+}
diff --git a/deploy/compass_conf/templates/cobbler/ubuntu-14.04.3-server-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/ubuntu-14.04.3-server-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..cfcc883
--- /dev/null
@@ -0,0 +1,75 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/ubuntu-16.04-server-x86_64/profile.tmpl b/deploy/compass_conf/templates/cobbler/ubuntu-16.04-server-x86_64/profile.tmpl
new file mode 100755 (executable)
index 0000000..cfa8900
--- /dev/null
@@ -0,0 +1,3 @@
+{
+    "repos": "$getVar('repo_name', '')"
+}
diff --git a/deploy/compass_conf/templates/cobbler/ubuntu-16.04-server-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/ubuntu-16.04-server-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..cfcc883
--- /dev/null
@@ -0,0 +1,75 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
diff --git a/deploy/compass_conf/templates/cobbler/uvp-11sp3-x86_64/system.tmpl b/deploy/compass_conf/templates/cobbler/uvp-11sp3-x86_64/system.tmpl
new file mode 100755 (executable)
index 0000000..8e4cbbb
--- /dev/null
@@ -0,0 +1,76 @@
+{
+    "name": "$hostname",
+    "hostname": "$hostname",
+    "profile": "$profile",
+    "gateway": "$gateway",
+    #import simplejson as json
+    #set nameservers = json.dumps($nameservers, encoding='utf-8')
+    "name_servers": $nameservers,
+    #set search_path = ' '.join($search_path)
+    "name_servers_search": "$search_path",
+    "proxy": "$getVar('http_proxy', '')",
+    "modify_interface":
+        #set networks = $networks
+        #set rekeyed = {}
+        #set promic_nic = ""
+        #for $nic, $val in $networks.iteritems():
+            #set ip_key = '-'.join(('ipaddress', $nic))
+            #set netmask_key = '-'.join(('netmask', $nic))
+            #set mgmt_key = '-'.join(('management', $nic))
+            #set static_key = '-'.join(('static', $nic))
+            #set $rekeyed[$ip_key] = $val.ip
+            #set $rekeyed[$netmask_key] = $val.netmask
+            #set $rekeyed[$mgmt_key] = $val.is_mgmt
+            #set $rekeyed[$static_key] = True
+
+            #set dns_key = '-'.join(('dnsname', $nic))
+            #if $val.is_mgmt
+                #set $rekeyed[$dns_key] = $dns
+            #else
+                #if '.' in $dns
+                    #set $dns_name, $dns_domain = $dns.split('.', 1)
+                    #set $dns_nic = '%s-%s.%s' % ($dns_name, $nic, $dns_domain)
+                #else
+                    #set $dns_nic = '%s-%s' % ($dns, $nic)
+                #end if
+                #set $rekeyed[$dns_key] = $dns_nic
+            #end if
+
+            #if $val.is_promiscuous:
+                #set promic_nic = $nic
+            #end if
+            #if $val.is_mgmt:
+                #set mac_key = '-'.join(('macaddress', $nic))
+                #set $rekeyed[$mac_key] = $mac
+            #end if
+        #end for
+        #set nic_info = json.dumps($rekeyed, encoding='utf-8')
+        $nic_info
+    ,
+    "ksmeta":{
+        #set partition_config = ''
+        #for k, v in $partition.iteritems():
+            #set path = ''
+            #if v['vol_percentage']:
+                #set $path = k + ' ' + str(v['vol_percentage']) + '%'
+            #else:
+                #set $path = k + ' ' + str(v['vol_size'])
+            #end if
+            #set partition_config = ';'.join((partition_config, $path))
+        #end for
+        #set partition_config = partition_config[1:]
+        #import crypt
+        #set $password = crypt.crypt($server_credentials.password, "az")
+        #set no_proxy = ','.join($getVar('no_proxy', []))
+        "username": "$server_credentials.username",
+        "password": "$password",
+        "promisc_nics": "$promic_nic",
+        "partition": "$partition_config",
+        "https_proxy": "$getVar('https_proxy', '')",
+        "ntp_server": "$ntp_server",
+        "timezone": "$timezone",
+        "ignore_proxy": "$no_proxy",
+        "local_repo": "$getVar('local_repo', '')",
+        "disk_num": "1"
+    }
+}
index bc0907a..7b9d829 100644 (file)
@@ -65,6 +65,6 @@ export GATEWAY="10.1.0.1"
 export SERVER_CREDENTIAL="root=root"
 export LOCAL_REPO_URL=""
 export OS_CONFIG_FILENAME=""
-export SERVICE_CREDENTIALS="image:service=service,compute:service=service,dashboard:service=service,identity:service=service,image:service=service,metering:service=service,network:service=service,rabbitmq:service=service,volume:service=service,mysql:service=service,heat:heat=heat_db_secret,alarming:aodh=aodh_db_secret"
-export CONSOLE_CREDENTIALS="admin:console=console,demo:console=console,compute:console=console,dashboard:console=console,identity:console=console,image:console=console,metering:console=console,network:console=console,object-store:console=console,volume:console=console,heat:heat=heat_secret,alarming:aodh=aodh_secret"
+export SERVICE_CREDENTIALS="image:service=service,compute:service=service,dashboard:service=service,identity:service=service,image:service=service,metering:service=service,network:service=service,rabbitmq:service=service,volume:service=service,mysql:service=service,heat:heat=heat_db_secret,alarming:aodh=aodh_db_secret,policy:congress=service"
+export CONSOLE_CREDENTIALS="admin:console=console,demo:console=console,compute:console=console,dashboard:console=console,identity:console=console,image:console=console,metering:console=console,network:console=console,object-store:console=console,volume:console=console,heat:heat=heat_secret,alarming:aodh=aodh_secret,policy:congress=console"
 export PACKAGE_CONFIG_FILENAME=""