分享

安装部署OpenStack的常用四种方法

本帖最后由 nettman 于 2014-3-3 16:08 编辑

阅读本文时可以带着下面几个问题:
1、安装部署OpenStack主要有哪些方法?
2、安装部署OpenStack应该注意哪些地方?


查看本文需要了解基础:
1、安装部署OpenStack时,什么是角色、用户、服务

请参见:
Keystone总结:openstack中Keystone各种概念解析及其两种安装方式总结
2、安装部署以及使用OpenStack时常见错误总结

请参见 :

openstack常见13种错误总结

第一种
通过手动一步步安装OpenStack的组件,如Swift、Glance、Nova、Bashord、MySQL、Keystone等。这里本帖不予以讨论,具体详情请参见http://www.openstack.cn/p128.html

------------------------------------------------------------------------------------------------------------------------------------

第二种
使用Devstack脚本来安装,devstack 的官方网站: http://devstack.org/

1、更新系统:

apt-get update

2、安装open-ssl
   安装SSH远程服务主要目的是为了在宿主机(Win)上使用 SecureCRT 访问虚拟机,以便于操作管理、上传下载文件等。

$ sudo apt-get  install openssh-server

$ /etc/init.d/ssh restart

3 安装 git

apt-get install git

4 使用devstack 安装openstack
(1) cd /opt
(2) git clone git://github.com/openstack-dev/devstack.git
(3)创建一个localrc文件,切记localrc 必须在/devstack文件目录下,请根据需要修改此配置文件,将下列内容写入该文件中。

ADMIN_PASSWORD=nova     ----你登录dashbaord的admin的密码
MYSQL_PASSWORD=nova     -----mysql的root的密码
RABBIT_PASSWORD=nova  
SERVICE_PASSWORD=nova  
SERVICE_TOKEN=tokentoken  
FLAT_INTERFACE=br100     ----目的是为了建立虚拟网桥,实现虚拟网络
HOST_IP=192.168.111.111

(4)source localrc
(5) ./stack.sh   开始安装,需要几十分钟不等,具体看个人网络情况。
(6)这时可以把如下变量导入的环境变量:
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=nova
exportOS_AUTH_URL="http://localhost:5000/v2.0/"
export EC2_URL=$(keystone catalog --serviceec2 | awk '/ publicURL / { print $4 }')
export CREDS=$(keystoneec2-credentials-create)
export EC2_ACCESS_KEY=$(echo"$CREDS" | awk '/ access / { print $4 }')
export EC2_SECRET_KEY=$(echo"$CREDS" | awk '/ secret / { print $4 }')
这样在执行openstack的命令行工具时,会省去很多输入。

有一点值得注意的地方是,如果想使用现有的网络,比如安装 devstack 的这台服务器地址是 192.168.2.240,想让所有运行在上面的 instance 的地址为 192.168.2.241-192.168.2.247 的话,需要修改 stack.sh 里面的 TEST_FLOATING_RANGE,然后重新运行 stack.sh 脚本:
如图:
12121.png

                              
5、用openstack 创建一个vm
a. 先创建一个flavor , 之所以创建一个新的flavor,而不用已经存在的,是因为我想让vm 有256m 内存,default 的几个flavor 最小的mem size 也是512m
  
root@mystack:/opt/devstack# nova flavor-create xpp.test 6 256 0 1
+----+----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name     | Memory_MB | Disk | Ephemeral | Swap |VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 6 | xpp.test | 256       | 0    | 0        |      | 1     | 1.0         | True      | {}          |
+----+----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+

b.boot instance

root@mystack:/opt/devstack# nova boot --flavor 6  --image cirros-0.3.0-x86_64-uec xhuvm1
+-------------------------------------+--------------------------------------+
| Property                            | Value                                |
+-------------------------------------+--------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                               |
| OS-EXT-SRV-ATTR:host                | None                                 |
| OS-EXT-SRV-ATTR:hypervisor_hostname |None                                 |
| OS-EXT-SRV-ATTR:instance_name       | instance-00000001                    |
| OS-EXT-STS:power_state              | 0                                    |
| OS-EXT-STS:task_state               | scheduling                           |
| OS-EXT-STS:vm_state                 | building                             |
| accessIPv4                          |                                      |
| accessIPv6                          |                                      |
| adminPass                           | kfPJ4aYThBw6                         |
| config_drive                        |                                      |
| created                             |2012-12-31T13:45:32Z                 |
| flavor                              | xpp.test                             |
| hostId                              |                                      |
| id                                  |88013d9e-20b3-41d7-a699-f1752af91755 |
| image                               |cirros-0.3.0-x86_64-uec              |
| key_name                            | None                                 |
| metadata                            | {}                                   |
| name                                | xhuvm1                               |
| progress                            | 0                                    |
| security_groups                     | [{u'name':u'default'}]              |
| status                              | BUILD                                |
| tenant_id                           |42109310396440339051a0e7cb064bc9     |
| updated                             |2012-12-31T13:45:33Z                 |
| user_id                             |17150c9b069042dbbffc75ce02422874     |
+-------------------------------------+--------------------------------------+

c. check vm status

root@mystack:/opt/devstack# nova list
+--------------------------------------+--------+--------+------------------+
| ID                                   | Name   | Status | Networks         |
+--------------------------------------+--------+--------+------------------+
| 88013d9e-20b3-41d7-a699-f1752af91755 |xhuvm1 | ACTIVE | private=10.0.0.2 |
+--------------------------------------+--------+--------+------------------+


6 登陆 openstack dashbord , 看看我们刚才创建的 vmxhumv1 在不在

http://192.168.1.102/
admin/nova

7、登陆 MySQL

mysql -uroot -pnova


需要注意的地方

1、openstack的 vm 重启后, 所有的openstack sevice 不会重新启动, 需要手动runstack.sh, 但是这样,相当与重新初始化了环境,以前创建的instance 会不见了,数据库的数据也会刷新。由于是采用源码安装,没有开机启动脚本,所以启动服务,就需要手工启动,相关的服务,有7,8个。Dashbaord,是需要通过keystone进行身份验证,keystone服务没启动,是无法登陆Dashboard。最简单的方式,就是你再运行一次脚本,他就会把所有的服务重启。不过缺点就是所有的设置,数据都将清空。
国外有个人写了一个 restart openstak 的shell, 可以解决这个问题,详见:http://www.scalegrid.net/blog/?p=52其中要修改2行, 主要是新版本的 openstack 多了一个service 名字是nova-conductor,他的脚本太老,没有handle 这个case。
步骤:
(1)下载:wgethttp://www.scalegrid.net/blog/wp ... 6/restart_stack.txt
(2)重命名:mv ./restart_stack.txt ./restart_stack.sh
(3)赋予脚本可执行权限:chmod 775 ./restart_stack.sh
(4)执行脚本:./restart_stack.sh
注意:必须确保脚本放在devstack文件夹中,因为它依赖于devstack文件夹中的其他文件

2、重启service 步骤:
a. run screen -list ,  kill -9    杀死所有的 screen session
b. run restart_stack.sh
c. check all services

root@mystack:/opt/devstack# nova-manage service list
Binary           Host                                 Zone             Status     State Updated_At
nova-conductor   mystack                              nova             enabled    :-)  2012-12-31 14:01:27
nova-cert        mystack                              nova             enabled    :-)  2012-12-31 14:01:27
nova-compute     mystack                             nova             enabled    :-)  2012-12-31 14:01:27
nova-scheduler   mystack                              nova             enabled    :-)  2012-12-31 14:01:26
nova-consoleauth mystack                              nova             enabled   :-)   2012-12-31 14:01:27
nova-network     mystack                              nova             enabled    :-)  2012-12-31 14:01:26

