找回密码
 注册
查看: 4777|回复: 0

Ubuntu 14.04 LTS 安装 Juno 版 OpenStack Keystone

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2016-9-7 09:58:53 | 显示全部楼层 |阅读模式
 本文介绍如何在Ubuntu 14.04 LTS 上安装Juno版的Keystone, 我们采用的是手动安装的方式, 同时仅针对OpenStack的身份与访问管理系统Keystone. 事实上OpenStack不同服务之间提供了非常高的一致性, 对Keystone安装的把握能够帮助理解如何部署OpenStack.
  g7 ^1 q9 d* F: J$ [* h; D  ~6 P+ ?' E
  本文分别介绍了利用操作系统的包管理机制和利用源代码安装. 源码安装时还可以让Keystone运行在一个独立的虚拟环境中. 本文对应的系统环境是已经安装了Python 2.7.x的Ubuntu.
6 }9 s, {* Y$ P0 c
8 m1 T. I  e: @8 F" k7 o
: G$ g6 w' m4 ~) a1 F$ T& G& y
7 [9 e  ~0 }5 Y3 U身份数据库
* ?7 D) ~0 N' U' P8 H+ {
# k7 T! l& a( k: b' Q2 U5 g  Keystone的身份数据库可以使用SqLite和MySQL等存储后端, 如果选择特定的数据库, 应该在使用Keystone前安装这些目标数据库, 并为Keystone专门建表建库. 这里以使用MySQL为例.
* u( `% X+ U2 _/ k9 F9 O" t- v
. J4 O: }( Q' d0 E; y2 r  安装MySQL, 过程中会要求设置根用户口令.* q3 N1 X/ g- S9 p: p7 c* K; a

/ u$ S; ^. R" A. P( M$ apt-get install mysql-server python-mysqldb
: h3 j4 F4 U- i$ I+ j6 i- T
. S5 v$ ?/ t) f1 i* l3 q) z3 b/ E5 }% O( G/ o' {
  为Keystone创建用户和数据库.- n( Z! X) C8 N

6 f  i" y/ J1 p( b$ mysql -uroot -p/ h# |, n: a! j7 d+ {5 C. v/ p
$ RootPass: B% A5 g: g5 E) _, |5 X- l) c
> create database keystone;
4 A- o/ W, [" V9 e# V: I4 I: {" @) j> grant all on keystone.* to 'keystone'@'localhost' identified by 'KeystonePass';& R2 L- ]; Q& h9 ], H2 `
> quit- G% K9 G9 A7 m2 p3 K
  如果采用SqLite作为存储后端, 只需要在后续配置Keystone时设置驱动和存储文件即可.2 m, \; B3 T7 j9 u  J( ]$ ~, [
! R6 j0 p1 b) u! _: Z$ n% D' Q; N: u+ N

4 m/ O2 o3 N3 m" B5 p+ K- W+ z. u一. 包安装Keystone
' X* h2 E5 u. R. d% q- j% \4 b. \3 k+ s1 i, I0 z; M: Y
   OpenStack俨然已经成为Ubuntu, RedHat等系统厂商的宠儿, 这些系统提供商对这个项目的支持方便了用户的部署, 利用Ubuntu的包管理工具, 我们可以非常容易地部署OpenStack的任意项目. 由于包安装的方式极为简便, 我们需要确保的就是在Ubuntu的云存档种获得我们需要版本的OpenStack组件.
* S9 [4 ^/ M+ q' c/ L* s$ K  ]( g/ t! `9 l9 R; p3 z& H
  添加 Juno 版 OpenStack的存档库(Icehouse 等版本的操作类似):1 X) w9 c$ Q% p+ i' T
  G3 ~8 ]5 ?4 T8 Z( f2 A
复制代码" v1 ~) S/ n/ C
$ sudo add-apt-repository cloud-archive:juno
" S; p1 f% ]/ B0 r. t0 @
, K) g8 o  O9 @# t7 T/ dUbuntu Cloud Archive for OpenStack Juno4 L3 A: ]5 y( I1 H
More info: https://wiki.ubuntu.com/ServerTeam/CloudArchive2 n. f9 c; _7 D* K4 m, m
Press [ENTER] to continue or ctrl-c to cancel adding it+ {! h% n, K6 f. X
...
) G& P( u; v2 y) \: ^复制代码
: L; F$ m) }# j* c0 g
$ W3 q6 z# w/ \/ D" G  {
9 ?, Z7 b/ f0 V' ~% s2 Q  接着更新安装包列表:
# }. _5 P2 n2 h: t
4 Y$ T; _6 t: a* y$ sudo apt-get update$ o% x: S# v  Z

9 H& O  q$ A1 d4 \& h3 F& k. V6 W" U: ^4 [* [* p2 |  U4 r" M3 E! ?
  事实上此时已经可以安装Juno 版 OpenStack的任意组件了:
