This repository contains playbooks and Heat templates to provision OpenStack resources (servers, networking, volumes, security groups, etc.). The result is an environment ready for openshift-ansible.
openshift
user with sudo privilegescp openshift-ansible-contrib/playbooks/provisioning/openstack/sample-inventory inventory
cp openshift-ansible-contrib/playbooks/provisioning/openstack/sample-inventory/clouds.yaml clouds.yaml
inventory/group_vars/all.yml
Pay special attention to the values in the first paragraph -- these will depend on your OpenStack environment.
The env_id
and openstack_dns_domain
will form the DNS domain all
your servers will be under. With the default values, this will be
openshift.example.com
.
openstack_nameservers
is a list of DNS servers accessible from all
the created Nova servers. These will be serve as your DNS forwarders.
openstack_ssh_key
is a Nova keypair -- you can see your keypairs with
openstack keypair list
.
openstack_default_image_name
is the name of the Glance image the
servers will use. You can
see your images with openstack image list
.
openstack_default_flavor
is the Nova flavor the servers will use.
You can see your flavors with openstack flavor list
.
openstack_external_network_name
is the name of the Neutron network
providing external connectivity. It is often called public
,
external
or ext-net
. You can see your networks with openstack
network list
.
The openstack_num_masters
, openstack_num_infra
and
openstack_num_nodes
values specify the number of Master, Infra and
App nodes to create.
inventory/hosts
The different server groups are currently grouped by the domain name,
so if you end up using a different domain than
openshift.example.com
, you will need to update the inventory/hosts
file.
For example, if your final domain is my.cloud.com
, you can run this
command to fix update the hosts
file:
sed -i 's/openshift.example.com/my.cloud.com/' inventory/hosts
Finally, you need to update the DNS entry in
inventory/group_vars/OSEv3.yml
(look at
openshift_master_default_subdomain
).
In addition, this is the place where you can customise your OpenShift installation for example by specifying the authentication.
The full list of options is available in this sample inventory:
https://github.com/openshift/openshift-ansible/blob/master/inventory/byo/hosts.ose.example
Assuming your OpenStack (Keystone) credentials are in the keystonerc
file, this is how you stat the provisioning process:
. keystonerc
ansible-playbook -i inventory --private-key ~/.ssh/openshift openshift-ansible-contrib/playbooks/provisioning/openstack/provision.yaml
Once it succeeds, you can install openshift by running:
ansible-playbook --become --user openshift --private-key ~/.ssh/openshift -i inventory/ openshift-ansible/playbooks/byo/config.yml
As the rest of the openshift-ansible-contrib repository, the code here is
licensed under Apache 2. However, the openstack.py file under
sample-inventory
is GPLv3+. See the INVENTORY-LICENSE.txt file for the full
text of the license.