`
8366
  • 浏览: 797800 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

使用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.
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics