summaryrefslogtreecommitdiffstats
path: root/playbooks/provisioning/openstack/README.md
diff options
context:
space:
mode:
authorRyan Cook <rcook@redhat.com>2017-06-16 10:27:41 -0700
committerGitHub <noreply@github.com>2017-06-16 10:27:41 -0700
commitaa0c8c910a0b8c29afb83d1562c252affcd4a2cb (patch)
treefbde420c20e6f18fcc8063e268a1525f8848c8d0 /playbooks/provisioning/openstack/README.md
parent7ba2ef768b25b99f628c88a8e6348a8d0df630a0 (diff)
parent9369c9dfd722e697f83a225d78c2c1dcd1247976 (diff)
downloadopenshift-aa0c8c910a0b8c29afb83d1562c252affcd4a2cb.tar.gz
openshift-aa0c8c910a0b8c29afb83d1562c252affcd4a2cb.tar.bz2
openshift-aa0c8c910a0b8c29afb83d1562c252affcd4a2cb.tar.xz
openshift-aa0c8c910a0b8c29afb83d1562c252affcd4a2cb.zip
Merge pull request #466 from tomassedovic/openstack-provider
Openstack provider
Diffstat (limited to 'playbooks/provisioning/openstack/README.md')
-rw-r--r--playbooks/provisioning/openstack/README.md132
1 files changed, 132 insertions, 0 deletions
diff --git a/playbooks/provisioning/openstack/README.md b/playbooks/provisioning/openstack/README.md
new file mode 100644
index 000000000..423d57113
--- /dev/null
+++ b/playbooks/provisioning/openstack/README.md
@@ -0,0 +1,132 @@
+# OpenStack Provisioning
+
+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.
+
+
+## Dependencies
+
+* [Ansible 2.3](https://pypi.python.org/pypi/ansible)
+* [shade](https://pypi.python.org/pypi/shade)
+* python-dns
+
+
+## What does it do
+
+* Create Nova servers with floating IP addresses attached
+* Assigns Cinder volumes to the servers
+* Set up an `openshift` user with sudo privileges
+* Optionally attach Red Hat subscriptions
+* Set up a bind-based DNS server
+* When deploying more than one master, set up a HAproxy server
+
+
+## Set up
+
+### Copy the sample inventory
+
+ cp -r openshift-ansible-contrib/playbooks/provisioning/openstack/sample-inventory inventory
+
+### Copy clouds.yaml
+
+ cp openshift-ansible-contrib/playbooks/provisioning/openstack/sample-inventory/clouds.yaml clouds.yaml
+
+### Copy ansible config
+
+ cp openshift-ansible-contrib/playbooks/provisioning/openstack/sample-inventory/ansible.cfg ansible.cfg
+
+### Update `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.
+
+The `openstack_flat_secgrp`, controls Neutron security groups creation for Heat
+stacks. Set it to true, if you experience issues with sec group rules
+quotas. It trades security for number of rules, by sharing the same set
+of firewall rules for master, node, etcd and infra nodes.
+
+### Update the DNS names in `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
+
+### Configure the OpenShift parameters
+
+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
+
+Note, that in order to deploy OpenShift origin, you should update the following
+variables for the `inventory/group_vars/OSEv3.yml`, `all.yml`:
+
+ deployment_type: origin
+ origin_release: 1.5.1
+ openshift_deployment_type: "{{ deployment_type }}"
+
+## Deployment
+
+### Run the playbook
+
+Assuming your OpenStack (Keystone) credentials are in the `keystonerc`
+file, this is how you stat the provisioning process:
+
+ . keystonerc
+ ansible-playbook -i inventory --timeout 30 --private-key ~/.ssh/openshift openshift-ansible-contrib/playbooks/provisioning/openstack/provision.yaml
+
+### Install OpenShift
+
+Once it succeeds, you can install openshift by running:
+
+ ansible-playbook --become --user openshift --private-key ~/.ssh/openshift -i inventory/ openshift-ansible/playbooks/byo/openshift-node/network_manager.yml
+ ansible-playbook --become --user openshift --private-key ~/.ssh/openshift -i inventory/ openshift-ansible/playbooks/byo/config.yml
+
+Note, the `network_manager.yml` is only required if you're deploying OpenShift
+origin.
+
+## License
+
+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.