一、环境介绍
实验采用的是单节点部署。而多节点部署更适合实际生产环境,单节点部署更适合用于实验搭建与测试,实验拓扑图如图所示。
node.js + nginx
二、搭建配置Openstack
OpenStack目前可以采用多种方法进行搭建,如源码编译安装、Puppet、 安装DevStack脚本安装等,本文采用OpenStack官方网站所提供的指导手册进行安装,详细配置指令如下:
(1)创建Mysql数据库并授权
#mysql -u root –p
(2)安装KeyStone
# yum install -y openstack-keystone
(3)生成Token,并对环境变量设置
# export SERVICE_TOKEN=$(openssl rand -hex 10)
# export SERVICE_ENDPOINT=http://192.168.5.10:35357/v2.0
# echo $SERVICE_TOKEN > /tmp/ks_admin_token 59126bc836f2d2640378
(4)设置配置文件
# openstack-config --set /etc/keystone/keystone.conf
DEFAULT admin_token $SERVICE_TOKEN
# openstack-config --set /etc/keystone/keystone.conf
signing token_format UUID
(5)启动keystone服务和设置开机自动启动
# chkconfig openstack-keystone on
# service openstack-keystone start
(6)创建glance数据库
# CREATE DATABASE glance;
(7)glance的安装
# yum install -y openstack-glance
(8)环境变量设置
# source ~/keystonerc_admin
(9)设置配置文件
# openstack-config --set /etc/glance/glance-api.conf
paste_deploy flavor keystone
# openstack-config --set /etc/glance/glance-api.conf
keystone_authtoken admin_tenant_name admin
# openstack-config --set /etc/glance/glance-api.conf
keystone_authtoken admin_user admin
# openstack-config --set /etc/glance/glance-api.conf
keystone_authtoken admin_password PASSWORD
# openstack-config --set /etc/glance/glance-registry.conf
paste_deploy flavor keystone
# openstack-config --set /etc/glance/glance-registry.conf
keystone_authtoken admin_tenant_name admin
# openstack-config --set /etc/glance/glance-registry.conf
keystone_authtoken admin_user admin
# openstack-config --set /etc/glance/glance-registry.conf
keystone_authtoken admin_password PASSWORD
(10)启动glance服务
# chkconfig openstack-glance-registry on
# chkconfig openstack-glance-api on
# service openstack-glance-registry restart
# service openstack-glance-api restart
(11)安装Cinder
# yum install -y openstack-cinder
(12)设置环境变量
# source ~/keystonerc_admin
(13)修改配置文件
# openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone
# openstack-config --set /etc/cinder/cinder.conf
keystone_authtoken admin_tenant_name admin
# openstack-config --set /etc/cinder/cinder.conf
keystone_authtoken admin_user admin
# openstack-config --set /etc/cinder/cinder.conf
keystone_authtoken admin_password PASSWORD
(14)修改tgt配置文件
grep -q /etc/cinder/volumes /etc/tgt/targets.conf || sed -i '1iinclude /etc/cinder/volumes/*' /etc/tgt/targets.conf
(15)启动tgt
#service tgtd start
#chkconfig tgtd on
(16)创建cinder-volumes
使用一个空闲独立的分区,这里这个分区为/dev/sdb1
# vgcreate cinder-volumes /dev/sdb1
(17)安装cinderclient和nova
# yum install -y openstack-nova
# yum install -y python-cinderclient
(18)修改配置文件
# openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
# openstack-config --set /etc/nova/api-paste.ini
filter:authtoken admin_token $(cat /tmp/ks_admin_token)
(19)卸载nova-network
# rpm -e openstack-nova-network-2013.1-2.el6.noarch --nodeps
# service messagebus start
# chkconfig messagebus on
# service libvirtd start
# chkconfig libvirtd on
# openstack-config --set /etc/nova/nova.conf DEFAULT
volume_api_class nova.volume.cinder.API
# openstack-config --set /etc/nova/nova.conf DEFAULT
enabled_apis ec2,osapi_compute,metadata
(20)创建服务和Endpoint
#keystoneendpoint-create--service_iffdd49433fd7432afb6e1a66964f6b5cc
(21)为OpenStack Networking配置Keystone
# source ~/keystonerc_admin
# keystone service-create --name openstack_network --type network
--description 'OpenStack Networking Service'
#keystoneendpoint-create--service-id23d5cf3d27a132dabf4faf3de2f0de78
(22)安装 quantum 和插件
# yum install openstack-quantum
# yum install openstack-quantum-openvswitch
(23)配置Openstack-Networking
# openstack-config --set /etc/quantum/quantum.conf
DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid
# openstack-config --set /etc/quantum/quantum.conf
DEFAULT qpid_hostname 192.9.0.106
# openstack-config --set /etc/quantum/quantum.conf
keystone_authtoken admin_tenant_name admin
# openstack-config --set /etc/quantum/quantum.conf
keystone_authtoken admin_user admin
# openstack-config --set /etc/quantum/quantum.conf
keystone_authtoken admin_password PASSWORD
# sudo sh -c 'echo 127.0.0.1 `hostname` >> /etc/hosts'
# quantum-server-setup --plugin openvswitch
# service quantum-server start
# chkconfig quantum-server on
(24)修改nova.conf
network_api_class = nova.network.quantumv2.api.API
quantum_admin_username = admin
quantum_admin_password = PASSWORD
quantum_admin_auth_url = http://192.9.0.106:35357/v3.0/
quantum_auth_strategy = keystone
quantum_admin_tenant_name = admin
quantum_url = http:// 192.9.0.106:9696/
libvirt_use_virtio_for_bridges=True
(25)安装OpenStack Networking Agents
# yum install -y openstack-quantum-openvswitch
# quantum-node-setup --plugin openvswitch
# service openvswitch start
# chkconfig openvswitch on
# service quantum-openvswitch-agent start
# chkconfig quantum-openvswitch-agent on
# chkconfig quantum-ovs-cleanup on
(26)安装 OpenStack DHCP 服务
# quantum-dhcp-setup --plugin openvswitch
# service quantum-dhcp-agent restart
# chkconfig quantum-dhcp-agent on
(27)安装OpenStack Networking L5 Agent
# ovs-vsctl add-br br-int
# ovs-vsctl add-br br-ex
# ovs-vsctl add-port br-ex eth1
# yum install -y openstack-quantum
# quantum-l3-setup --plugin openvswitch
# quantum router-create router1
# vi /etc/quantum/l5_agent.ini
router_id = 5467012f-3d20-7021-c66b-45dc3a3045ca
# service quantum-l5-agent start
# chkconfig quantum-l5-agent on
(28)启动nova
# service openstack-nova-api start
# service openstack-nova-cert start
# service openstack-nova-conductor start
# service openstack-nova-objectstore start
# service openstack-nova-scheduler start
# service openstack-nova-compute start
(29)Horizon的安装
#yum install -y openstack-dashboard
#yum install -y mod_ssl
#keystone role-create --name Member
(30)HTTP服务器启动
#service httpd start
#chkconfig httpd on
二、node.js + nginx配置指令:
1、安装nginx需要的环境
#yum -y install zlib;
#yum –y install pcre;
#yum –y install openssl;
2、安装nginx服务
#yum –y install nginx ;
3、安装apache服务
#yum –y install httpd ;
4、修改配置文件
在http节点之间添加
upstream myServer{
server www.web1.com:80; #负载均衡的服务器地址1
server www.web2.com:8080; #负载均衡的地址2
}
5、设置apache配置文件
Listen 80
Listen 8080
<VirtualHost *:80>
ServerName www.test1.com #对应的域名,负载均衡的服务器地址
DocumentRoot /var/www/html#对应的网站文件目录
</VirtualHost>
6、启动nginx服务
#service nginx start
7、测试服务
浏览器输入http://172.24.4.3,对网页进行刷新,网页会在In the web1和In the web2之间切换,实现负载均衡