47
OpenStack Meetup #3 RDO: Packstack Workshop

RDO-Packstack Workshop

Embed Size (px)

Citation preview

OpenStack Meetup #3

RDO: Packstack Workshop

Objective

- Install All-In-One OpenStack

Agenda

- Install Workshop Software- Setup Environment- Introduction to RDO- Introduction to Packstack- Workshop: Prepare VirtualBox- Workshop: Deploy OpenStack with Packstack

Install Workshop Software

- Install VirtualBox - Install Vagrant- Download VirtualBox image (with vagrant)

# vargrant box add centos/7

Setup Environment

1. Create working directory

2. Create testing Vagrantfile

$ mkdir ~/OpenStackMeetUp$ cd ~/OpenStackMeetUP

$ vagrant init centos/7$ vagrant up $ vagrant ssh base $ vagrant destroy -f

OpenStack

- Open Source Cloud Computing Software - Software to control your cloud- Open source software for creating private and public clouds- One of the fastest growing open source community in the world

https://www.openstack.org/

RDO (RPM Distribution of OpenStack)

“... community-supported distribution of

OpenStack that runs on Red Hat Enterprise Linux

(RHEL) and its derivatives”

RDO (RPM Distribution of OpenStack)

“... community of users of cloud computing platform on Red Hat-based operating systems to get help and compare notes

on running OpenStack.”

OpenStack Components in RDO (Newton)

- Keystone: authentication, authorization and service discovery mechanisms - Glance: services for discovering, registering, and retrieving virtual machine

images.- Cinder: implement services and libraries to provide on demand, self-service

access to Block Storage resources.- Swift: distributed object storage system designed to scale from a single

machine to thousands of servers.- Nova: provides a cloud computing fabric controller, supporting a wide

variety of virtualization technologies, including KVM, Xen, LXC, VMware, and more.

OpenStack Components in RDO (Newton)

- Neutron: virtual network service for Openstack.- Heat: service to orchestrate multiple composite cloud applications using

templates, through both an OpenStack-native ReST API and a CloudFormation-compatible Query API.

- Ceilometer: project aims to become the infrastructure to collect measurements within OpenStack

- Gnocchi: project name of a TDBaaS (Time Series Database as a Service) project started under the Ceilometer program umbrella.

- Horizon: Django-based project aimed at providing a complete OpenStack Dashboard

OpenStack Components in RDO (Newton)

- Ironic: integrated OpenStack project which aims to provision bare metal machines instead of virtual machines.

- Trove: Database as a Service for OpenStack.- Sahara: aims to provide users with simple means to provision a Hadoop

cluster.- Tempest: set of integration tests to be run against a live OpenStack cluster.- Manila: shared filesystem management project for OpenStack.- Designate: OpenStack inspired DNSaaS.

Installation Method

RDO:

- Packstack- For PoC Environments- Using Puppet modules to deploy OpenStack

- TripleO (Next workshop? Please voted)- For Production Environments- Provision bare-metal machines then deploy production cloud environments- Undercloud → → Overclound

Packstack

“... is a utility that uses Puppet modules to deploy various

parts of OpenStack on multiple pre-installed servers over SSH

automatically. “

© 2013 Sandro Mathys // Dedicated to the Public Domain // http://creativecommons.org/publicdomain/zero/1.0/

Packstack

“... is a utility that uses Puppet modules to deploy various

parts of OpenStack on multiple pre-installed servers over SSH automatically. “

© 2013 Sandro Mathys // Dedicated to the Public Domain // http://creativecommons.org/publicdomain/zero/1.0/

Packstack

Packstack currently only CentOS, Red Hat Enterprise Linux (RHEL) and compatible derivatives of both are supported.

Workshop: Prepare VirtualBox

- Get VagrantFile from “https://github.com/thamrongtawal/Openstack-Meetup-3-Vagrant”

- Vagrant up- Vagrant ssh

Packstack Requirements

- CentOS 7 (X86_64)- Repositories

- Base- Extras

- Hardware- 6+ GB RAM- 1 NIC- Virtualization enabled

- Network- Prefer Static IP

Workshop: Install Packstack

- Install Repo & Update OS

- Configure services

- Restart OS

# yum install -y centos-release-openstack-newton# yum update -y

# systemctl disable NetworkManager# systemctl disable firewalld# systemctl enable network

# reboot

Workshop: Install Packstack

- Install “packstack”

- Generate packstack answer file

# yum install -y openstack-packstack# yum install -y openstack-utils

# packstack --gen-answer-file=/root/answer.txt

Workshop: Install Packstack

- Update packstack answer file

# crudini --set /root/answer.txt general CONFIG_SWIFT_INSTALL n# crudini --set /root/answer.txt general CONFIG_HEAT_INSTALL n# crudini --set /root/answer.txt general CONFIG_CEILOMETER_INSTALL n# crudini --set /root/answer.txt general CONFIG_AODH_INSTALL n# crudini --set /root/answer.txt general CONFIG_GNOCCHI_INSTALL n# crudini --set /root/answer.txt general CONFIG_NAGIOS_INSTALL n# crudini --set /root/answer.txt general CONFIG_KEYSTONE_ADMIN_PW password# crudini --set /root/answer.txt general CONFIG_NTP_SERVERS 2.th.pool.ntp.org# crudini --set /root/answer.txt general CONFIG_PROVISION_DEMO n# crudini --set /root/answer.txt general CONFIG_NEUTRON_ML2_TYPE_DRIVERS vxlan,flat# crudini --set /root/answer.txt general CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS physnet1:br-ex# crudini --set /root/answer.txt general CONFIG_NEUTRON_L3_EXT_BRIDGE

