您的位置:首页 > 运维架构

OpenStack——keystone安装

2016-09-10 14:01 357 查看
1、OpenStack部署前准备

2、OpenStack——keystone安装

3、OpenStack——glance安装

4、OpenStack——nova安装

环境:

Ubuntu14.04+ (OpenStackM版本)


Identity 服务概览

OpenStack的身份服务提供单点管理的认证、授权和服务目录服务集成。其他OpenStack服务使用的身份服务作为一个统一的API。此外,提供用户信息的服务,但不包括在OpenStack(如LDAP服务)可以集成到现有的基础设施。

Identity包括Server,Driver(驱动)和Modules三大组件。

(当你安装Identity服务的时候,要把每一个服务到Identity注册。这样就能通过Identity来管理。)

在conrtoller安装KeyStone(Identity Service)

先决条件

1、在mysql中创建一个数据库,供keystone服务。

CREATE DATABASE keystone;/* 创建数据库*/
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'  IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS' ; /*授予keystone用户所有权限,并设置密码,允许所有ip链接*/


安装和配置组建

1、首先禁止keystone安装完后

echo "manual" > /etc/init/keystone.override


2、安装keystone ,apache2, libapache2-mod-wsgi。keystone的服务是通过web服务提供的。

apt-get install keystone apache2 libapache2-mod-wsgi


3、修改keystone的配置文件:/etc/keystone/keystone.conf

[DEFAYLT]
admin_token = ADMIN_TOKEN /* ADMIN_TOKEN=openssl rand -hex 10*/

[database]
connection=mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
/*KEYSTONE_DBPASS 由上一部设置如果出现不能连接,考虑将/etc/hots 中   127.0.0.1  controller删除、或者直接用ip代替controller因为之前已经将Mysql的绑定Ip为 10.0.010*/

[token]
provider=fernet /*一种更高效的token*/


**4、同步一下数据库

su -s /bin/sh -c "keystone-manage db_sync" keystone**


5、初始化 Fernet keys

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone


配置Apache 服务器

1、配置/etc/apache2/apache2.conf

添加ServerName controller


2、创建/etc/apache2/sites-available/wsgi-keystone.conf

ad97
作用:在同一台机器上可以使用不同的ip+端口

Listen 5000
Listen 35357

<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined

<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined

<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>


`


3、使虚拟host的验证服务可用

ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled


完成安装

1、重启apache服务:

service apache2 restart


2、删除默认的SQLite数据库 :

rm -f /var/lib/keystone/keystone.db         `


必要的配置文件和软件已经安装完毕,接下来就是利用keystone服务了,包括用户,服务,域。也就是如何使用keystone啦!

这里写代码片参考:http://docs.openstack.org/mitaka/install-guide-ubuntu/keystone.html

使用KeyStone V3

User:用户
Project:前身Tenant(总算被弃用了),变成project多自然
Role:一系列操作的集合
Token:认证令牌,有时限
Domain:多个project组成一个Domain


创建服务

1、使用临时权限创建identity服务和api 端口

export OS_TOKEN=06bb127ccea9205d7c14#根据上文自己设置的token
export OS_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3


(执行该脚本)

2、创建identity服务和API端口

(OpenStack的命令行变化太快啦可以到这个网站查询:http://docs.openstack.org/cli-reference/openstack.html)

openstack service create \
--name keystone --description "OpenStack Identity" identity #创建服务

#openstack的api endponts分为admin,public,和internal,所以要创建3种

openstack endpoint create --region RegionOne \
identity public http://controller:5000/v3 
openstack endpoint create --region RegionOne \
identity internal  http://controller:5000/v3 
openstack endpoint create --region RegionOne \
identity admin http://controller:35357/v3[/code] 

创建domains,projects,users,roles

创建domain

openstack domain create --description "Default Domain" default


创建project

openstack project create --domain default  --description "Admin Project" admin


创建用户

openstack user create --domain default  --password-prompt admin


创建角色

在/etc/keystone/policy.json下定义了各种命令所需要的权限条件,用户可以做更改

openstack role create admin


将角色添加到项目和用户

openstack role add --project admin --user admin admin


认证操作

通过密码认证获得token

admin 用户 向 keystone服务请求token

openstack --os-auth-url http://controller:35357/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name admin --os-username admin token issue


要是每次写 --os--auth-url等 太麻烦,可以将
OS_PASSWORD,OS_AUTH_URL放在一个脚本里,export一下。


例如:admin.rc

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2


然后source admin.rc 。 之后直接 openstck token issue获得token。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: