1.说明
Openstack 是一款开源的云计算系统,本文档将介绍一种企业开源云的应用方案,此方案是使用openstack 搭建私有云,利用iptables nat转发使用公网访问私有云。
结构如下:
图2
2.安装openstack compute
2.1 安装前规划
安装openstack前需要对openstack进行规划:
服务器的规划:
服务器 |
用途 |
说明 |
121.194.3.225/232 |
Compute controller |
用于控制compute以及NAT转发控制,另外安装web管理API |
121.194.3.215 |
Compute node /storerage |
Compute 节点,云存储共享 |
网络的规划:
网络 |
用途 |
说明 |
192.168.0.0/24 |
云项目cernet的私有IP段 |
使用flatdhcp模式 |
192.168.1.0/24 |
云项目cernet2的私有IP段 |
使用flatdhcp模式 |
注意:
Openstack 支持3种网络模式,flat/flat dhcp/vlan 其中flat模式为默认模式,需要在网络端口配置网桥,使用网桥将私网和外网连接通讯,本文档为了方便使用的是flatdhcp模式,这种模式的私网IP地址是自动分配的。
2.2 安装准备
2台服务器都需要安装ubuntu10 server 版本,并保证网络畅通。需要提前安装数据库mysql
2.3 安装软件
安装可以有很多种方法,官方提供的有脚本安装和手工安装,为了了解整个过程,这里采用手工安装服务器系统。下面将介绍一步一步安装的过程:
2.3.1 安装基本包
Nova PPA配置:
#apt-get install python-software-properties
#add-apt-repository ppa:nova-core/trunk
#apt-get update
2.3.2 配置nova组
#addgroup nova
2.3.3 安装数据库
安装MYSQL前设置:
bash
MYSQL_PASS=nova
cat <<MYSQL_PRESEED | debconf-set-selections
mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS
mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS
mysql-server-5.1 mysql-server/start_on_boot boolean true
MYSQL_PRESEED
#apt-get install mysql-server
设置mysql的root密码为nova
#sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
#service mysql restart
#mysql -uroot -pnova -e 'CREATE DATABASE nova;'
#mysql -uroot -pnova -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;"
#mysql -uroot -pnova -e "SET PASSWORD FOR 'root'@'%' = PASSWORD('nova');"
2.3.4 安装云控制端
#apt-get install -y rabbitmq-server
#apt-get install -y python-greenlet python-mysqldb
#apt-get install -y nova-common nova-doc python-nova nova-api
#apt-get install -y nova-network nova-objectstore nova-scheduler nova-compute
#apt-get install -y euca2ools unzip
# modprobe kvm
# modprobe nbd
#chgrp kvm /dev/kvm
#chmod g+rwx /dev/kvm
2.3.5 安装compute node
在node服务器上,安装所有的control端的包
#apt-get install python-greenlet python-mysqldb python-nova nova-common nova-doc nova-api nova-network nova-objectstore nova-scheduler nova-compute rabbitmq-server euca2ools unzip
重启服务:
#libvirtd restart; restart nova-network; restart nova-compute;
#restart nova-api; restart nova-objectstore; restart nova-scheduler
配置nova.conf
#addgroup nova
添加配置信息:
--daemonize=1
--s3_host=121.194.3.215
--rabbit_host=121.194.3.215
--cc_host=121.194.3.215
--ec2_url=http://121.194.3.215:8773/services/Cloud
--fixed_range=192.168.0.0/12
--network_size=8
--FAKE_subdomain=ec2
--routing_source_ip=121.194.3.215
--sql_connection=mysql://root:[email protected]/nova
--network_manager=nova.network.manager.FlatDHCPManager
--flat_network_dhcp_start=192.168.1.2
--public_interface=eth0
--flat_interface=eth0
--routing_source_ip=121.194.3.215
--flat_injected=False
其中121.194.3.215
#chown -R root:nova /etc/nova
#chmod 644 /etc/nova/nova.conf
2.4 配置compute 2.4.1环境配置
#nova-manage db sync
创建管理用户
#nova-manage user admin root
创建project
#nova-manage project create cernet root
创建network
#nova-manage network create 192.168.1.0/24 1 255
2.4.2 认证配置
#mkdir -p /root/creds
#nova-manage project zipfile cernet root /root/creds/novacreds.zip
#unzip /root/creds/novacreds.zip -d /root/creds/
# . /root/creds/novarc
或者将novarc的环境变量加入到系统初始环境变量文件中
#cat /root/creds/novarc >> ~/.bashrc
#source ~/.bashrc
2.4.3 权限配置
基本服务:
#euca-authorize -P icmp -t -1:-1 default
#euca-authorize -P tcp -p 22 default
对外扩展服务(可以根据需要定制):
#euca-authorize -P tcp –p 80 default
#euca-authorize -P tcp –p 21 default
#euca-authorize -P tcp –p 8080 default
#euca-authoriz -P tcp –p 3306 default
配置完毕后重启服务:
#killall dnsmasq
#service nova-network restart
2.5 安装images
下载
#wget http://uec-images.ubuntu.com/releases/10.04/release/ubuntu-10.04-server-uec-amd64.tar.gz
安装:
# uec-publish-tarball ubuntu-10.04-server-uec-amd64.tar.gz dub-bucket x86_64
查看安装的images
# euca-describe-images
可以看到$emi
2.6 instance操作
创建key:
#euca-add-keypair mykey > mykey.priv
#chmod 600 mykey.priv
启动:
# euca-run-instances $emi -k mykey -t m1.tiny
查看instance
#euca-describe-instances
登录instance
#ssh -i /root/creds/mykey.priv root@instanceip
删除instance
# euca-terminate-instances
3.安装openstack compute node 4. web 管理界面安装配置 4.1 下载更新包
#apt-get install bzr
更新包:
#mkdir src
#cd src
# mkdir django-nova
#cd django-nova
#bzr init-repo .
# bzr branch lp:django-nova/trunk
#cd ..
# mkdir openstack-dashboard
# cd openstack-dashboard
# bzr init-repo .
# bzr branch lp:openstack-dashboard trunk
4.2 安装virtualenv
# easy_install virtualenv
4.3安装接口
# python tools/install_venv.py
#cd local
# cp local_settings.py.example local_settings.py
#vi local_settings.py
找到选项修改成:(其他的不变)
NOVA_DEFAULT_ENDPOINT = 'http://localhost:8773/services/Cloud'
NOVA_DEFAULT_REGION = 'nova'
NOVA_ACCESS_KEY = '3305597a-baec-499a-9ce8-9743037683ff:cernet'
NOVA_SECRET_KEY = '9013b44f-7f74-4c67-a743-49c364e8289e'
NOVA_ADMIN_USER = 'root'
NOVA_PROJECT = 'cernet'
# tools/with_venv.sh dashboard/manage.py syncdb
根据提示进行配置,需要设置界面管理的超级账号和密码,这里设置为root/welldone
安装完成界面如下:
最后一行提示为No fixtures found.
启动接口:
#tools/with_venv.sh dashboard/manage.py runserver 0.0.0.0:80
访问接口:
http://121.194.3.215/
打开界面如下:
5. IPTABLES 映射
5.1 准备工作
网络准备:
需要在公网端口上绑定多个IP,使用NAT方式访问网络
系统配置:
#sysctl -w net.ipv4.ip_forward=1
重启系统
#init 6
5.2 NAT内网访问外网
#iptables -t nat -A SNAT -s 192.168.0.8/32 -j SNAT --to-source 121.194.3.232
说明:
192.168.0.8是instance 的私网IP地址
121.194.3.232为绑定到公网端口的IP地址
5.3 NAT 外网访问内网
#iptables -t nat -A OUTPUT -p tcp -d 121.194.3.232 --dport 80 -j DNAT --to-destination 192.168.0.8:80
#iptables -t nat -A PREROUTING -p tcp -d 121.194.3.232 --dport 80 -j DNAT --to-destination 192.168.0.8:80
如果提示没有SNAT OUTPUT等chain,使用下面命令
#nova-manage floating create ubuntu-server225 121.194.3.0/26
注意:ubuntu-server225为服务器的hostname
# euca-allocate-address 121.194.3.232
# euca-associate-address -i i-1 121.194.3.232
#iptables –t nat -A nova-network-OUTPUT -d 121.194.3.232/32 –p tcp –dport 80 -j DNAT --to-destination 192.168.1.2:80
#iptables –t nat -A nova-network-PREROUTING -d 121.194.3.232/32 –p tcp –dport 80 -j DNAT --to-destination 192.168.1.2:80
说明:
将80端口映射到外部进行访问,也可以全部映射,一般不建议全部端口映射
全部映射:
-A nova-network-OUTPUT -d 121.194.3.232/32 -j DNAT --to-destination 192.168.1.2
-A nova-network-PREROUTING -d 121.194.3.232/32 -j DNAT --to-destination 192.168.1.2
#iptables -t nat -A OUTPUT -d 121.194.3.232/32 -j DNAT --to-destination 192.168.0.8
#iptables -t nat -A PREROUTING -d 121.194.3.232/32 -j DNAT --to-destination 192.168.0.8
6.一些常见安装问题 6.1 检查CPU是否支持kvm
#kvm-ok
如果不支持:
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
如果支持:
INFO: Your CPU supports KVM extensions
INFO: /dev/kvm exists
KVM acceleration can be used
6.2 如果进行了NAT转发后还是外部无法访问
可以执行下面命令进行尝试
#nova-manage floating create my-hostname 121.194.3.232/32
#euca-allocate-address 121.194.3.232
#euca-associate-address -i i-1 121.194.3.232
本文出自 “剑客无心” 博客,请务必保留此出处http://1511823.blog.51cto.com/1501823/1004763