|
@@ -0,0 +1,142 @@
|
|
|
+# Installing OSEv3 from dev puddles using ansible
|
|
|
+
|
|
|
+* [Requirements](#requirements)
|
|
|
+* [Caveats](#caveats)
|
|
|
+* [Known Issues](#known-issues)
|
|
|
+* [Configuring the host inventory](#configuring-the-host-inventory)
|
|
|
+* [Creating the default variables for the hosts and host groups](#creating-the-default-variables-for-the-hosts-and-host-groups)
|
|
|
+* [Running the ansible playbooks](#running-the-ansible-playbooks)
|
|
|
+* [Post-ansible steps](#post-ansible-steps)
|
|
|
+
|
|
|
+## Requirements
|
|
|
+* ansible
|
|
|
+ * Tested using ansible-1.8.2-1.fc20.noarch, but should work with version 1.8+
|
|
|
+ * Available in Fedora channels
|
|
|
+ * Available for EL with EPEL and Optional channel
|
|
|
+* One or more RHEL 7.1 VMs
|
|
|
+* ssh key based auth for the root user needs to be pre-configured from the host
|
|
|
+ running ansible to the remote hosts
|
|
|
+* A checkout of openshift-ansible from https://github.com/openshift/openshift-ansible/
|
|
|
+
|
|
|
+ ```sh
|
|
|
+ git clone https://github.com/openshift/openshift-ansible.git
|
|
|
+ cd openshift-ansible
|
|
|
+ ```
|
|
|
+
|
|
|
+## Caveats
|
|
|
+This ansible repo is currently under heavy revision for providing OSE support;
|
|
|
+the following items are highly likely to change before the OSE support is
|
|
|
+merged into the upstream repo:
|
|
|
+ * the current git branch for testing
|
|
|
+ * how the inventory file should be configured
|
|
|
+ * variables that need to be set
|
|
|
+ * bootstrapping steps
|
|
|
+ * other configuration steps
|
|
|
+
|
|
|
+## Known Issues
|
|
|
+* Host subscriptions are not configurable yet, the hosts need to be
|
|
|
+ pre-registered with subscription-manager or have the RHEL base repo
|
|
|
+ pre-configured. If using subscription-manager the following commands will
|
|
|
+ disable all but the rhel-7-server rhel-7-server-extras and
|
|
|
+ rhel-server7-ose-beta repos:
|
|
|
+```sh
|
|
|
+subscription-manager repos --disable="*"
|
|
|
+subscription-manager repos \
|
|
|
+--enable="rhel-7-server-rpms" \
|
|
|
+--enable="rhel-7-server-extras-rpms" \
|
|
|
+--enable="rhel-server-7-ose-beta-rpms"
|
|
|
+```
|
|
|
+* Configuration of router is not automated yet
|
|
|
+* Configuration of docker-registry is not automated yet
|
|
|
+* End-to-end testing has not been completed yet using this module
|
|
|
+* root user is used for all ansible actions; eventually we will support using
|
|
|
+ a non-root user with sudo.
|
|
|
+
|
|
|
+## Configuring the host inventory
|
|
|
+[Ansible docs](http://docs.ansible.com/intro_inventory.html)
|
|
|
+
|
|
|
+Example inventory file for configuring one master and two nodes for the test
|
|
|
+environment. This can be configured in the default inventory file
|
|
|
+(/etc/ansible/hosts), or using a custom file and passing the --inventory
|
|
|
+option to ansible-playbook.
|
|
|
+
|
|
|
+/etc/ansible/hosts:
|
|
|
+```ini
|
|
|
+# This is an example of a bring your own (byo) host inventory
|
|
|
+
|
|
|
+# host group for masters
|
|
|
+[masters]
|
|
|
+ose3-master.example.com
|
|
|
+
|
|
|
+# host group for nodes
|
|
|
+[nodes]
|
|
|
+ose3-node[1:2].example.com
|
|
|
+```
|
|
|
+
|
|
|
+The hostnames above should resolve both from the hosts themselves and
|
|
|
+the host where ansible is running (if different).
|
|
|
+
|
|
|
+## Creating the default variables for the hosts and host groups
|
|
|
+[Ansible docs](http://docs.ansible.com/intro_inventory.html#id9)
|
|
|
+
|
|
|
+#### Group vars for all hosts
|
|
|
+/etc/ansible/group_vars/all:
|
|
|
+```yaml
|
|
|
+---
|
|
|
+# Assume that we want to use the root as the ssh user for all hosts
|
|
|
+ansible_ssh_user: root
|
|
|
+
|
|
|
+# Default debug level for all OpenShift hosts
|
|
|
+openshift_debug_level: 4
|
|
|
+
|
|
|
+# Set the OpenShift deployment type for all hosts
|
|
|
+openshift_deployment_type: enterprise
|
|
|
+
|
|
|
+# Override the default registry for development
|
|
|
+openshift_registry_url: docker-buildvm-rhose.usersys.redhat.com:5000/openshift3_beta/ose-${component}:${version}
|
|
|
+
|
|
|
+# To use the latest OpenShift Enterprise Errata puddle:
|
|
|
+#openshift_additional_repos:
|
|
|
+#- id: ose-devel
|
|
|
+# name: ose-devel
|
|
|
+# baseurl: http://buildvm-devops.usersys.redhat.com/puddle/build/OpenShiftEnterpriseErrata/3.0/latest/RH7-RHOSE-3.0/$basearch/os
|
|
|
+# enabled: 1
|
|
|
+# gpgcheck: 0
|
|
|
+# To use the latest OpenShift Enterprise Whitelist puddle:
|
|
|
+openshift_additional_repos:
|
|
|
+- id: ose-devel
|
|
|
+ name: ose-devel
|
|
|
+ baseurl: http://buildvm-devops.usersys.redhat.com/puddle/build/OpenShiftEnterprise/3.0/latest/RH7-RHOSE-3.0/$basearch/os
|
|
|
+ enabled: 1
|
|
|
+ gpgcheck: 0
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+## Running the ansible playbooks
|
|
|
+From the openshift-ansible checkout run:
|
|
|
+```sh
|
|
|
+ansible-playbook playbooks/byo/config.yml
|
|
|
+```
|
|
|
+**Note:** this assumes that the host inventory is /etc/ansible/hosts and the
|
|
|
+group_vars are defined in /etc/ansible/group_vars, if using a different
|
|
|
+inventory file (and a group_vars directory that is in the same directory as
|
|
|
+the directory as the inventory) use the -i option for ansible-playbook.
|
|
|
+
|
|
|
+## Post-ansible steps
|
|
|
+#### Create the default router
|
|
|
+On the master host:
|
|
|
+```sh
|
|
|
+systemctl restart openshift-sdn-master
|
|
|
+openshift ex router --create=true \
|
|
|
+ --credentials=/var/lib/openshift/openshift.local.certificates/openshift-client/.kubeconfig \
|
|
|
+ --images='docker-buildvm-rhose.usersys.redhat.com:5000/openshift3_beta/ose-${component}:${version}'
|
|
|
+```
|
|
|
+
|
|
|
+#### Create the default docker-registry
|
|
|
+On the master host:
|
|
|
+```sh
|
|
|
+openshift ex registry --create=true \
|
|
|
+ --credentials=/var/lib/openshift/openshift.local.certificates/openshift-client/.kubeconfig \
|
|
|
+ --images='docker-buildvm-rhose.usersys.redhat.com:5000/openshift3_beta/ose-${component}:${version}' \
|
|
|
+ --mount-host=/var/lib/openshift/docker-registry
|
|
|
+```
|