$ E& R4 g9 Y* J6 A7 A" A1 A7 B* z/ ^6 y. \# I
$ sudo apt-get install keystone4 t3 E* C3 `# l' r* E* F. C; [) ]
1 S3 Z2 I! d) R( e$ a9 o% t
1 V# H8 @, Q. [
二. 源码安装Keystone& |7 L  ~$ r( n( _! X( ]+ q% C
& u% Q* c; F# _4 n
  安装git,用来下载源码:! i4 a2 a3 M1 Q- I9 q/ T
0 s" T- ^/ a7 C2 L7 E+ X# r4 m
$ sudo apt-get install git
, C9 I* P4 _* {. v3 e $ j4 Z4 o% v4 C

: B6 w' P# c2 W/ P! P: @7 Y  获取源码, 会在当前 shell 的工作目录下生成一个名为"keystone"的目录用来同步源码, 也可以更改路径和目录名, 具体参考Git clone指令.
, j8 F2 O0 }: @, k7 S: D' r1 Y  ^
! o# d' w$ }2 O$ git clone https://github.com/openstack/keystone
* f0 i$ q; X7 Y% ^' |- n+ A 3 m* \( a4 g4 Y6 G+ p' o
( Q, }" C1 \  i: @) |7 H
  OpenStack基本基于Python实现, 依赖的大多数项目都可以从Python的包目录Pypi上获取, 但是根据具体的操作系统, 有一些依赖关系是无法使用Python的包管理解决的, 所以我们需要在安装Keystone的代码前先满足这些依赖.
3 T$ D2 `0 q2 @9 c( I  P
0 i9 y. f! ]( t( ^$ [3 X$ sudo apt-get install python-dev libxml2-dev libxslt1-dev \4 Q1 `# ~! d. s+ s. G% A
   libsasl2-dev libsqlite3-dev libssl-dev libldap2-dev libffi-dev
0 N. A: k4 a; o3 n; y2 C( h; r" Q  + u9 b6 a- c4 D/ {5 @+ r) x$ }+ ?

' C" o( J* G+ J+ {7 U' o. K  从Pypi上获取Python包需要借助pip或easy_install, 这里以pip为例, 安装pip.* _* i4 Y) `) ^: L/ U/ f

; K8 h/ v0 i, x" _$ wget https://bootstrap.pypa.io/get-pip.py
% p* y6 k3 p; g5 Z- \' u$ python get-pip.py, P* ]/ F" A  l0 _/ T: L1 V+ f& h
  9 M2 G  x! p  b- u) S

, w/ X/ }) \$ s  虚拟环境安装& P; k! k8 Q; N% w
# i; b# B, o0 b  w  h
  接下来就可以从源码安装Keystone了, 如果要在虚拟的Python环境中运行它, 执行这两条指令, 否则查看 "非虚拟环境安装" .
! K( y" a; Z0 Y' E$ c/ s  J5 R& ]1 `) t- A8 u
$ cd keystone
: T( {. r5 x6 ?7 K8 y* j$ python tools/install_venv.py
5 X" J( w9 v+ ?1 r6 Y# A ( {; K6 x8 z$ D+ K4 v2 U8 Y& P$ o  a
4 E* x9 @; [+ H/ W- @
  上述命令将在keystone/.venv目录下安装Keystone的虚拟运行环境, 通过下面的命令启动或关闭虚拟运行环境:/ E: o) f- v$ ~0 B: |/ r
( \. f# {* ^. E  V
$ source .venv/bin/activate #开启- F+ M$ j9 p0 f7 r/ K
$ deactivate #关闭/ M6 L. ^" b+ r  L$ ^
. d3 I2 p, {1 h
( N4 H- _; ]  F
  非虚拟环境安装
+ q/ A4 M# V% W, K$ Y
8 |% }- o+ f9 N6 n0 x  如果不想在虚拟环境下运行Keystone:1 ]3 b& x, K( {
9 l$ t, H. x% r2 F; W
$ sudo pip install -r requirements.txt #安装Keystone运行依赖
8 b9 U' n: l/ C& p2 x$ python setup.py develop #将keystone链入Python的本地包
1 x1 L# f4 Y# T# M5 ~% l: t   
1 M9 a$ q+ ^. h  x9 ~0 f
3 l/ g  t* c" [4 c* }  验证安装完成
- Z7 \8 N4 [7 k! q6 U
; {6 B. o, R' \7 l, j  至此源码安装完成, 在虚拟环境下:
9 `. u6 G' P2 m! w# e, ?# M! ?, B8 q* n) `7 w
$ source .venv/bin/activate1 x# |' ^' K& X$ c4 x3 i
$ python9 `; R' h% d5 H8 ~, |+ a! _

  x' J3 c) v8 Y( t7 o* ]" A* J) O/ C, g& ~
  或在非虚拟环境下:' ]4 e3 a4 ~8 k% ?9 H5 P
5 {1 T# k# R. k; `6 ~
$ python
) z9 F# }' D. L8 k3 n
1 ]  z9 w* h- O+ z- |' D) U$ K5 m8 x3 I
在Python的交互界面中import keystone, 看看是否成功, 如果没有异常, 说明keystone已经被正确安装了.
# m1 p- S( M, G0 w6 ?) i) T9 `>>> import keystone/ g- ^) a4 m) ~- L2 o
>>>
/ o- @1 X  f0 U; p# ^' i   这些工作也可以写成脚本执行, 虽然针对的只是Keystone, 但安装的逻辑和流程同样适用于OpenStack的其他项目.% S7 z( ?% B; S, U
) J# O( ?+ p* j. S; l0 r% {
  安装完成的Keystone并不能运行, 接下来需要对其进行配置和初始化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:58 , Processed in 0.016065 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表