Workshop: Install Packstack

- Install Openstack with packstack

- Tips:- Using “screen” for prevent hangup terminal- Using “time” to get installation time (useful for next installation)

# packstack --answer-file=/root/answer.txt

Openstack Diagram ?

Summary: Install Packstack

Steps:

- Install openstack repository- Update OS- Generate answer file- Change parameters in answer file- Install openstack from answer file

Post-installation Tasks: Update vswitch interface

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0TYPE=OVSPortDEVICETYPE=ovsOVS_BRIDGE=br-exONBOOT=yes

# vi /etc/sysconfig/network-scripts/ifcfg-br-ex

DEVICE=br-exTYPE=OVSBridgeDEVICETYPE=ovsBOOTPROTO=staticIPADDR=###.###.###.###NETMASK=255.255.255.0GATEWAY=###.###.###.###DNS1=8.8.8.8ONBOOT=yes

Post-installation Tasks:Restart network

# systemctl restart network

Post-installation Tasks (for workshop only)

- Update “openstack-status” script

- Change line: 267 from “keystone user list” to

# vi /bin/openstack-status

openstack user list

Post-installation Tasks (for workshop only)

- Update Horizon url

- Add “ServerAlias” (line: 30)

- Restart httpd service

# vi /etc/httpd/conf.d/15-horizon_vhost.conf

ServerAlias ###.###.###.#

systemctl restart httpd.service

Verify Installation

- Verify Environment- Create Flavors- Create Project/User- Create environment file for Project/User- Create Image- Create Key Pair- Create Security Group- Create Network / Subnet #1- Launch Instance- Create Network / Subnet #2

Verify Environment

# vi ~/keystonerc_admin

# source ~/keystonerc_admin

# openstack user list

# openstack-service status

Test login from browser

http://<hostname or IP address>

Create Project/User

# openstack project list

# openstack project create --description "Meetup Project" meetup

# openstack user list

# openstack user create --project meetup --password Password1 user1

# openstack role list

# openstack role add --user user1 --project meetup admin

Create Flavors

# openstack flavor list

# openstack help flavor create

# openstack flavor create --public m1.nano --id auto --ram 256 --disk 1 --vcpus 1

Admin only tasks !!

Create environment file for new project/user

# cp ~/keystonerc_admin ~/keystonerc_user1

# source ~/keystonerc_user1

# openstack project list

# vi ~/keystonerc_user1

unset OS_SERVICE_TOKEN export OS_USERNAME=user1 export OS_PASSWORD=Password1 export OS_AUTH_URL=http://192.168.0.101:5000/v2.0 export PS1='[\u@\h \W(keystone_user1)]\$ '

export OS_TENANT_NAME=meetupexport OS_REGION_NAME=RegionOne

Create Image

# source ~/keystonerc_user1

# openstack image list

# wget -c http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

# openstack image create --disk-format qcow2 --container-format bare --public --file ./cirros-0.3.4-x86_64-disk.img cirros

# openstack image list

Create Keypair

# source ~/keystonerc_user1

# openstack keypair list

# openstack keypair create SecureKey > /root/securekey.pem

# chmod 600 /root/securekey.pem

Create Security Group

# source ~/keystonerc_user1

# openstack security group list

# openstack security group rule list default

# openstack security group create secgroup1 --description "Meetup group"

# openstack security group rule create --protocol tcp --dst-port 80:80 --src-ip 0.0.0.0/0 secgroup1

# openstack security group rule create --protocol tcp --dst-port 22:22 --src-ip 0.0.0.0/0 secgroup1

Create Network / Subnet #1

# source ~/keystonerc_user1

# openstack network list

# openstack network create net2

# openstack subnet create subnet2 --network net2 --subnet-range 10.10.11.0/24

# openstack router create router1

# openstack router add subnet router1 subnet2

Launch Instance

# source ~/keystonerc_user1

# openstack server list

# openstack network list

# openstack server create --flavor m1.nano --image cirros --key-name SecureKey --security-group secgroup1 --nic net-id=<net-uuid> meeting1

Verify Instance

Using browser to verify instance

crudini --set /etc/nova/nova.conf vnc novncproxy_base_url http://###.###.###.###:6080/vnc_auto.html

# openstack-service restart

Create Network / Subnet #2

# source ~/keystonerc_user1

# openstack network list

# openstack network create --external --provider-network-type flat --provider-physical-network physnet1 net1

# openstack subnet create subnet1 --network net1 --no-dhcp --subnet-range 192.168.##.0/24 --allocation-pool start=192.168.##.30,end=192.168.##.50

Create External router

# source ~/keystonerc_user1

# openstack router create ext-router

# neutron router-gateway-set ext-router net1

# openstack router add subnet ext-router subnet2

Using browser to delete “router1” router

Create floating IP

# source ~/keystonerc_user1

# openstack floating ip list

# openstack floating ip create net1

Associate floating IP

# source ~/keystonerc_user1

# openstack floating ip list

# openstack server list

# openstack server add floating ip meeting1 ###.###.###.###

Verify Instance

# ssh -i /root/securekey.pem cirros@<floating IP>

What’s Next

- Attach volume (Cinder) to instance.- https://docs.openstack.org/user-guide/dashboard-manage-volumes.html

- Add more coumpute node into PoC.- https://www.rdoproject.org/install/adding-a-compute-node/

- Read manuals- https://docs.openstack.org/ - https://www.rdoproject.org/documentation/

Tear Down

- What’s next workshop topic?- Comments / Feedbacks - Q/A