热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CentOS6.5系统单网卡环境下安装OpenstackHavana平台

IaaS软件的安装和学习,最头痛的是对硬件条件的要求,很多时候因为对硬件的要求,导致你无法去测试。在Openstack的Grizzly版本里,要求3块网卡,有时候很难满足这样的条件。还有就是网络,很有可能你的网络条件无法满足要求,也是无法测试。那么这种情况到

IaaS软件的安装和学习,最头痛的是对硬件条件的要求,很多时候因为对硬件的要求,导致你无法去测试。在Openstack的Grizzly版本里,要求3块网卡,有时候很难满足这样的条件。还有就是网络,很有可能你的网络条件无法满足要求,也是无法测试。

那么这种情况到了H版本,已经大大改善,单网卡,网络,你可能只需要一个网段的几个IP地址,就可以装好和测试。这也很好体现了Openstack的网络功能的强悍。目前Neutron网络设置和以前的Nova network 差异很大,全部都是web搞定,非常爽。

1台物理服务器,单网卡,机器可联网

网卡IP:10.1.199.8/24, 网关10.1.199.1

10.1.199.210 到10.1.199.220 这段IP,作为Floating IP给虚拟机使用

CentOS6.4,最小化安装,只支持CentOS6.4以上的版本安装Openstack的Havana。如果你希望测试cinder存储功能,那么建议你单独一个分区,这样性能会很好多。

由于使用Puppet,需要机器设置好FQDN 名字。

# hostname -f
g134.chenshake.com

网络
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
OnBOOT=yes
HWADDR=00:E0:81:D8:42:F6
TYPE=Ethernet
BOOTPROTO=static
IPADDR=10.1.199.8
NETMASK=255.255.255.0

确保联网正常。

LVM设置(可选)

这主要是为了给cinder-volumes单独一个分区,提高性能。

[root@node08 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5             628G  979M  596G   1% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sda1             194M   32M  153M  18% /boot
/dev/sda2             193G  188M  183G   1% /cinder-volume
[root@node08 ~]# umount /dev/sda2
[root@node08 ~]# pvcreate /dev/sda2
  Physical volume  "str">"/dev/sda2" successfully created
[root@node08 ~]# vgcreate cinder-volumes /dev/sda2
  Volume group  "str">"cinder-volumes" successfully created

修改/etc/fstab 去掉cinder-volume的开机挂载,不然会导致你无法重启

sed -i '/cinder-volume/s/^/#/' /etc/fstab

设置源
cd /etc/yum.repos.d/
wget http: "rem">//mirrors.163.com/.help/CentOS6-Base-163.repo
yum list

Packstack,你可以理解成Redhat用Puppet写的一套脚本

使用RDO源

yum install -y http://rdo.fedorapeople.org/openstack/openstack-havana/rdo-release-havana.rpm

安装packstack

yum install -y openstack-packstack

进行更新

yum -y update

系统会更新内核和组件。

重启机器,一定要重启。

直接运行下面命令就可以

packstack  --allinone --provision-demo=n

如果你设置了一个单独的分区给Cinder使用,那么你就运行下面命令

packstack  --allinone --provision-demo=n CONFIG_CINDER_VOLUMES_CREATE=n

如果希望安装Heat

packstack  --allinone --provision-demo=n CONFIG_CINDER_VOLUMES_CREATE=n \
--os-heat-install=y --os-heat-cfn-install=y

重启机器

这是重点,参考是这篇文档http://openstack.redhat.com/Neutron_with_existing_external_network

我们需要把 /etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts/ifcfg-br-ex 两个文件进行修改。ifcfg-br-ex是安装Openstack的过程中创建的。

源文件

 cat /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=
NETMASK=

修改后

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
OnBOOT=yes
HWADDR=00:E0:81:D8:43:BE
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex

ifcfg-br-ex 是一个openvswitch 的连接外网的bridge。

# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=10.1.199.8
NETMASK=255.255.255.0
OnBOOT=yes

重启网络

/etc/init.d/network restart

Openstack的安装,就已经装完,剩下的是进入Dashboard进行设置。

管理员登陆

密码

# cat /root/keystonerc_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=c22a03c7fb7145fa
export OS_AUTH_URL=http: "rem">//10.1.199.8:35357/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ '

通过 http://10.1.199.8  user:admin 密码看上面,随机生成的。

下面就是用最快的步骤来实现创建一个虚拟机,并且访问外网。

镜像

上传一个ubuntu12.04镜像,

http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img

创建网络

创建完成后,进入网络的详细页面

添加子网,这是重点

子网详情,设置你使用的IP地址范围

创建完毕

创建用户

你可以使用当前的管理员去创建虚拟机,不过为了更加深入了解,我这里创建一个项目test,用户chenshake来演示

创建用户

注意选择test项目和Member角色

用户登录

使用创建的账号 chenshake登录

创建网络和设置

虚拟机使用的Fix IP,这个你可以随意设置

子网详情,就不需要设置,默认就可以,点击创建。

创建路由器和设置

创建一个名字为“ 路由器1”

设置路由器的网关

选择管理员创建的外网网络

进入路由器详细页面,添加接口

就是把路由器和用户自己的网络连接起来

查看网络拓扑图

设置安全组

打开安全组的22和允许ping

22端口

查看全部规则

创建秘钥

秘钥会下载到本地

创建虚拟机

云主机类型,不能选择tiny,会导致创建失败,因为不满足镜像的要求。

这里不需要设置,我刚才创建的秘钥的名称是:chenshake

在可用网络里把网络添加上,点击 “运行”

分配Floating IP

点击+ 号,申请Floating IP

关联

看看结果

访问虚拟机

ping虚拟机

ssh虚拟机

Ubuntu虚拟机默认的用户名是ubuntu,只能采用秘钥登陆,无法采用密码登陆,设置SecureCRT(如果使用putty,秘钥需要转换,自己研究)

登陆结果


推荐阅读
author-avatar
UFO来了-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有