还是简单才最好 发表于 2016-1-9 04:00:19

使用devstack 安装openstack

  这篇文章写给初学者,如何buid 一个openstack 的环境,然后学习openstack,使用devstack 来安装openstack 是最简易快捷的方式了.
  
  devstack 的官方网站:
  http://devstack.org/
  
  
  下面开始我们的openstack 体验之旅:
  
  1. 准备 ubuntu-12.04 OS:
  
  我自己的desktop 上安装了 virtual box, 就用它虚拟一个 VM吧
  a. 下载 ubuntu-12.04.1-alternate-amd64.iso http://releases.ubuntu.com/12.04/
  b. 安装 ubuntu OS, 很简单的 就不赘述了
  
  
  2. 设置 root 口令:
  
  
  要先打开终端, 执行:sudo passwd -u root    # 来启用我们的root账户,如果你后悔了可以执行 sudo passwd -l root   来重新lock root用户。
  然后给root创建一个密码:sudo passwd root    #看准提示进行输入,root的密码最好和其他用户的密码不同,不然会遇到一些麻烦。
  现在root用户也不被禁用了,也有密码了,那么如何使用root进行登录呢?
  执行如下命令:echo "greeter-show-manual-login=true” >> /etc/lightdm/lightdm.conf     #这样是让lightdm可以手动输入root用户进行登录。
  执行完毕后重启,登录时点击lightdm下的登录按钮,输入root和密码即可使用root登录
  
  
  3. 配置IP:
  
  我家里的网络是 无线路由+猫, 我自己机器的私网地址 是192.168.1.101, 在虚拟机中 配置好IP 为 192.168.1.102
  vim /etc/network/interfaces
  

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
post-up ifconfig dummy0 0.0.0.0
address 192.168.1.102
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
dns-search stackops.org
  
  重启网络 : /etc/init.d/networking restart
  
  4. 配置DNS:
  
  配置在这个地方 restart vm 也不失效
  
  vi /etc/resolvconf/resolv.conf.d/base
  

nameserver 192.168.1.1
  
  
  5. 更新 OS:
  
  apt-get update
  
  6. 安装open-ssl:
  安装这个东东主要的为了通过desktop 使用 SecureCRT 访问 vm
  

$ sudo aptitude install openssh-server

 

$ /etc/init.d/ssh restart

 

7. 安装 git

 

apt-get install git
  
  8. 使用devstack 安装openstack
  
  

   a.  cd /opt

   b.  git clone git://github.com/openstack-dev/devstack.git

   c.  create a file named localrc, apend followings to this file

 

ADMIN_PASSWORD=nova
MYSQL_PASSWORD=nova
RABBIT_PASSWORD=nova
SERVICE_PASSWORD=nova
SERVICE_TOKEN=tokentoken
FLAT_INTERFACE=br100
  

    d. source localrc

    e. ./stack.sh   开始按住了, 需要20+多分钟

localrc 必须在 /home/devstack/devstack/下

9. 用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      | {}          |
+----+----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
root@mystack:/opt/devstack#

 

 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     |
+-------------------------------------+--------------------------------------+
root@mystack:/opt/devstack#

 

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 |
+--------------------------------------+--------+--------+------------------+
root@mystack:/opt/devstack#

 

 

10. 登陆 openstack dashbord , 看看我们刚才创建的 vm(xhumv1) 在不在

 

http://192.168.1.102/

admin/nova

 

10. 登陆 MySQL

 

 mysql -uroot -pnova

 

 

备忘:

 

1.  安装 openstack的 vm 重启后, 所有的openstack sevice 不会重新启动, 需要手动run stack.sh, 但是这样,相当与重新初始化了环境,以前创建的instance 会不见了,数据库的数据也会刷新

 

2.  国外有个哥们写了一个 restart openstak 的shell, 可以解决这个问题, 详见:

http://www.scalegrid.net/blog/?p=52

 

我休改了2行, 主要是新版本的 openstack 多了一个service 名字是 nova-conductor, 他的脚本太老,没有handle 这个case.

 

3. 重启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

 

4.  all services 的日志配置

    a. 创建日志目录:mkdir -p /var/log/nova

    b. 在/etc/nova/nova.conf 加上 “ logdir=/var/log/nova”

    c. 重启service

 

遗留的问题:

 

run restart_stack.sh重启了 service 以后, dashboard 不能登陆, 不过CLI 都能工作,其实我基本也不用dashboard.
 
页: [1]
查看完整版本: 使用devstack 安装openstack