zoukankan      html  css  js  c++  java
  • openstack学习笔记3-认证服务安装与配置

    目录:

    0 实验环境

    1 概述

    2 安装和配置

    2.1 先决条件

    2.2 安装和配置

    2.3 http服务

    2.4 完成安装

    3 创建域、项目、用户和角色

    4 验证

    5 创建脚本


    0 实验环境

    openstack版本:train

    实验平台:vmware workstation 15.1

    实验虚拟机:centos 7.6,2核,4G内存

    操作节点:控制节点

    本文用到的帐号和密码:

    mysql数据库管理员:root:samplepass

    keystone数据库用户:keystone:kspass

    keystone系统管理员:admin:rootpass

    openstack新用户myuser:myuser:mypass

    1 概述

    openstack服务组件有很多,但是至少需要按顺序安装以下服务:

    • keystone-身份认证服务
    • glance-镜像服务
    • placement-替换服务
    • nova-计算服务
    • neutron-网络服务

    除了必须的服务,建议安装以下两个组件:

    • horizon-控制面板
    • cinder-块存储服务

    2 安装和配置

    OpenStack身份服务集成了管理身份验证、授权和服务目录。身份服务通常是第一个服务。一旦通过身份验证,就可以使用其身份访问其他OpenStack服务。身份服务还可以与一些外部用户管理系统(如LDAP)集成。

    2.1 先决条件

    在安装服务之前,必须先创建数据库:

    a)连接数据库:

    # mysql -u root -p

    b)新建数据库keystone:

    MariaDB [(none)]> CREATE DATABASE keystone;

    c)为keystone数据库用户分配权限,并设置用户keystone的密码为kspass:

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'kspass';
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'kspass';

    d)退出数据库

    MariaDB [(none)]>quit;

    2.2 安装和配置

    a)安装软件包

    # yum install openstack-keystone httpd mod_wsgi

    b)编辑配置文件/etc/keystone/keystone.conf

    [database]节点,编辑数据库连接字符串,使用之前创建的数据库用户keystone和密码kspass:

     [token]节点,编辑令牌提供程序为fernet

     c)写入keystone数据库初始数据

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

    这一步执行没有返回错误或者成功的任何提示,所以最好通过查看数据库信息来确认是否成功(也能确认之前的配置是否生效):

    # mysql -u keystone -pkspass keystone -e 'show tables'  //-p后面紧跟密码,不能有空格

    d)初始化令牌库

    # keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

    e)引导身份认证服务,其中设置了管理员密码为rootpass

    # keystone-manage bootstrap --bootstrap-password rootpass 
      --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

    f)验证,上一步创建了一个默认的域default,通过查看域的列表命令来进行检查是否成功:

    # openstack domain list

     

    2.3 配置http服务

    a)编辑/etc/httpd/conf/httpd.conf,配置服务名称:

    ServerName controller

    b)创建配置文件/usr/share/keystone/wsgi-keystone.conf的符号链接:

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

    2.4 完成安装

    a)设置服务状态

    # systemctl enable --now httpd

    b)配置环境变量,其中的内容在2.2中e)步骤,通过keystone-manager命令完成了初始的设置:

    $ export OS_USERNAME=admin
    $ export OS_PASSWORD=rootpass
    $ 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

    3 创建域、项目、用户和角色

    身份的验证是通过域、项目、用户和角色的组合来进行的。

    a)创建一个名称为example的新域:

    # openstack domain create --description "An Example Domain" example

     b)新建一个名为service的新项目,属于example域:

    # openstack project create --domain example --description "Service Project" service

     c)新建一个用户myuser,属于example域,密码设置为mypass:

    # openstack user create --domain example --password-prompt myuser

    d)新建角色myrole:

    # openstack role create myrole

     把myrole角色分配myuser用户和service项目:

    # openstack role add --project service --user myuser myrole

    由于上一命令没有任何提示,可以通过查看角色列表来检查:

    # openstack role assignment list --names

    4 验证

    a)取消之前设置的管理员密码的环境变量:

    # unset OS_PASSWORD

    b)使用admin用户获取token,要求输入密码,使用admin的密码rootpass进行验证:

    # openstack token issue

    c)使用myuser用户获取token,--os-username 指定用户,--os-project-name 指定项目,--os-domain-name 指定域(上一步之所以没有用这些参数,因为之前设置了相应的环境变量)。会要求输入密码,使用myuser的密码mypass进行验证:

    # openstack --os-username myuser --os-project-name service --os-domain-name example token issue

    5 创建脚本

    为了提高客户端操作的效率,OpenStack支持简单的客户端环境脚本(也称为OpenRC文件),这些脚本通常包含所有客户端的通用选项。

    a)创建admin用户的脚本文件admin-openrc:

    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=admin
    export OS_USERNAME=admin
    export OS_PASSWORD=rootpass
    export OS_AUTH_URL=http://controller:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2

    b)创建myuser用户的脚本文件myuser-openrc:

    export OS_PROJECT_DOMAIN_NAME=example
    export OS_USER_DOMAIN_NAME=example
    export OS_PROJECT_NAME=service
    export OS_USERNAME=myuser
    export OS_PASSWORD=mypass
    export OS_AUTH_URL=http://controller:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2

    c)使用脚本来进行验证操作:

    # . admin-openrc  //注意:命令是一个点,空格,文件名。执行文件里的命令,也就是设置环境变量。
    # openstack token issue

    # . myuser-openrc  //运行myuser的文件,验证myuser的配置
    # openstack token issue

  • 相关阅读:
    ABAP术语-Logical Lock
    ABAP术语-Lock Object
    ABAP术语-Lock Mode
    ABAP术语-Lock Argument
    ABAP术语-Key Field
    Python面向对象基础-day6
    Python中的内置模块与生成器迭代器-day5
    Python高阶函数与函数装饰器-day4
    Python字符编码与函数基本使用-day3
    Nginx内置变量及正则语法
  • 原文地址:https://www.cnblogs.com/learn2teach/p/12421342.html
Copyright © 2011-2022 走看看