OpenStack——keystone安装

来源:互联网 发布:神州专车价格算法 编辑:程序博客网 时间:2024/05/16 04:44

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
作用:在同一台机器上可以使用不同的ip+端口

Listen 5000Listen 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

创建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。

0 0