找回密码
 注册
查看: 4779|回复: 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.1 u; J, I+ `4 ~

8 P) h2 S3 f! r. f2 P0 I  本文分别介绍了利用操作系统的包管理机制和利用源代码安装. 源码安装时还可以让Keystone运行在一个独立的虚拟环境中. 本文对应的系统环境是已经安装了Python 2.7.x的Ubuntu.  t0 A/ y' b; q2 b; b; L

1 e- Y6 ~6 h% [9 |! E; S 6 C$ l9 K) J4 t4 U  k8 z
5 o9 e% g( s: e9 q+ r
身份数据库
5 k4 \! X  {0 }) a; p0 f) K( T6 Q: v  a2 A) C* p- N
  Keystone的身份数据库可以使用SqLite和MySQL等存储后端, 如果选择特定的数据库, 应该在使用Keystone前安装这些目标数据库, 并为Keystone专门建表建库. 这里以使用MySQL为例.
5 ~) I9 i+ I9 v4 u
2 K" ~1 D4 v& G5 F  安装MySQL, 过程中会要求设置根用户口令.( R2 ^6 f! q2 T/ l$ q

1 T( \1 d5 g" u( I& Y$ apt-get install mysql-server python-mysqldb7 o, \  [0 w# M* s2 m
; ^/ d( b) U! o1 U% [- o
0 W% x3 g! O7 _" q- }) t
  为Keystone创建用户和数据库.
! h) k+ {' h! }1 [6 F
  E% ^( x4 T9 o1 r% P7 n$ mysql -uroot -p
4 b; y! d/ N) e  N% {: G$ RootPass% k3 X* V" q* o( ~! K% `
> create database keystone;
6 I& x% \- L' d# B- I> grant all on keystone.* to 'keystone'@'localhost' identified by 'KeystonePass';
- }" l- o* d/ n/ o) g! H: M9 ?- j3 ?> quit
4 z" {9 Y2 q" O) W! `   如果采用SqLite作为存储后端, 只需要在后续配置Keystone时设置驱动和存储文件即可.! d8 b$ m( ~6 p. P

+ z$ ^2 x' q0 ]' c
3 J. M, ^1 q& Q+ W, t/ x一. 包安装Keystone/ P9 }, D. O/ U
% i3 [) P& y! w8 `
   OpenStack俨然已经成为Ubuntu, RedHat等系统厂商的宠儿, 这些系统提供商对这个项目的支持方便了用户的部署, 利用Ubuntu的包管理工具, 我们可以非常容易地部署OpenStack的任意项目. 由于包安装的方式极为简便, 我们需要确保的就是在Ubuntu的云存档种获得我们需要版本的OpenStack组件.
" M& X) k4 U* `' B' S9 j" e5 t" I" A" n# H1 L9 W
  添加 Juno 版 OpenStack的存档库(Icehouse 等版本的操作类似):
/ j. y; ~/ U7 l% I7 D# ~
  Y' {4 R' O! b复制代码* F  L, K  p9 F# v5 ~
$ sudo add-apt-repository cloud-archive:juno0 D5 M! @, y; V

) i8 N! e0 G% M$ \( g/ {Ubuntu Cloud Archive for OpenStack Juno
  A7 d: U! a9 c) T7 P( bMore info: https://wiki.ubuntu.com/ServerTeam/CloudArchive
5 I$ A* c& v  \7 K+ NPress [ENTER] to continue or ctrl-c to cancel adding it7 E; U7 s4 W( U" t9 R
...
* P  ?* T% N9 _% d+ t; O2 a复制代码  @8 V( A0 K' w" ]

# G/ d8 e. f  e7 n  s2 s% M* Q; X( K- M7 s, [1 U) H8 V
  接着更新安装包列表:
+ C$ J! J* W, x; A" f3 [1 D4 m  ~- y; g, z9 Z
$ sudo apt-get update& x7 H$ _' {- d# |0 @/ `0 G
/ B) ?* b0 ^6 U  T& \' I7 Z" m
  W# c# Q5 a" J7 J
  事实上此时已经可以安装Juno 版 OpenStack的任意组件了:* }8 F- q8 W8 p2 M; V

4 Y) A' A7 P' A7 S( k$ sudo apt-get install keystone
6 z9 h2 f* k- c: q. @- M
2 S" ]2 Y$ Q" F$ g2 j- W6 O! k# w, B' ?  o& L( Z
二. 源码安装Keystone
8 |; D& A) L4 `. E. M' H
- g# P! }! _) Z; l  安装git,用来下载源码:0 O5 K, r- M4 |- e" b

! r: a) n8 s) t' l# B9 R9 h$ sudo apt-get install git; R# U9 H7 j) O( X

. j7 |1 z* |& g! n, a0 s# {
3 W' P" H( ^$ w0 x2 {$ N# b/ m  获取源码, 会在当前 shell 的工作目录下生成一个名为"keystone"的目录用来同步源码, 也可以更改路径和目录名, 具体参考Git clone指令.+ x/ j6 |' o! O1 p

% q- [0 ], Y+ \! @/ ]7 x9 c# U$ git clone https://github.com/openstack/keystone
7 M, _% [- b' ?0 V% j 1 v6 a% D, K4 L- @8 C1 S8 D3 k0 x

) {9 I- J" j8 M7 d6 x$ N  OpenStack基本基于Python实现, 依赖的大多数项目都可以从Python的包目录Pypi上获取, 但是根据具体的操作系统, 有一些依赖关系是无法使用Python的包管理解决的, 所以我们需要在安装Keystone的代码前先满足这些依赖.8 G; E2 l" `( B: @" Y& f

/ i& o( ^) h( f# Z) M$ sudo apt-get install python-dev libxml2-dev libxslt1-dev \3 X1 S/ b' G6 p  n
   libsasl2-dev libsqlite3-dev libssl-dev libldap2-dev libffi-dev5 Q3 p5 W) z: H1 ]3 q
  # z8 u& p# K1 Y/ x% Q9 g

' M( }4 [% _5 s5 d  从Pypi上获取Python包需要借助pip或easy_install, 这里以pip为例, 安装pip.
' [# l  G. K8 V2 O$ F! L) L; w
) c  a% S+ p5 E- Z- M( s$ y$ wget https://bootstrap.pypa.io/get-pip.py
; g* D5 n# ~% T/ h' u$ python get-pip.py
) J* M- _. {4 }; S   # u  j* L1 y: A! k+ l, `
7 w* _9 C0 H7 A  y* C0 L0 G$ z& F
  虚拟环境安装) ?% e' |  X$ k9 x3 R. ~4 _. l( \+ d
