UAB Openstack Tutorial: Difference between revisions

From Cheaha
Jump to navigation Jump to search
(Initial Page Creation)
(No difference)

Revision as of 17:17, 28 February 2020

UAB Openstack Tutorial

This tutorial is meant as a guide for deploying VMs in UAB's OpenStack environment.

Overview

1. Send email to support@listserv.uab.edu and request an account

2. Log into ruffner.rc.uab.edu to get application credentials

3. Use terraform to create and deploy a VM to UAB OpenStack

4. Provision your VM with ansible

Using Terraform to Create and Deploy VM

1. May be easiest to do from a cheaha node 2. Download Terraform https://www.terraform.io/downloads.html 3. See https://gitlab.rc.uab.edu/jelaiw/ccts-bmi-incubator for some templates. May want to git clone. 4. See /Users/ozborn/code/repo/ccts-bmi-incubator/openstack/mice.tf for an example


       # Test web server for CCTS Informatics
       resource "openstack_compute_instance_v2" "mice" {
           name = "mice"
           image_name = "CentOS-7-x86_64-GenericCloud-1905"
           flavor_name = "m1.medium"
           key_pair = var.admin_key_pair
           security_groups = ["default", "web"]
       # Work around race condition.
       # See https://github.com/terraform-providers/terraform-provider-openstack/issues/775.
           network {
               uuid = openstack_networking_subnet_v2.foo_subnet.network_id
           }
       }
       resource "openstack_compute_floatingip_associate_v2" "mice_fip" {
           floating_ip = var.mice_floating_ip
           instance_id = openstack_compute_instance_v2.mice.id
       }
       # See https://www.terraform.io/docs/providers/openstack/r/networking_secgroup_rule_v2.html.
       resource "openstack_networking_secgroup_v2" "web" {
           name = "web"
           description = "A security group for managing rules and access to a standard HTTP web server."
       }
       resource "openstack_networking_secgroup_rule_v2" "web_std_port" {
           direction = "ingress"
           ethertype = "IPv4"
           protocol = "tcp"
           port_range_min = 80
           port_range_max = 80
           remote_ip_prefix = "0.0.0.0/0"
           security_group_id = openstack_networking_secgroup_v2.web.id
       }


Using Ansible to Provision VM

1. Take a look at /Users/ozborn/code/repo/ccts-bmi-incubator/openstack/setup-httpd.yml for Apache web server provisioning

2. ansible-configure after doing ansible-lint to verify setup


Current Bugs Feb 2020 (per JPR)

There are two bugs that we are working on in the web ui:

1. launching instances fails unless "Create new volume" is set to "no" on the source tab

2. attaching volumes to instances fails in both the ui and cli.

Networking Setup (per JPR)

The assigned IP addresses (floating public) will be in the range 192.168.16.128-250. These should be mapped to 164.111.161.x where x repeats the last octet of the assigned 192 number. The networking is set up to allow ingres from on-campus only. The instances can go out to anywhere though.

References (per JPR)

We don't have official getting started docs for now We pretty much just follows the Bright Cluster Manager docs for testing the openstack API from the cli. (Section 1.4 of https://support.brightcomputing.com/manuals/8.2/openstack-deployment-manual.pdf).

Louis has created some notes in a readme that may be useful as well:

https://gitlab.rc.uab.edu/louistw/cluster-installation-note/blob/master/openstack.md