• openstack 笔记 (四) keystore部署


    1.KeyStone功能介绍

    KeyStone主要有两个功能:用户管理和服务目录

    用户管理主要包括:认证和授权

    认证方式有四种:即token令牌、账号和密码、服务目录、策略

    认证核心术语

    用户相关:

    User:能使用OpenStack服务的一个用户

    Project:之前交Tenant(租户),是组件服务的一种资源隔离方式

    Role:角色,是User访问指定Project资源的一种权限

    Token:令牌,一个综合的加密认证信息

    使用方式:给一个User赋予在指定Project中一个资源访问的Role角色。

    服务目录相关:

    Service:OpenStack各组件提供的服务,用于用户访问

    Endpoint:用户访问Service的一个url链接入口

    KeyStone配置信息

    配置文件:/etc/keystone/keystone.conf

    日志文件:/var/log/keystone/keystone.log

    2.KeyStone部署

    在OpenStack中,任何组件的基本上都按照数据库配置、软件安装、软件配置、数据同步、http配置、权限设置这六个方面来操作。

    • 数据库配置

    连接并创建数据库

    mysql -u root -p root
    CREATE DATABASE keystone;
    复制代码

    配置权限

    GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone';
    GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone';
    -- 将keystone用户密码设置为keystone
    
    复制代码
    • 软件安装

    yum install -y openstack-keystone httpd mod_wsgi

    • 编辑配置文件

    vim /etc/keystone/keystone.conf

    [DEFAULT]
    #连接到消息队列
    405 transport_url = rabbit://openstack:openstack@192.168.188.100:5672
    [database]
    #数据库配置连接控制节点的认证地址
    661 connenction = mysql+pymysql://keystone:keystone@192.168.188.100/keystone
    [token]
    #配置token令牌的提供者,取消注释即可
    2758 provider = fernet
    复制代码

    检查修改信息

    [root@controller keystone]# grep -ni '^[a-Z]' /etc/keystone/keystone.conf

    • 初始化信息

    同步数据库信息

    su -s /bin/sh -c "keystone-manage db_sync" keystone
    复制代码

    初始化keystone的认证信息

    keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
    复制代码

    生成openstack管理admin账户的api信息

    Queen版本的admin用户和普通用户都使用5000端口连接,而之前版本admin用户使用35357端口。这里一定要注意,否则会直接导致后面的组件无法部署。

    # keystone-manage bootstrap --bootstrap-password admin  
      --bootstrap-admin-url http:// controller:5000/v3/  
      --bootstrap-internal-url http:// controller:5000/v3/  
      - bootstrap-public-url http:// controller:5000 /v3/ 
      --bootstrap-region-id RegionOne
    复制代码
    • 配置http服务

    编辑配置文件

    # vim /etc/httpd/conf/httpd.conf
    ServerName 192.168.188.100:80
    复制代码

    创建连接文件

    ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d

    启动http服务,并设置开机启动

    systemctl enable httpd.service
    systemctl start httpd.service
    复制代码
    • 权限配置

    配置用户信息

    $ export OS_USERNAME=admin
    $ export OS_PASSWORD=admin
    $ export OS_PROJECT_NAME=admin
    $ export OS_USER_DOMAIN_NAME=Default
    $ export OS_PROJECT_DOMAIN_NAME=Default
    $ export OS_AUTH_URL=http://controller:5000/v3
    $ export OS_IDENTITY_API_VERSION=3
    复制代码

    1.创建项目

    命令格式:openstack project create --domain default --description "描述" <项目名>

    创建service项目

    openstack project create --domain default --description "Service Project" service
    openstack project create --domain default --description "Demo Project" demo
    复制代码

    检查效果

    openstack project list

    2.创建demo用户,即普通用户

    命令格式:openstack user create --domain default --password <密码> <用户名>

    openstack user create --domain default --password demo demo
    复制代码

    3.创建role角色

    命令格式:openstack role create <role名>

    openstack role create user
    复制代码

    4.给demo用户赋予在指定Project(即"Demo Project")中一个资源访问的Role角色(即user)

    命令格式:openstack role add --project <项目名> --user <用户名> <角色组>

    openstack role add --project demo --user demo user
    复制代码

    3.认证效果

    • 效果测试

    取消环境变量

    unset OS_AUTH_URL OS_PASSWORD

    用户验证

    命令格式:

    openstack --os-auth-url http://controller:5000/v3 
    --os-project-domain-name Default --os-user-domain-name Default 
    --os-project-name <项目> --os-username <用户> --os-password <密码> token issue
    复制代码

    使用admin验证

    openstack --os-auth-url http://controller:5000/v3 
    --os-project-domain-name Default --os-user-domain-name Default 
    --os-project-name admin --os-username admin --os-password admin token issue
    复制代码

    使用demo用户验证

    openstack --os-auth-url http://controller:5000/v3 
    --os-project-domain-name Default --os-user-domain-name Default 
    --os-project-name demo --os-username demo --os-password demo token issue
    复制代码
    • 创建环境变量脚本来自动设置用户环境变量

    创建admin用户的变量脚本

    #vim admin-openstack.sh
    export OS_PROJECT_DOMIN_NAME=Default
    export OS_USER_DOMAIN_NAME=Default
    export OS_USERNAME=admin
    export OS_PASSWORD=admin
    export OS_PROJECT_NAME=admin
    export OS_AUTH_URL=http://controller:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2
    复制代码
    openstack token issue
    复制代码

    创建demo用户的变量脚本



  • 相关阅读:
    Android中通过进程注入技术修改系统返回的Mac地址 分类: Android 2014-12-15 21:11 2866人阅读 评论(10) 收藏
    OC学习篇之---总结和学习目录 分类: IOS 2014-12-14 21:30 2623人阅读 评论(2) 收藏
    OC学习篇之---单例模式 分类: IOS 2014-12-14 20:42 1498人阅读 评论(2) 收藏
    OC学习篇之---对象的拷贝 分类: IOS 2014-12-14 18:02 2128人阅读 评论(0) 收藏
    OC学习篇之---循环引用问题 分类: IOS 2014-12-14 17:24 2184人阅读 评论(0) 收藏
    OC学习篇之---数组对象的引用计数问题和自动释放池的概念 分类: IOS 2014-12-14 17:04 1415人阅读 评论(0) 收藏
    OC学习篇之---@property和@synthesize的使用 分类: IOS 2014-12-14 16:45 3112人阅读 评论(0) 收藏
    OC学习篇之---内存管理介绍和使用 分类: IOS 2014-12-14 16:16 1510人阅读 评论(1) 收藏
    OC学习篇之---谓词(NSPredicate) 分类: IOS 2014-12-14 10:39 2078人阅读 评论(0) 收藏
    OC学习篇之---通知(NSNotificationCenter) 2014-12-14 10:20 2430人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/well-666/p/12151572.html
Copyright © 2020-2023  润新知