Date post: | 06-Apr-2017 |
Category: |
Technology |
Upload: | thamrongtawal-hashim |
View: | 149 times |
Download: | 0 times |
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
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 (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 ###.###.###.###
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/