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-supporteddistribution of
OpenStack that runs onRed Hat Enterprise Linux
(RHEL) and its derivatives”
RDO (RPM Distribution of OpenStack)
“... community of usersof cloud computing platform on
Red Hat-basedoperating 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 deployvarious
parts of OpenStack on multiplepre-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 Puppetmodules to deployvarious
parts of OpenStack on multiple pre-installed servers over
SSHautomatically. “
© 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=eth0
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
# vi /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
TYPE=OVSBridge
DEVICETYPE=ovs
BOOTPROTO=static
IPADDR=###.###.###.###
NETMASK=255.255.255.0
GATEWAY=###.###.###.###
DNS1=8.8.8.8
ONBOOT=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=meetup
export 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

RDO-Packstack Workshop

  • 1.
    OpenStack Meetup #3 RDO:Packstack Workshop
  • 2.
  • 3.
    Agenda - Install WorkshopSoftware - Setup Environment - Introduction to RDO - Introduction to Packstack - Workshop: Prepare VirtualBox - Workshop: Deploy OpenStack with Packstack
  • 4.
    Install Workshop Software -Install VirtualBox - Install Vagrant - Download VirtualBox image (with vagrant) # vargrant box add centos/7
  • 5.
    Setup Environment 1. Createworking directory 2. Create testing Vagrantfile $ mkdir ~/OpenStackMeetUp $ cd ~/OpenStackMeetUP $ vagrant init centos/7 $ vagrant up $ vagrant ssh base $ vagrant destroy -f
  • 6.
    OpenStack - Open SourceCloud 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/
  • 7.
    RDO (RPM Distributionof OpenStack) “... community-supporteddistribution of OpenStack that runs onRed Hat Enterprise Linux (RHEL) and its derivatives”
  • 8.
    RDO (RPM Distributionof OpenStack) “... community of usersof cloud computing platform on Red Hat-basedoperating systems to get help and compare notes on running OpenStack.”
  • 10.
    OpenStack Components inRDO (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.
  • 11.
    OpenStack Components inRDO (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
  • 12.
    OpenStack Components inRDO (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.
  • 13.
    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
  • 14.
    Packstack “... is autility that uses Puppet modules to deployvarious parts of OpenStack on multiplepre-installed servers over SSH automatically. “ © 2013 Sandro Mathys // Dedicated to the Public Domain // http://creativecommons.org/publicdomain/zero/1.0/
  • 15.
    Packstack “... is autility that uses Puppetmodules to deployvarious parts of OpenStack on multiple pre-installed servers over SSHautomatically. “ © 2013 Sandro Mathys // Dedicated to the Public Domain // http://creativecommons.org/publicdomain/zero/1.0/
  • 16.
    Packstack Packstack currently onlyCentOS, Red Hat Enterprise Linux (RHEL) and compatible derivatives of both are supported.
  • 17.
    Workshop: Prepare VirtualBox -Get VagrantFile from “https://github.com/thamrongtawal/Openstack-Meetup-3-Vagrant” - Vagrant up - Vagrant ssh
  • 18.
    Packstack Requirements - CentOS7 (X86_64) - Repositories - Base - Extras - Hardware - 6+ GB RAM - 1 NIC - Virtualization enabled - Network - Prefer Static IP
  • 19.
    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
  • 20.
    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
  • 21.
    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
  • 22.
    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
  • 23.
  • 25.
    Summary: Install Packstack Steps: -Install openstack repository - Update OS - Generate answer file - Change parameters in answer file - Install openstack from answer file
  • 26.
    Post-installation Tasks: Update vswitchinterface # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=br-ex ONBOOT=yes # vi /etc/sysconfig/network-scripts/ifcfg-br-ex DEVICE=br-ex TYPE=OVSBridge DEVICETYPE=ovs BOOTPROTO=static IPADDR=###.###.###.### NETMASK=255.255.255.0 GATEWAY=###.###.###.### DNS1=8.8.8.8 ONBOOT=yes
  • 27.
  • 28.
    Post-installation Tasks (forworkshop only) - Update “openstack-status” script - Change line: 267 from “keystone user list” to # vi /bin/openstack-status openstack user list
  • 29.
    Post-installation Tasks (forworkshop 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
  • 30.
    Verify Installation - VerifyEnvironment - 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
  • 31.
    Verify Environment # vi~/keystonerc_admin # source ~/keystonerc_admin # openstack user list # openstack-service status Test login from browser http://<hostname or IP address>
  • 32.
    Create Project/User # openstackproject 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
  • 33.
    Create Flavors # openstackflavor list # openstack help flavor create # openstack flavor create --public m1.nano --id auto --ram 256 --disk 1 --vcpus 1 Admin only tasks !!
  • 34.
    Create environment filefor 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=meetup export OS_REGION_NAME=RegionOne
  • 35.
    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
  • 36.
    Create Keypair # source~/keystonerc_user1 # openstack keypair list # openstack keypair create SecureKey > /root/securekey.pem # chmod 600 /root/securekey.pem
  • 37.
    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
  • 38.
    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
  • 39.
    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
  • 40.
    Verify Instance Using browserto verify instance crudini --set /etc/nova/nova.conf vnc novncproxy_base_url http://###.###.###.###:6080/vnc_auto.html # openstack-service restart
  • 41.
    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
  • 42.
    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
  • 43.
    Create floating IP #source ~/keystonerc_user1 # openstack floating ip list # openstack floating ip create net1
  • 44.
    Associate floating IP #source ~/keystonerc_user1 # openstack floating ip list # openstack server list # openstack server add floating ip meeting1 ###.###.###.###
  • 45.
    Verify Instance # ssh-i /root/securekey.pem cirros@<floating IP>
  • 46.
    What’s Next - Attachvolume (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/
  • 47.
    Tear Down - What’snext workshop topic? - Comments / Feedbacks - Q/A