|
|
楼主 |
发表于 2017-6-3 15:24:35
|
显示全部楼层
Havana于2013年10月份发布,稳定版本为2013.2。相信很多Openstack爱好者和开发测试人员已经开始使用了。作为IaaS架构平台,Openstack面向的是集群主机虚拟化和资源的半自动化调配。但是作为测试和开发使用,尤其是在有限成本控制下,多主机测试在资金和空间占用上耗费较多。所以我们寻求在单主机下实现Openstack的运行。% I9 M4 f% p. M/ [0 ^: H
本文面向的读者:5 Z" t2 u, b V/ L4 ~
- 具备基本的Openstack知识(逻辑架构和组成部分)- I! q6 n/ n! U9 [- @6 o
- 熟悉基本的Linux操作和配置。本文使用的是Ubuntu12.04 LTS Server版,这也是Openstack官方测试所选择的Linux发行版。3 f. a% |9 u7 A9 ~3 V
3 B4 ~, z( H! J$ ~
既然是单主机系统,那就对主机的配置稍有要求。我用的是Dell的PC服务器,4核,4G内存,500G硬盘,单网卡。这也应该算是最低配置了。说起网卡,Havana官方文档建议的是采用双网段(可以区分内网管理和外网服务),这也就要求我们的服务器具有两个物理端口。因为我们是测试环境,无需区分网络,所以单网卡可以满足要求,只是需要检查单网段下Havana是否工作正常。$ U0 g: L- Z; p, ^. U$ F6 l1 H
& T; [# q L1 k7 `0 {- @) A
因为是单机安装,存储和网络相对都简单化了,所以这里我们暂时不会涉及对象存储(Object Storage),块存储(Block Storage)和网络,以后我会讲如何仿真。& b/ f0 D, d( z9 U
2 L; A- V: h' M1 Z7 z- R4 |安装会涉及到如下几部分。( j0 ]5 L! w+ y* o6 t: E! m( y1 a
操作系统的基本配置. E# Y5 D6 s% F: ] T: W- g- o
配置认证服务(Identity Service)
: g- G6 m5 }: v2 w e# t: g& N, T" ?* U配置镜像服务(Image Service)
% ]1 K& u4 g y# b/ h配置云计算服务(Compute Services)
# N s1 q& a9 }增加用户面板(Dashboard): [" D; d, H" @; x# T; x$ \. {
注:本文所有的操作命令都是在Ubuntu 12.04 LTS Server版的root用户下执行,所以请先进入root用户模式(sudo -i)以方便执行。8 t$ L- W$ k1 G
1. 操作系统的基本配置
& `9 `) m4 G! T7 M. ~# r' X, O$ Q( ]5 |$ d
1.1 网络配置% K! M" f$ h' d8 K5 j5 i) ~+ f
: L- \# T* `' m由于我们只有单网卡,OS的网络配置在你安装系统的时候就已经完成了,所以在此无需配置。针对Openstack的内部网段,我们可以通过虚拟桥接方式实现。你可以手工配置,当然Openstack安装的时候也会自动配置,这里我们先略过不谈。7 c" l: T8 R; i0 {& n
1.2 NTP配置
: b0 J5 A7 N6 M; {' J6 d6 [! @$ W- y
4 Q: {/ v8 S# w3 h9 q6 }9 W因为是单机安装,无需配置NTP Server。
9 _2 X" f" O6 q$ n1.3 安装MySql数据库
* D) H7 n% N0 w: P0 a
' x2 f5 {; Z4 h" ]5 i5 B6 Z7 wOpenstack服务需要数据库来存储信息。我们就拿常用的MySql来举例。需要安装客户端,数据库和Python库。
) a# w+ B+ f" V# apt-get install python-mysqldb mysql-server
& K& }9 V; q8 K y* K/ I安装时,会需要你设置root用户密码。Openstack要求MySql没有匿名用户权限,所以你需要删除匿名用户和无关的数据库。下面这个命令可以实现。
) x9 x) w$ M# U" L$ C v# mysql_secure_installation: H1 U: q/ [* c$ Y/ o
运行以后,会有一些选项,全选yes就ok。
% f/ M G) {1 t$ m% h0 W5 E1.4 准备Openstack包
' }6 T5 p& F- E- f1 }
- D7 k- U0 |1 @在Ubuntu下,需要安装一些针对Havana的最新的包。
4 ~1 u2 \, R; s. y/ W1 l# apt-get install python-software-properties" Y j8 O4 e+ \( Z$ o
# add-apt-repository cloud-archive:havana: P% n( f, j3 r% u
这些包安装完后,你需要升级一下系统。& f. Z4 `& K, ~
# apt-get update && apt-get dist-upgrade9 W4 N9 R" d# t6 ?
1.5 安装消息队列服务3 _& W8 @ j/ O6 R: Q0 Z/ k5 L
; w0 |' m$ v4 A5 A0 w
Openstack默认选用了RabbitMQ。也支持Qpid和ZeroMQ。
) J& f' w4 Z) ^4 F) h) U# apt-get install rabbitmq-server
1 z' k9 B( g5 z2 o5 s2. 配置认证服务(Identity Service)
. N/ D1 U; O7 L0 b T v
1 r* N8 L. q) L0 C4 N1 l5 i2.1 安装认证服务(Keystone)
# S" r% _% P7 ]8 a. W9 O
! Q1 k( }; |0 f/ y' s, g# {7 E$ X' T# apt-get install keystone python-keystone python-keystoneclient
1 G2 z- ]( s4 _% q- M9 W9 w我们在mysql里为认证服务创建一个数据库,名字就叫做keystone,密码也是keystone* y: [5 Q! m# K
# mysql -u root -p7 d! E# q' }; u
mysql> CREATE DATABASE keystone;
9 z: F6 }+ N0 V$ n3 X9 h' wmysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';
& V& C: V& z, K9 Smysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';' ~$ x+ e. y0 j6 _# R+ L
修改Keystone的配置文件/etc/keystone/keystone.conf,使其指向我们刚刚创建的数据库。修改[sql]部分如下:" `. z* G0 d) S( v
[sql]9 L% n5 I6 m( p
# The SQLAlchemy connection string used to connect to the database* f+ I# b- H: Y6 \
connection = mysql://keystone:keystone@localhost/keystone" C) ?) w& D* k1 k! O6 N! N
接下来创建keystone需要的表格。0 B" K$ A p5 a
# keystone-manage db_sync
1 ]2 V. O4 M+ M/ r生成admin的token。) z5 k! n. K+ j. D
# openssl rand -hex 10
. i8 x. q( S# p, H! O) Q还是编辑/etc/keystone/keystone.conf,把上面生成的token替换下面的ADMIN_TOKEN# i) o4 l6 U. R! _
[DEFAULT]
' D" a0 C9 j& Y: }9 @" @6 J8 w# A "shared secret" between keystone and other openstack services' P0 s! _! | v8 d: E' X: r2 k
admin_token = ADMIN_TOKEN
# R6 M2 X- S' V/ b+ Y& T8 y2 @重启认证服务
% Y9 O. R" ^$ L# ]# service keystone restart7 L& ~2 F4 a# J8 `+ O# L1 m
1 x6 V! B+ m* X7 ]2.2 定义用户(Users)、租户(Tenants)和角色(Roles)
# X5 S6 G# S! d. n8 }
( P7 L5 J. N) k2 s' `* z在使用认证服务的时候,你需要一对用户名和密码。目前我们还没有创建任何用户,但我们可以使用之前创建的管理token。需要做的就是把这个token传给keystone命令(参数为--token)。为了避免每次使用keystone命令都加一些相同的参数,我们可以把这些参数值放到环境变量里。$ @+ E# A9 W2 A6 b
# export OS_SERVICE_TOKEN=ADMIN_TOKEN
" }( K- R* e; s7 {+ u- ~# export OS_SERVICE_ENDPOINT=http://127.0.0.1:35357/v2.0
" w3 L: S a% f, @1 a其中endpoint指明认证服务在哪运行。下面创建租户。& q! M( e" z+ w7 L
# keystone tenant-create --name=admin --description="Admin Tenant"# C) Z# L# q% F j; A( G) E
# keystone tenant-create --name=service --description="Service Tenant"
- ~, m( i! r. ^ t L+ i. u
# Y) D9 \6 H- y G; F创建管理用户。用户密码ADMIN_PASS需要自己指定。0 N( M) H8 W3 v5 I0 t2 S
# keystone user-create --name=admin --pass=ADMIN_PASS --email=admin@example.com; E" R2 w, [- Q4 Z, Q3 W
创建角色
% @! H0 p6 i6 L# keystone role-create --name=admin: W" V' D" a" v% P
为用户添加角色和租户属性。
* F5 K* e! }# y* Z& D5 {7 n2 M# keystone user-role-add --user=admin --tenant=admin --role=admin
8 h. R3 V6 Y1 h+ W* f2.3 定义服务和API接入点(endpoints)
* d+ w$ B4 p) w5 z
0 a# {4 S6 s$ K( D& o* J认证服务不光管理着用户属性,还登记所有Openstack服务,包括它自己本身。所以我们注册一个认证服务。* N- P4 _# d5 s
# keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"4 y" y6 p+ T. u4 W
创建成功后会生成一个id,这个id要用在下面这个命令上,以便创建API接入点。
8 f9 ?! Q2 c; S& S# keystone endpoint-create --service-id=the_service_id_above --publicurl=http://127.0.0.1:5000/v2.0 \
i; M% J! d) m+ S+ G4 C! u--internalurl=http://127.0.0.1:5000/v2.0 --adminurl=http://127.0.0.1:35357/v2.04 N, z/ ^) a& B& _5 J0 d. B2 v, V
同样的,当你安装其他Openstack服务时,像Glance,Nova,都要运行类似上面的命令。4 Y( x* K6 }+ j: N
2.4 验证认证服务是否安装成功
8 _/ s0 d, c: X* I, O3 J
5 b. Q1 ~0 b9 h/ v- Y1 _先把环境变量取消。7 r& m: \! Y6 Q5 I' v1 R
# unset OS_SERVICE_TOKEN OS_SERVICE_ENDPOINT
& h; B3 o4 a# b5 u# x$ n制作一个文件,文件名自取,例如ksrc,内容如下,然后source一下它。
+ E2 y# P7 b2 c6 \$ bexport OS_USERNAME=admin5 O( n9 q5 _7 ^% F }1 p8 X
export OS_PASSWORD=ADMIN_PASS, P% c3 L$ _8 ~) u( c
export OS_TENANT_NAME=admin
/ U# ?, V# P+ ] Q7 eexport OS_AUTH_URL=http://127.0.0.1:35357/v2.0* u o! R8 M- a3 F
# I/ V2 q" h0 S0 M! G0 C. D# source ksrc
3 ]6 [6 h& `# F+ b! |2 E% E* h& M" T/ v
现在你可以尝试获得一下token,如果成功,说明认证服务工作正常。7 @' ^, |/ b# {# [
$ keystone token-get" T: w+ v. V6 W+ d1 U% N
X; S+ j* X4 m& C- r! L, J- s3. 配置镜像服务 Q9 s6 r9 t6 ]8 L- Q
; I" k( F4 T% |, S很多命令与配置认证服务一样,我就不做过多解释了。
' N+ y) I8 L; Q6 R& ?: P3.1 安装镜像服务(Glance)' y9 h0 e6 f5 _$ `! z* ?
x% P2 X: R" Z; E" Y! _
安装glance包。% r" d% u; v" i8 a3 O* _
# apt-get install glance6 Q7 A0 E! R# o" R. l, y0 ?4 W5 f
删除/var/lib/glance/glance.sqlite,防止错误使用sqlite数据库。1 Q0 v: N% [8 b4 U- u2 {
为镜像服务创建数据库,名字叫做glance,密码也是glance
% z0 X9 X0 i" ?$ D" A8 \# mysql -u root -p) w6 E3 q. u! H' w+ m; N4 f. W6 F7 I6 s/ `
mysql> CREATE DATABASE glance;8 x& M& t/ E* `6 f4 p. B/ ]: L
mysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'glance';
' G+ j, F- T9 W2 t ]; p; rmysql> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'glance';
% i/ M) ~: L( e' q生成数据表。
( k2 Z7 o" {# i4 x$ C! ~% C# glance-manage db_sync' S! W B& `9 V5 x: K) ~2 k7 E' d
& R3 k3 h j+ E% p0 G( hkeystone里创建glance用户,密码(GLANCE_PASS)自己指定
& J1 f$ S! b3 d9 \* P$ j6 H/ Z4 O# keystone user-create --name=glance --pass=GLANCE_PASS--email=glance@example.com
* q3 [7 ^# W* p* Q* a! I5 I3 a1 _# keystone user-role-add --user=glance --tenant=service --role=admin
) O6 ^3 I' g# a# j' z修改glance配置文件/etc/glance/glance-api.conf和glance-registry.conf,找到如下部分并修改。
3 B* o/ B2 n! |9 W7 Q. J/ ?$ b[keystone_authtoken]
7 q t" N, B" oauth_host = 127.0.0.1
0 R& G# W _8 L- F6 oauth_port = 35357
. C3 {/ C: I; K. n$ bauth_protocol = http
$ U! T% e4 i9 a2 I2 eadmin_tenant_name = service- m# ^* A0 J) M$ X) s; Z* W
admin_user = glance0 m: w/ L8 j8 c6 o6 r; d# j5 G. K% f) q
admin_password = GLANCE_PASS' j( E6 M0 W! a2 M
在认证服务里注册镜像服务并创建API接入点。# E3 f* M# j: K" l
# keystone service-create --name=glance --type=image --description="Glance Image Service"' u9 f& r/ w; L8 Z4 ]$ j
# keystone endpoint-create \. ~" w& b+ E0 e3 P# R$ p0 O- P& c) P
--service-id=the_service_id_above \, o. y Q( J0 ^* d+ H
--publicurl=http://127.0.0.1:9292 \, g1 L) s( }. x
--internalurl=http://127.0.0.1:9292 \# a! A$ D& b: P; i5 p- @
--adminurl=http://127.0.0.1:92928 f! f q$ R: N$ ]- c1 U5 c# |
重启服务。
% O5 Y: ]+ z1 [& u4 J1 _2 s1 n' ^2 [# service glance-registry restart# T+ m3 t. X- ^4 ?6 p9 F5 D8 _
# service glance-api restart
) v( z; a8 }) u3 ^& g3 @5 N/ [4 h3 e5 M z3 w( T
3.2 验证镜像服务是否安装成功( H0 _+ n! k+ z
: }8 M! M. A4 Q" S o
准备好一个镜像文件,这个镜像文件可以自己制作,也可以从网上下载。我制作了一个Ubuntu12.04 LTS Server的镜像ubuntu_1204_server.qcow2。至于怎么制作镜像,我们另文讨论。( W* J. M( o/ ]$ q
创建一个镜像。0 x2 l9 [0 A: A/ B* l
# glance image-create --name="Ubuntu 12.04 LTS Server" --disk-format=qcow2 \; k; @9 N" o! g5 E9 N
--container-format=bare --is-public=true < ubuntu_1204_server.qcow2
; m5 J) Y0 y8 ~# R9 X. H- `3 @7 P8 q我的镜像如下所示。
' }8 q/ l8 J9 |# glance image-list
4 }1 }' Q% H: L O+ E) F3 `+--------------------------------------+-------------------------+-------------+------------------+------------+--------+2 y- }# I! H0 N5 C9 ^
| ID | Name | Disk Format | Container Format | Size | Status |1 T+ j$ I2 n; V9 E( J+ o
+--------------------------------------+-------------------------+-------------+------------------+------------+--------+
8 N- V2 D* \+ f7 P# [, E4 p| dbe3ba9c-c22b-41c9-bac5-dd0e6964c1ce | Ubuntu 12.04 LTS Server | qcow2 | bare | 1502347264 | active |
5 E3 m" \! |" a$ N2 y6 q) N+--------------------------------------+-------------------------+-------------+------------------+------------+--------+
. x: `) q3 \0 K4 n9 W4. 配置云计算服务) t1 E2 S2 q* w* ^
. o- {( `* e% b) Y( f" E, O# _) X8 u! c4.1 安装nova控制服务
9 Z" z0 I4 }. _; i+ F% D) m6 I& e
$ ~/ B# i4 F. T先安装所需要的包
, f/ R& X( q( g# apt-get install nova-novncproxy novnc nova-api nova-ajax-console-proxy nova-cert nova-conductor nova-consoleauth nova-doc nova-scheduler python-novaclient
9 c: |/ v: }5 @. L, l为nova创建数据库,名字叫做nova,密码也是nova5 O5 |& l) x2 I: q. n
# mysql -u root -p3 _/ ~3 l* }3 \. J7 x2 Y
mysql> CREATE DATABASE nova;
5 l/ l; d$ W; A; E% omysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'nova';
3 ` `( m% E6 ?) P( O8 }" Nmysql> GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'nova';
/ ?3 `2 X& d) f- w, ?编辑nova配置文件/etc/nova/nova.conf,使其指向自己的数据库。0 \% D' @( M2 A6 L; c; }9 t
[database]# y. y+ {3 o5 _! ?
# The SQLAlchemy connection string used to connect to the database1 _* W6 l2 P/ U) t- K! ^9 l
sql_connection = mysql://nova:nova@localhost/nova+ K3 e0 s: ?' L; B( q" }& N2 i
还有一些其他需要在配置文件nova.conf里修改或添加的属性,如下所示" T& |- D8 a% W. v
my_ip=127.0.0.1
' ?) M/ C, D. ?' R& h/ Lvncserver_listen=0.0.0.0
8 e7 W6 X1 H# h; mvncserver_proxyclient_address=127.0.0.1
. n4 G" u$ Z: E% U T, I% vauth_strategy=keystone/ y _1 K) r4 K$ y; L7 b' i
rpc_backend=nova.rpc.impl_kombu5 P5 @# V: k+ n+ s$ t; h+ P
rabbit_host=127.0.0.1
- h6 a6 e ^+ p; [) j# s# Jglance_host=127.0.0.1, |1 v- Q+ @4 K
同时修改/etc/nova/api-paste.ini如下。9 A' o2 O0 o- Y N. D3 P' _
[filter:authtoken]
; B( s3 P+ l' @paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory3 y3 Z% Z6 K! h9 `5 }
auth_host = 127.0.0.1
% A/ k) Q% l( A4 ~. F! P: @4 Dauth_port = 35357- N+ V$ G- U; d2 D: s( E* O4 \, P
auth_protocol = http$ `, k, p0 l, U3 K9 ^5 K
admin_tenant_name=service& C% Z$ F7 t! y+ \) X1 R6 p
admin_user=nova
4 P/ a+ D, Y3 Yadmin_password=nova
$ `9 \6 E7 h. G' t生成数据表。
, n: X3 C1 d6 V; S. }+ I: z# nova-manage db sync" U. K9 ?6 W+ \6 x
接下来就是比较熟悉的命令了,如果命令返回错误,可以重启一下nova服务。
" d [* g. n; n9 m% ^# h6 V5 N2 h' L# keystone user-create --name=nova --pass=NOVA_PASS --email=nova@example.com
- U [0 u q! H! @, h" R _# |5 N# keystone user-role-add --user=nova --tenant=service --role=admin
! z o0 Y. ?- L7 L: L) f5 g$ w" z. U# keystone service-create --name=nova --type=compute --description="Nova Compute Service"
) C, H* Q; P W* r0 E0 F# keystone service-create --name=nova --type=compute --description="Nova Compute Service" --adminurl=http://127.0.0.1:8774/v2/%\(tenant_id\)s! Q/ b6 \5 [! @& }/ C; ~
然后重启一下服务
0 V" N1 j3 h9 z+ k/ C: @" [( r# service nova-api restart; ]' ~4 M2 N6 s" }
# service nova-cert restart, X3 b2 `6 X0 F f' d
# service nova-consoleauth restart' U- I0 n: `8 F5 ~" R2 n
# service nova-scheduler restart
* N U! n+ ?; D# service nova-conductor restart( n' s- E1 }; E7 x+ E
# service nova-novncproxy restart7 a+ ]1 m! }9 g" P3 b
下面可以检查一下nova是否配置正确,可以用如下命令。: A+ r. I! ]& Z" o7 f
# nova image-list
; N3 _8 c" ]/ U0 P) h8 O+--------------------------------------+-------------------------+--------+--------+5 l% C$ ]/ y1 M d
| ID | Name | Status | Server |
& c4 a/ ~2 O) ^1 H& z8 M; L! a+--------------------------------------+-------------------------+--------+--------+$ ?$ z L- r# z- G& _2 g. J0 _5 W
| dbe3ba9c-c22b-41c9-bac5-dd0e6964c1ce | Ubuntu 12.04 LTS Server | ACTIVE | |" t/ p' L" q+ s3 |3 d9 b1 x- {
+--------------------------------------+-------------------------+--------+--------+
" @0 m" @4 `3 G c2 v4.2 安装一个nova云计算节点
* h3 H: g0 @* \8 {
, p9 t9 h& ?8 G1 f% Y9 I% D" g先下载所需要的包。3 k9 e9 B0 {* D1 u- i
# apt-get install nova-compute-kvm python-novaclient python-guestfs$ q( H6 H+ x/ `8 f: Z; ^
删除默认安装的SQLite数据库
! N0 G `$ g6 r& {% t: m# rm /var/lib/nova/nova.sqlite# a9 I7 x' B7 Z. s
重启计算服务, Y6 N+ L+ x9 h- I9 c; L
# service nova-compute restart
+ A' C" K% m# J% Y6 G1 Y4.3 激活内部网络
1 L' D" r7 s2 }; C2 n" E0 ~
# D' f) j* Y9 ?这应该算是很关键的一步了。我们选用FlatDHCPManager。以后我会用一个专题讲网络。
0 c9 a! J) G9 F/ |- w* ^下载网络包。
* [. S- C: s; Q0 c$ h# apt-get install nova-network
* e$ Z9 J' U+ K- _/ ~ |1 R& V% E0 k; _- v8 Z, C7 _
编辑配置文件/etc/nova/nova.conf
' W$ O& |. O X1 s3 w[DEFAULT]! E6 g2 }) U2 x& M
network_manager=nova.network.manager.FlatDHCPManager
2 r7 G7 {2 G7 j& pfixed_range=192.168.122.0/24
: m ~ H7 p# a4 B7 Lflat_network_dhcp_start=192.168.122.2( z/ L- ^6 ^) u% ~* q. p' ?
flat_network_bridge=virbr0; m* x* O$ D- }' E$ V
重启网络服务。
; q4 }3 t8 C0 }; H4 |' H0 M# service nova-network restart
, W( y" g9 B4 a2 S$ K6 `/ i6 F( L7 l; r) J9 o+ ?2 |. S" `
创建自己的虚拟网络。
4 j4 q$ O/ E& T5 j4 E" G. A* K# nova network-create vmnet --bridge-interface=virbr0) j7 Q% K' |3 u+ `
4.4 启动一个镜像
% }, d+ e+ U+ H' o
. t; i9 t6 k5 X8 i生成密钥/ k: B4 b8 J* }$ G% m
$ ssh-keygen
4 B* S( h4 Q6 V2 d! P6 y2 K, z$ cd .ssh$ F" [" }; I5 m* [1 Q
$ nova keypair-add --pub_key id_rsa.pub mykey
( L7 y) z# h4 G! c4 e7 K) q如果你需要自己的镜像实例能被ping通和ssh,需要放开如下权限' O' m. d7 j8 R; K! z0 D7 k8 Q
# nova secgroup-add-rule defaulttcp 22 22 0.0.0.0/08 F8 k) h/ j, `7 {$ t5 r- U W( |
# nova secgroup-add-rule defaulticmp -1 -1 0.0.0.0/05 ?) w6 h& R- k3 H
& R: y; K6 V6 Y& w: T% b启动实例
( z* K5 W9 x* D7 e$ nova boot --flavor <flavor-id> --key_name mykey --image <image-id> --security_group default Ubuntu
: X7 {0 w1 L3 H# _以下是我的例子。4 `7 D+ R* z5 E8 k2 b5 R
# nova flavor-list/ i* I4 D# I: L2 r s7 z2 n
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+9 I% C* y; a) l9 `# n2 _7 Q
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
; f1 o9 s# e( s6 @* P i+ W: L2 a s+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
) k" [1 H* L% v$ X| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True |! _* Z. n5 W; A& a8 ^
| 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True |' v& ?' U; [/ W) ] y. O' U; j4 n
| 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True |
8 l1 D, c1 W6 y( ^+ S I: g| 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True |
. K! r6 ?8 k( I/ c/ J3 V# a* q0 V| 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True |
$ p( V) I1 J! x. O+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+, h$ G$ w# |& D3 v- U
+ Z* X( L5 g. X9 p+ s
# nova image-list. H. ~7 G; v+ `
+--------------------------------------+-------------------------+--------+--------+1 @( C2 K, V& l5 o4 D% O
| ID | Name | Status | Server |1 I6 e/ Z: I9 I( b0 v. V
+--------------------------------------+-------------------------+--------+--------++ ?5 q: s9 \2 o$ ?$ y! B& C
| dbe3ba9c-c22b-41c9-bac5-dd0e6964c1ce | Ubuntu 12.04 LTS Server | ACTIVE | |% p: W5 Z4 z1 i3 ]: V- d" K [
+--------------------------------------+-------------------------+--------+--------+ r; a/ I2 n7 a- r. ~1 i8 B9 ?4 A( r
! x' U$ t1 h% o5 V
# nova list5 r+ Z, x U& r8 m
+--------------------------------------+--------+--------+------------+-------------+---------------------+
$ C5 z5 o6 p: R5 A| ID | Name | Status | Task State | Power State | Networks |
( T* L8 ^3 o) ]: t) h+--------------------------------------+--------+--------+------------+-------------+---------------------+4 n2 n* J; C, F) F# T
| eff82154-bd75-40a7-bc83-60ba0f5b2ac4 | ubuntu | ACTIVE | None | Running | vmnet=192.168.122.2 |. z% i( N. U W
+--------------------------------------+--------+--------+------------+-------------+---------------------+
9 Z9 O+ ^3 K4 k+ e6 @, z
) ~2 b9 M; ~& h' V5. 增加用户面板3 A# {) _8 c) G, E. R5 J' F- v
2 X, I( C% b3 R3 U
这个非常简单,安装完以后就可以访问了。, ^) D1 U* r( ^, {* ^
# apt-get install memcached libapache2-mod-wsgi openstack-dashboard
3 Y5 N/ T; `5 r: @$ m接着访问http://<your-host-id>/horizon,是不是很简单。开始你的openstack之旅吧。
) d6 C, Z# Z9 b+ w( Y | 0 I7 R$ a. V% u$ V! t5 l+ N/ i
: ~, }1 F, p) E( ?( f% V4 {3 `6 F: c# `
3 r7 }8 a& B9 | c+ S# S" ~# }* {/ `$ F
' E4 i, S6 A& t7 n0 ^7 s! F# R0 G | ! g0 {# |( T( U! k/ F( F6 n
/ }; i3 U7 v# W% k1 Y
| 6 e& a- W9 G. R5 c
|
|