搭建OpenStack AllInOne的沙箱模拟环境

来源:互联网 发布:征途重置版网络不稳定 编辑:程序博客网 时间:2024/05/24 13:28
本文介绍Windows安装 VirtualBox,并创建Ubuntu-Server 12.04 x86_64虚拟机,再在Ubuntu虚拟机中构建一个OpenStack Essex AllInOne的沙箱模拟环境。


(一)物理主机设置
启用物理主机CPU的VT支持:BIOS Setup Utility Config ==> CPU ==> Intel(R) Virtualization Technology ==> 设置为 Enabled
(二)安装虚拟机软件
选择Oracle VirtualBox,下载地址 http://dlc.sun.com.edgesuite.net/virtualbox/4.2.16/VirtualBox-4.2.16-86992-Win.exe
(三)配置虚拟机软件
设置-系统-处理器 扩展特性启用PAE/NX
设置-系统-硬件加速 启用VT-x/AMD-V 启用嵌套分页


管理-全局网络 创建两个HostOnly接口分别用于OpenStack公有网和私有网
# Public Network vboxnet0 (172.16.0.0/16)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet0 --ip 172.16.0.254 --netmask 255.255.0.0


# Private Network vboxnet1 (10.0.0.0/8)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet1 --ip 10.0.0.254 --netmask 255.0.0.0


虚拟机网络 设置启用三张网卡
网卡1 桥接网卡,用于主机和虚拟机通信,并可以接入Internet
网卡2 仅主机(Host-Only)适配器,对应全局网络的OpenStack公有网
网卡3 仅主机(Host-Only)适配器,对应全局网络的OpenStack私有网
(四)创建Ubuntu-Server 12.04 x86_64虚拟机,ISO介质下载地址
http://mirror.umd.edu/ubuntu-iso/12.04/ubuntu-12.04-server-amd64.iso
对于32位操作系统,建议只创建1GB虚拟内存
(五)配置主机域名及虚拟机网络
$sudo vim /etc/hosts
192.168.0.104 mgmt1.openstack.org
$sudo vim /etc/hostname
mgmt1.openstack.org


/etc/network/interfaces 对应如下:
# The loopback network interface
auto lo
iface lo inet loopback


# The primary network interface
auto eth0
iface eth0 inet static
pre-up ifconfig eth0
address 192.168.0.104
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
getway 192.168.0.1


# Public Interface 
auto eth1
iface eth1 inet static
address 172.16.0.1
netmask 255.255.0.0
network 172.16.0.0
broadcast 172.16.255.255


# Private Interface
auto eth2
iface eth2 inet manual
up ifconfig eth2 up


/etc/resolv.conf 对应如下:
nameserver 202.96.134.33 (以本机所处网络广东电信SP为例)
nameserver 202.96.128.86
注:如果发现每次重启后DNS都会消失需要重新配置,可在/etc/rc.local文件追加以下内容:
echo "nameserver 202.96.128.33" >>/etc/resolv.conf
echo "nameserver 202.96.134.86" >>/etc/resolv.conf
重启网络使之生效
$ sudo /etc/init.d/networking restart
(六)创建用户
创建用户openstack 密码openstack, 并指定加入sudo组
$ sudo addgroup openstack -gid 1001
$ sudo useradd openstack -g openstack -G openstack,sudo -m -s /bin/bash
$ sudo passwd openstack --输入密码openstack
(七)安装OpenStack Essex必要组件
$ sudo apt-get -y install rabbitmq-server nova-api nova-objectstore nova-scheduler nova-network nova-compute nova-cert glance qemu unzip
(八)安装配置NTP
$ sudo apt-get -y install ntp
$ sudo vi /etc/ntp.conf
替换所有内容如下:
# Replace ntp.ubuntu.com with an NTP server on your network
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10
重启NTP
$ sudo service ntp restart
(九)安装配置MySQL数据库(root用户)
# cat <<MYSQL_PRESEED | debconf-set-selections
> mysql-server-5.1 mysql-server/root_password password openstack
> mysql-server-5.1 mysql-server/root_password_again password openstack
> mysql-server-5.1 mysql-server/start_on_boot boolean true
> MYSQL_PRESEED
安装数据库,并使其可以对外访问
# apt-get update
# apt-get -y install mysql-server
# sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
# service mysql restart
创建nova数据库,并修改口令密码
# MYSQL_PASS=openstack
# mysql -uroot -p$MYSQL_PASS -e 'CREATE DATABASE nova;'
# mysql -uroot -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%'"
# mysql -uroot -p$MYSQL_PASS -e "SET PASSWORD FOR 'nova'@'%' =  PASSWORD('$MYSQL_PASS');"
修改nova配置文件
# mv /etc/nova/nova.conf /etc/nova/nova.conf.sav
# touch /etc/nova/nova.conf
# vi /etc/nova/nova.conf
内容如下:
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/var/lock/nova
--force_dhcp_release
--iscsi_helper=tgtadm
--libvirt_use_virtio_for_bridges
--connection_type=libvirt
--root_helper=sudo nova-rootwrap
--ec2_private_dns_show_ip
--sql_connection=mysql://nova:openstack@172.16.0.1/nova
--use_deprecated_auth
--s3_host=172.16.0.1
--rabbit_host=172.16.0.1
--ec2_host=172.16.0.1
--ec2_dmz_host=172.16.0.1
--public_interface=eth1
--image_service=nova.image.glance.GlanceImageService
--glance_api_servers=172.16.0.1:9292
--auto_assign_floating_ip=true
--scheduler_default_filters=AllHostsFilter
修改虚拟软件
# vi /etc/nova/nova-compute.conf
修改为
--libvirt_type=qemu
更新数据库表初始化数据
# sudo nova-manage db sync
建立OpenStack计算实例私有网络
# sudo nova-manage network create vmnet --fixed_range_v4=10.0.0.0/8 --network_size=64 --bridge_interface=eth2
建立OpenStack计算实例公有网络
# sudo nova-manage floating create --ip_range=172.16.1.0/24
(十)重启OpenStack(root用户)
#stop nova-compute
#stop nova-network
#stop nova-api
#stop nova-scheduler
#stop nova-objectstore
#stop nova-cert
#stop libvirt-bin
#stop glance-registry
#stop glance-api


#sudo start nova-compute
#sudo start nova-network
#sudo start nova-api
#sudo start nova-scheduler
#sudo start nova-objectstore
#sudo start nova-cert
#sudo start libvirt-bin
#sudo start glance-registry
#sudo start glance-api
(十一)创建OpenStack用户、角色、项目
#sudo nova-manage user admin openstack
#sudo nova-manage role add openstack cloudadmin
#sudo nova-manage project create cookbook openstack
打包OpenStack项目相关凭证文件
#sudo nova-manage project zipfile cookbook openstack
(十二)安装相关命令行工具
#sudo apt-get install euca2ools python-novaclient unzip
(十三)在宿主机配置OpenStack项目
将OpenStack项目相关凭证文件放到openstack用户主目录
#sudo cp nova.zip /home/openstack
切换openstack用户
#su openstack
解压OpenStack项目相关凭证文件
$unzip nova.zip
建立环境变量
$. novarc
$ vim /home/openstack/.bashrc
增加下列内容:
cd /home/openstack
. novarc
env
退出保存,并用source激活.bashrc
增加权限
$euca-add-keypair openstack > openstack.pem
$chmod 0600 *.pem
(十四)下载与安装VM镜像
Ubuntu-Server 12.04 x86 镜像下载地址
http://uec-images.ubuntu.com/releases/precise/release-20130603/ubuntu-12.04-server-cloudimg-i386.tar.gz
利用SecureCRT工具的SFTP上传
sftp>put D:/Download/ubuntu-12.04-server-cloudimg-i386.tar.gz
安装cloud-utils
$sudo apt-get -y install cloud-utils
发布VM
$cloud-publish-tarball ubuntu-12.04-server-cloudimg-i386.tar.gz images i386
验证VM发布状态
$euca-describe-images
当ami-****显示为available时,即表示发布成功,如图所示:
搭建OpenStack <wbr>AllInOne的沙箱模拟环境

或者$nova image-list
当nova镜像为ACTIVE时,即表示发布成功,如图所示:
搭建OpenStack <wbr>AllInOne的沙箱模拟环境


允许SSH连接
$euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
允许Ping
$euca-authorize default -P icmp -t -1:-1
重启虚拟机
$sudo reboot
(十五)启动VM
$nova flavor-list
选择VM类型,这里选择微型tiny,对应flavor=1
使用euca2ools创建并启动实例,其中ami-00000002为euca-describe-images显示的镜像ID
$euca-run-instances ami-00000002 -t m1.tiny -k openstack


使用Nova Client tools创建并启动实例,其中a9d5a570-3f8e-40fc-9f65-8892dd5f0444为nova image-list显示的images/precise-server-cloudimg-i386.img的ID
$nova boot myInstance --image a9d5a570-3f8e-40fc-9f65-8892dd5f0444 --flavor 1 --key_name openstack 


使用euca-describe-instances与nova list命令监控启动情况,当VM变成running状态时,再使用pstree命令检查libvirtd是否以{qemu-system-x86}方式启动,并尝试ping 172.16.1.1。若无法ping通,nova reboot a9d5a570-3f8e-40fc-9f65-8892dd5f0444 重新启动虚拟机实例,并再次重复该步骤,持续验证观察!


使用密钥文件用ssh建立连接
$ssh -i openstack.pem ubuntu@172.16.1.1
如果公网IP172.16.1.1可以ping通,而且可以使用ssh连接,那么说明VM已经建立好了
(十六)删除VM实例
$euca-describe-instances
$euca-terminate-instances i-00000002
其中i-00000002为实例ID
$nova list
$nova delete myInstance
其中myInstance为实例名称




Nova 详细命令参考:
http://docs.openstack.org/essex/openstack-compute/starter/content/Nova_Commands-d1e2589.html
原创粉丝点击