找回密码
 注册
查看: 4776|回复: 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.
- i- ^# y: x7 K" L+ b
% R" R" V( z4 s( U% U  本文分别介绍了利用操作系统的包管理机制和利用源代码安装. 源码安装时还可以让Keystone运行在一个独立的虚拟环境中. 本文对应的系统环境是已经安装了Python 2.7.x的Ubuntu.% k8 @2 C  a# U0 P

# K- b& m$ t+ `3 l- B1 K+ T* A# K" |
" H8 E& A. m. Z' h  j# z- s5 k, {6 f! U+ R8 e
身份数据库1 b0 P5 Q5 G% u5 V& a7 j2 ~$ H! y" q
. O) A6 Y( d) I# s& {5 N% z' v5 T
  Keystone的身份数据库可以使用SqLite和MySQL等存储后端, 如果选择特定的数据库, 应该在使用Keystone前安装这些目标数据库, 并为Keystone专门建表建库. 这里以使用MySQL为例.- T0 G2 L* w8 W

" j) J. e3 ]: K1 t6 U  安装MySQL, 过程中会要求设置根用户口令.
  n& f: n/ {0 \8 ]5 \+ z1 n. ?8 q( l% v; c9 q
$ apt-get install mysql-server python-mysqldb( `/ D  o& K; ~3 e# T: W

" e; @5 v# g* ?4 {4 R* N5 {- C1 B. x& `' l. c: ~
  为Keystone创建用户和数据库.
7 W$ M- N" [) D3 l5 b# E: `, s. T- p* s0 D$ V4 S# n
$ mysql -uroot -p4 c2 R& J3 }+ Z5 k
$ RootPass
( H# S/ {- I) K  S# D# h9 h6 O> create database keystone;
/ `4 z3 {9 X0 o1 y> grant all on keystone.* to 'keystone'@'localhost' identified by 'KeystonePass';
2 L3 t% n% s0 C> quit$ \3 R! q- ]( H. n
  如果采用SqLite作为存储后端, 只需要在后续配置Keystone时设置驱动和存储文件即可.
. Y; p0 X/ M( c# k% @; w( `- J7 k! L) s3 W, s5 G

. q  o( b% {! O% f" T3 w! [一. 包安装Keystone
9 j. ]  q/ H( w6 b! o: J6 z* L1 e5 O! n/ G( Z; o
   OpenStack俨然已经成为Ubuntu, RedHat等系统厂商的宠儿, 这些系统提供商对这个项目的支持方便了用户的部署, 利用Ubuntu的包管理工具, 我们可以非常容易地部署OpenStack的任意项目. 由于包安装的方式极为简便, 我们需要确保的就是在Ubuntu的云存档种获得我们需要版本的OpenStack组件.. I) _0 W' U, @5 E
% s. w+ }5 H, C  N; b$ ?
  添加 Juno 版 OpenStack的存档库(Icehouse 等版本的操作类似):6 O0 @, e# l" f- ?4 c

! C7 M# Y) U% o$ l0 |复制代码# V9 p- ~2 l* d8 K- }( u. H2 a
$ sudo add-apt-repository cloud-archive:juno
0 l. Q' d4 n: y3 @  x) y) x; v
; k) r  A$ ~8 C  [5 M+ ZUbuntu Cloud Archive for OpenStack Juno5 S4 x* G" M  ^' v2 W( \
More info: https://wiki.ubuntu.com/ServerTeam/CloudArchive4 i0 w: X9 A2 ?
Press [ENTER] to continue or ctrl-c to cancel adding it
( \. q" q# }; d- m/ p7 F- }...  L- ?* T; l) ~9 x
复制代码5 @$ A! Z; s9 L- |, U, s
( O8 N8 ~" J1 _4 m# e  V) ]
+ Z+ f7 b" F1 ?& w) q# h! L
  接着更新安装包列表:
+ U. I( }3 V; K# P' x8 E1 e. |3 F$ g. y3 p6 Y9 F; Z
$ sudo apt-get update  A9 X$ C9 q8 F" M2 e) Y( ?
/ y& z: u5 z% D
) i% U. l$ A" g9 g' ]7 q  R
  事实上此时已经可以安装Juno 版 OpenStack的任意组件了:
: L* d3 N2 [- d' y# Y. o, n5 l' }. U9 H! B! d0 Y
$ sudo apt-get install keystone
0 l5 Q" G& {/ R6 m " z& _/ A7 ?1 s$ D- ~3 n

5 w( j9 X6 s" ~7 B' B 二. 源码安装Keystone
2 d; M+ ^8 h; `0 H* ], m# m- I0 }1 J$ v( q5 R1 c
  安装git,用来下载源码:
" J" V0 Z6 v( N! ?: k6 f7 h1 V% L2 F+ F
$ sudo apt-get install git, g8 w  z0 Q2 x7 M! [

, {9 o7 T* i% E/ S9 P0 U
5 q1 ?0 X1 N2 |  获取源码, 会在当前 shell 的工作目录下生成一个名为"keystone"的目录用来同步源码, 也可以更改路径和目录名, 具体参考Git clone指令.
) t& ~0 m$ C  \! v% ^! D
& E7 j& K# S# u! }, j$ git clone https://github.com/openstack/keystone
  N. {  T7 C6 P  a9 P
2 h! R" K1 d# x* N, \* D
% M% X* p5 a) k/ p0 Q  OpenStack基本基于Python实现, 依赖的大多数项目都可以从Python的包目录Pypi上获取, 但是根据具体的操作系统, 有一些依赖关系是无法使用Python的包管理解决的, 所以我们需要在安装Keystone的代码前先满足这些依赖.# z/ i/ b4 P( z8 O3 u

: ?# P- S* W: S$ sudo apt-get install python-dev libxml2-dev libxslt1-dev \
5 F# {; E" W) A+ t9 e   libsasl2-dev libsqlite3-dev libssl-dev libldap2-dev libffi-dev
2 a7 }% {% E! L" }( g+ o% J  
( o1 a% C6 u( C* q5 z& f! M
3 J; ~; g6 p, ?. Y. |1 {  从Pypi上获取Python包需要借助pip或easy_install, 这里以pip为例, 安装pip.
/ M3 w0 ^4 h8 u9 s- X; Q7 q& a% X3 E% j& b4 G' B3 _& z
$ wget https://bootstrap.pypa.io/get-pip.py* V+ l, |  A  ^2 C
$ python get-pip.py
9 d8 ^; {5 Q1 {$ T   - t! O7 R1 b# k1 R$ r

7 X2 o1 r% y- ~) G  虚拟环境安装, \' Q" H3 ^6 v' q8 K5 S8 F
/ @0 A7 I( |8 b& m: k
  接下来就可以从源码安装Keystone了, 如果要在虚拟的Python环境中运行它, 执行这两条指令, 否则查看 "非虚拟环境安装" .
; q& R5 U0 g6 x7 }0 ^& \( F7 Z, I3 S7 C
8 p1 q" {/ O3 a5 W! u* E$ cd keystone$ I. h- \2 P% W+ T
$ python tools/install_venv.py+ c5 f0 Z: a; \' t

) u" b6 h+ ~6 R" K# `
( Z$ ^( h) O( y  上述命令将在keystone/.venv目录下安装Keystone的虚拟运行环境, 通过下面的命令启动或关闭虚拟运行环境:
' N: g5 {7 \  G: i( a+ I) A# X$ `- S* \# L( |, `& l9 }$ G2 K  N  y9 @1 V
$ source .venv/bin/activate #开启
9 L  h: a7 Y9 ~9 n+ D9 Z$ deactivate #关闭. @, [; T0 t$ c  H2 v9 v
& b5 ~/ u3 |( A2 W
3 [! g: ~) V1 P: W0 Q% z
  非虚拟环境安装
% n' N7 W- C8 K3 }
% p. M2 A# t! z* [4 k. F  如果不想在虚拟环境下运行Keystone:
/ }5 P) q' n5 c7 g: |7 n& q) M& M) C/ {# `5 _/ f
$ sudo pip install -r requirements.txt #安装Keystone运行依赖
' \. [+ W1 O' Z/ C( D$ python setup.py develop #将keystone链入Python的本地包& ~2 W* n9 x- F1 ]. D4 O* H
  8 Z6 s+ d0 e. }% X4 y; S" d# g
) U+ ?! F3 G8 ~1 M8 `
  验证安装完成
# S  ^4 a/ C: L
9 E; J" [0 Q, f/ n' ~* c9 O- x" u  至此源码安装完成, 在虚拟环境下:
) h6 M! h# s5 B
+ }  R7 `% I2 \+ b5 E$ source .venv/bin/activate  C" e& D+ Q/ |
$ python
$ N1 W' A% f3 w: D! `. n- P* @ 3 G. p7 t4 x" A, a1 G9 q
* Y1 p' r0 e% S( v/ ^% r$ d
  或在非虚拟环境下:
; p8 _- ^; Q) b4 g6 E% c- f+ O( [6 \4 d, i
$ python
: X5 e' G. g- @, ]9 H& f& B
& @2 _0 `6 ~5 ]! d% _& Q; z5 L- M% C0 [2 U$ f$ b
在Python的交互界面中import keystone, 看看是否成功, 如果没有异常, 说明keystone已经被正确安装了.% w1 U0 F3 a' T3 |- ]% Z/ {8 T
>>> import keystone1 z; x1 u9 [# [4 p1 X7 d! C
>>> : E! A- N+ @( H8 @8 H' x( l- S
  这些工作也可以写成脚本执行, 虽然针对的只是Keystone, 但安装的逻辑和流程同样适用于OpenStack的其他项目.8 c" L" r, \& E' U

' j' i4 U8 v5 s& a  A; f; K; N8 `- f  安装完成的Keystone并不能运行, 接下来需要对其进行配置和初始化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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