-
Notifications
You must be signed in to change notification settings - Fork 8
Platform Deployment on OpenStack
Wiki Home ▸ [Getting Started Guide](Getting Started Guide) ▸ Platform Deployment on OpenStack
- Check prerequisites
- Prepare and configure OpenStack tenant
- Collect necessary informations (api url, login, pass, etc)
- Provision infrastructure on OpenStack
- Deploy Cloud Foundry platform
- Deploy TAP to Cloud Foundry
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
The detailed installation procedure for Mirantis OpenStack, along with possible problem resolutions can be found here.
The purpose of this step is to prepare OpenStack tenant for TAP installation. It should take no longer than 20 minutes.
- 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
- Log in with administrator rights.
- 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
- Go to the identity panel and create a new project.
- In "Project members", add the user account you are currently using with member and admin permissions.
- 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).
- 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.
- Go to the Admin > Networks tab and choose
net04_ext
. Write down the ID of thenet04_ext
network:
- 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.
- 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
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-0.7/wiki/Platform-Deployment-Procedure-local-setup
git clone [email protected]:trustedanalytics/terraform-openstack-intel.git
cd terraform-openstack-intel
cp terraform.tfvars.example terraform.tfvars
make update
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.
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-0.7/wiki/Platform-Deployment-Procedure:-bosh-deployment
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).