3、 all services 的日志配置
a. 创建日志目录:mkdir -p/var/log/nova
b. 在/etc/nova/nova.conf 加上 “logdir=/var/log/nova”
c. 重启service

4、脚本的默认网络,是采用FlatDHCP,虚拟机获得的IP都是内网IP段,默认是10的网段。如果你希望公网可以访问,那么就需要通过 Floating IP 进行映射。
所谓Floating IP,其实就是你的公网IP地址,不过做试验,你可以吧192.168.1,认为是公网网段。这个就需要结合你的情况,一般把服务器的IP地址段,设置成公网的网段,这样进行Floating IP 进行映射,就可以直接访问。
比如:
root@cloud:/home/stack/devstack# vistack.sh
修改公网IP地址段,默认是采用172,我改成192.168.1的网段。
#FLOATING_RANGE=${FLOATING_RANGE:-172.24.4.224/28}
FLOATING_RANGE=${FLOATING_RANGE:-192.168.1.224/27}

5、安全组和无法ping和ssh虚拟机
当你创建虚拟机后,分配IP,你会发现虚拟机是无法ping通的,这是因为安全组,默认是禁止ICMP包。所以你需要设置安全组,打开22端口和允许icmp
http://docs.openstack.org/cactus/openstack-compute/admin/content/enabling-ping-and-ssh-on-vms.html

6、openstack需要在stack用户下配置和运行,因此stack.sh运行一开始,就会给系统创建名为stack的用户。这个用户的主目录在/opt/stack/,而不是一般的/home/stack。以后如果要用命令行配置openstack,一般都要进入stack用户身份。


------------------------------------------------------------------------------------------------------------------------------------


第三种
通过packstack安装部署OpenStack

1、安装packstack
yum install -yopenstack-packstack


2、使用packstack进行openstack的安装

(1)packstack --install-hosts=192.168.8.142  
(2)下一步需要输入你的root账户的密码


3、登陆dashboard,管理openstack

登陆http://your-ip/dashboard,即可管理openstack。这一步,如果使用的是vbox或者VMware Workstation虚拟机,则需要按照虚拟机上网以及主宿机互访整理这个帖子的方法进行相关的配置,这时候输入的不是访问外网的Nat网卡(eth0)的地址,而是host-only网卡(eth1)的地址.因为在vbox中宿主机与虚拟机的通信是通过host-only网卡来完成的。

(1)用户名与密码保存在root目录下的keystonerc_admin文件,使用cat命令进行查看:
cat /root/keystonerc_admin  
命令行:source /root/keystonerc_admin 可导入一些环境参数

(2)然后执行一些命令,比如:
keystoneuser-list
创建一个普通用户
keystone user-create --name tcommerce --pass PASSWORD

------------------------------------------------------------------------------------------------------------------------------------
   
第四种
通过alamo安装部署openstack

Rackspace 发布了Alamo是一套基于 OpenStack/KVM/Chef/Ubuntu 的私有云系统,可以免费在自己的服务器上安装和建立自己的私有云。
很方便,大大减少了之前按照Openstack官网部署Openstack的操作步骤和时间。

1、首先去http://www.rackspace.com/cloud/private填写自己的email地址,会接受到alamo ISO的下载链接(链接有效时间24小时)
2、用UltraISO制作alamo为U盘启动
3、设置服务器为U盘启动,进入界面之后会出现多个安装进度条
4、出现安装选项如下,根据部署使劲情况选择
  • controller
  • computer
  • All-in-one
5、设置IP/DNS/hostname(根据服务实际网卡配置)
6、设置fixed ip
7、dashboard登录用户admin密码
8、设置非admin用户,此用户也具有执行Openstack组件的权限
9、设置os登录用户信息
10、接下来会自动安装你选择的部署,会出现很多加载进度条。
12、用配置的dashboard用户访问ip链接,会看到Openstack经典的默认安装界面。
13、登录系统可以查看部署的加载过程,日志log位置在/var/log/post-install.log会看到什么时候连接网络加载了什么,配置的基本信息等。












没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条