Skip to content

Platform Deployment on OpenStack

andrzej maczuga edited this page Jun 22, 2016 · 42 revisions

Wiki Home ▸ [Getting Started Guide](Getting Started Guide) ▸ Platform Deployment on OpenStack

Platform deployment overview

  1. Check prerequisites
  2. Prepare and configure OpenStack tenant
  3. Collect necessary informations (api url, login, pass, etc)
  4. Provision infrastructure on OpenStack
  5. Deploy Cloud Foundry platform
  6. Deploy TAP to Cloud Foundry

Prerequisites

We constantly strive to make TAP deployment easier and more resilient to physical environment differences. Currently, TAP validated prerequisites include:

  • SMTP server
    As Trusted Analytics Platform does not provide its own SMTP service you may want to use your own SMTP server for sending e-mails like platform invitations or password reset request. SMTP server configuration occurs in one of following steps. If you do not have your own SMTP server you may want to use AWS Simple Email Service. Please make sure that you have set SES properly according to AWS SES docs. In this case allowing connections to port 25 (TCP) outside your OpenStack environment will be required.

  • Supported OpenStack versions

    • Mirantis 6.0: ships with Openstack Juno v. 2014.2.1, which requires workarounds
    • RedHat Openstack distribution based on Kilo v. 2015.1.1
  • Tenant with at least: 128 vCPU, 256GB RAM, 2TB for Root, 2TB for Volumes

  • Networking (neutron) configured with dedicated 4 floating IPs (not limited to random DHCP)

    • 4 NICs per machine are needed with GRE networking
  • Due to extensive testing GRE networking is highly recommended

  • 1 domain (internal OK).

  • Ability to access the following domains (proxy OK)

  • Ability to reach dns forwarders at udp/53

*.amazonaws.com
*.bintray.com
*.cloudera.com
*.github.com
*.githubusercontent.com
*.oracle.com
*.ubuntu.com
*.zabbix.com
*.gotapaas.eu
*.bosh.io
*.docker.io
*.rvm.io
*.cloudfront.net
*.fastly.net
*.gnupg.net
*.centos.org
*.fedoraproject.org
*.python.org
*.rubygems.org
*.travis-ci.org
*.rubini.us

Deploying Openstack

The detailed installation procedure for Mirantis OpenStack, along with possible problem resolutions can be found here.

Configuration steps for new deployment

The purpose of this step is to prepare OpenStack tenant for TAP installation. It should take no longer than 20 minutes.

  1. OpenStack is up and running, with Ubuntu/Centos images uploaded. If not, please ask your OpenStack administrator to add these images as follow:
Image location: https://s3-us-west-1.amazonaws.com/openstack-images-dp2/centos-6-x86_64.qcow2
Name: centos-6-official
Container Format: bare
Disk Format: qcow2
Image location: https://s3-us-west-1.amazonaws.com/openstack-images-dp2/trusty-server-cloudingimg-amd64-disk1.img
Name: ubuntu-trusty
Container Format: bare
Disk Format: qcow2
  1. Log in with administrator rights.
  2. Change default m1.large flavor setting (memory) of Openstack, up to your requirements (follow http://docs.openstack.org/admin-guide/dashboard_manage_flavors.html).
    • tune m1.large flavor for your CDH workers
    • tune m1.xlarge flavor for your CloudFoundry runners
  3. Go to the identity panel and create a new project.
  4. In "Project members", add the user account you are currently using with member and admin permissions.
  5. Set all quotas in the Quota tab. Minimum quotas for Trusted Analytics platform: 25 volumes, 2 TB disk size. You can use -1 value to avoid any artificial limits and to be limited only by OpenStack cluster resources. After creating the new project, copy the project ID and save it in any editor (you will need it later).
  6. Go to the "Identity" panel and add user dedicated for this deployment to your created project with member permissions. If you don't have dedicated user, you can create a new one. For example, use deploymentacc with password; e-mail address is not required.
  7. Go to the Admin > Networks tab and choose net04_ext. Write down the ID of the net04_ext network:
  8. Copy the ID without "id_" prefix (ie: 8e92de29-b69b-4253-9066-bb8e5966188b) to a file with the project ID and copy the name of the network.
  9. The last thing you need is the IP address of the identity API. You can find it in Project > Compute > Access & security > API access. Copy the IP address to a file with the project ID. The IP address will look like this:
http://10.91.120.12:5000/v2.0 

Local setup

The purpose of this step is to verify that your workstation have all necessary tools installed. It should take no longer than 10 minutes.

When logging in for the first time, please follow instructions at: https://github.com/trustedanalytics/platform-wiki/wiki/Platform-Deployment-Procedure-local-setup

Clone the repo

git clone [email protected]:trustedanalytics/terraform-openstack-intel.git
cd terraform-openstack-intel
cp terraform.tfvars.example terraform.tfvars
make update

Providing information for terraform-openstack-intel

The purpose of this step is to provide all necessary data for provisioning scripts. It should take no longer than 10 minutes.

You will need to create keys for CDH and Jumpbox. You can make it by using the ssh-keygen command. Make sure to specify full path to your keys. Use any editor you like to edit the terraform.tfvars file.

  1 auth_url="{ip of API}"
  2 tenant_name="{name of your project}"
  3 tenant_id="{id of your project – from step 1}"
  4 username="{account you created with members privileges}"
  5 password="{password to account}"
  6 jumpbox_public_key_path="{public jumpbox key}"
  7 jumpbox_key_path="{public jumpbox key}"
  8 cdh_key_path="{public jumpbox key}"
  9 cdh_public_key_path="{public jumpbox key}"
 10 floating_ip_pool="{name of network}"
 11 network_external_id="{id of network}"
 12 region="RegionOne"
 13 worker_size=3 # set worker size you want to have for cloudera
 14 master_size=3 # set master size you want to have for cloudera
 15 ansible_repo_path="{path to terraform-openstack-intel}" # i.e. $HOME/openstack/terraform-openstack-intel/
 16 ubuntu_image_name="ubuntu-trusty" #changes with every deploy
 17 centos_image_name="centos-6" # changes with every deploy
 18 http_proxy="{set proxy}" # comment if not needed
 19 https_proxy="{set proxy}" # comment if not needed
 20 dns1="{dns server}" # comment if not needed
 21 dns2=”{dns server}" # comment if not needed

You can also edit platform-ansible/defaults/env.yml and change env_name variable to your environment name.

env_name: envname

to:

env_name: tapdeployment

If you are performing hybrid installation, return now to the hybrid instruction.

After you set all variables, run the following:

The purpose of this step is to provision environment on OpenStack. It can take up to 2 hours, depending on you hardware and network connection.

make plan
make apply
make provision

Since OpenStack resources aren’t always available when requested, don’t panic if an error occurs while the make apply or make provision commands execute. Simply run the command again.

Set up bosh deployment

The purpose of this step is to deploy application platform and TAP applications to your environment. It can take up to 2-4 hours, depending on you hardware and network connection.

Follow the instructions from this document: https://github.com/trustedanalytics/platform-wiki/wiki/Platform-Deployment-Procedure:-bosh-deployment

Congratulations

To raise new questions, new possibilities, to regard old problems from a new angle, requires creative imagination and marks real advance in science.

Albert Einstein

You are ready to explore Trusted Analytics Platform (TAP).

Clone this wiki locally