8 R+ `$ `4 R- r6 u9 m
  接下来就可以从源码安装Keystone了, 如果要在虚拟的Python环境中运行它, 执行这两条指令, 否则查看 "非虚拟环境安装" .% Y. j/ Q" N! B( M% A2 t! y

5 H( z& [9 B2 n2 Y3 b, l6 d; g$ cd keystone
* y3 E' E4 X$ {2 K; Y$ python tools/install_venv.py
7 W  L3 h' z2 B2 E. {
% Y% n2 \$ q4 T9 b7 M- N9 m$ ^* R' @+ a0 `  ]$ V  r: c& K/ D) c
  上述命令将在keystone/.venv目录下安装Keystone的虚拟运行环境, 通过下面的命令启动或关闭虚拟运行环境:+ H" N. f3 W, |2 u# e$ m2 w
2 ^% w& l6 \( U  j  j( B; B3 ^
$ source .venv/bin/activate #开启$ N, d2 K& s+ ?& c" A; d! i
$ deactivate #关闭
$ L; \8 {7 y" z% r. h : c" x; [: s/ Q4 C9 j8 g5 P  f0 v
. F3 N: X4 B+ x5 d* N: U" v4 n
  非虚拟环境安装
# h2 y) I! n* b% q0 m! v2 J3 f% _. p( X- g3 E
  如果不想在虚拟环境下运行Keystone:2 z1 P% W9 k, K9 _) U1 V
8 d! @' X9 P4 B5 I/ k; J0 N
$ sudo pip install -r requirements.txt #安装Keystone运行依赖
5 y# M: g9 ?: G$ python setup.py develop #将keystone链入Python的本地包& \% U) I. S; K
  ) o1 O9 n2 U. X: c/ e- M
) M3 E3 l+ c9 X+ J6 A1 s' n
  验证安装完成6 T( g( [0 |! w& M
  j: G( N  P1 m+ v
  至此源码安装完成, 在虚拟环境下:6 U1 m8 x0 j: q9 }. @! I1 x
/ m0 Y$ M% ?6 z- n2 D" ^
$ source .venv/bin/activate2 p% e8 h. S. \- Q) t, ?  P/ o
$ python/ q( D- y1 ]4 Q% f9 r4 {& p% F. F
+ r/ X; ~8 a+ N3 x) V

/ t+ @1 U) i% }5 e  或在非虚拟环境下:
4 k) _0 m# c/ s0 B( X. ]  k. w. s+ w$ j9 Y: x
$ python
* b* |! i+ f8 Q  J4 v2 n3 w
3 }' u: x4 o) n) }8 P8 n/ ]
. {: Z  V$ W8 a. @( `在Python的交互界面中import keystone, 看看是否成功, 如果没有异常, 说明keystone已经被正确安装了.8 e9 a& I! c& Q  x
>>> import keystone; u) ~7 j6 _; I# B5 s* @+ D* f! B
>>>
. |* H( _0 A. R$ G   这些工作也可以写成脚本执行, 虽然针对的只是Keystone, 但安装的逻辑和流程同样适用于OpenStack的其他项目.2 c) ?+ G+ J+ a. g8 ^+ y; f

. W& }  i- g" O0 ]$ B# X# ?  K  安装完成的Keystone并不能运行, 接下来需要对其进行配置和初始化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 03:02 , Processed in 0.023513 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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