• A03. openstack架构实战-keystone安装


    openstack服务安装的通用步骤模板:

    1:mysql中创建对用的数据库,并授权

    2:在keystone创建用户,关联角色(授权)

    3:在keystone上创建服务,注册api(服务目录)

    4:安装服务相关的软件包

    5:修改配置文件:eg:数据库的连接,rabbitmq的连接信息,keystone的认证授权信息,其他配置

    6:通过命令同步数据库,创建对应的表

    7:重启服务设置开机自启

    安装keystone认证服务:(只在控制节点操作)

    1:登入数据库

    [root@controller01 ~]# mysql -uroot -phuayun

    2:创建keystone数据库

    MariaDB [(none)]> CREATE DATABASE keystone;
    Query OK, 1 row affected (0.00 sec)

    3:对keystone库授权相对的用户

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'
    -> IDENTIFIED BY 'huayun';
    Query OK, 0 rows affected (0.00 sec)

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'
    -> IDENTIFIED BY 'huayun';
    Query OK, 0 rows affected (0.00 sec)

    4:安装keystone的软件包:httpd服务要与python进行连接需要mod_wsgi模块

    [root@controller01 ~]# yum install openstack-keystone httpd mod_wsgi -y

    5:编辑文件 /etc/keystone/keystone.conf 并完成如下动作

     备份原有的配置文件

    [root@controller01 ~]# cp /etc/keystone/keystone.conf /etc/keystone/keystone.conf.bak

    在 [database] 部分,配置数据库访问:

    [database]
    connection = mysql+pymysql://keystone:huayun@controller01/keystone

    在``[token]``部分,配置Fernet UUID令牌的提供者。

    keeystone认证方式:UUID,PKI,Fernet

    都只是生成一种随机的字符串的方法:用来各个服务验证的id

    [token]
    provider = fernet

    查看手动修改配置文件的token配置文件的token

    [root@controller01 ~]# md5sum /etc/keystone/keystone.conf
    7a538fdacc49af8f07b89cf49d65f247 /etc/keystone/keystone.conf

    查看使用命令配置文件的token:

    还原配置文件:

    [root@controller01 ~]# cp /etc/keystone/keystone.conf.bak /etc/keystone/keystone.conf
    cp: overwrite ‘/etc/keystone/keystone.conf’? y

    下载openstack配置文件的安装包:

    [root@controller01 ~]# yum install openstack-utils -y

    安装完之后会有openstack-config的命令,我们可以使用该命令进行修改配置文件

    [root@controller01 ~]# openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:huayun@controller01/keystone

    [root@controller01 ~]# openstack-config --set /etc/keystone/keystone.conf token provider  fernet

    校验:无论是手动配置还是命令配置都是可以的md5值都不变

    [root@controller01 ~]# md5sum /etc/keystone/keystone.conf
    7a538fdacc49af8f07b89cf49d65f247 /etc/keystone/keystone.conf

    6:同步数据库

    su:linux用来切换用户

    -s:指定shell

    -c:指定执行命令

    [root@controller01 ~]# su -s /bin/sh -c "keystone-manage db_sync" keystone

    查看数据库是否同步

    [root@controller01 ~]# mysql -uroot -phuayun keystone -e "show tables"
    +-----------------------------+
    | Tables_in_keystone |
    +-----------------------------+
    | access_token |
    | application_credential |
    | application_credential_role |
    | assignment |
    | config_register |
    | consumer |
    | credential |
    | endpoint |
    | endpoint_group |
    | federated_user |
    | federation_protocol |
    | group |
    | id_mapping |
    | identity_provider |
    | idp_remote_ids |
    | implied_role |
    | limit |
    | local_user |
    | mapping |
    | migrate_version |
    | nonlocal_user |
    | password |
    | policy |
    | policy_association |
    | project |
    | project_endpoint |
    | project_endpoint_group |
    | project_tag |
    | region |
    | registered_limit |
    | request_token |
    | revocation_event |
    | role |
    | sensitive_config |
    | service |
    | service_provider |
    | system_assignment |
    | token |
    | trust |
    | trust_role |
    | user |
    | user_group_membership |
    | user_option |
    | whitelisted_config |
    +-----------------------------+

    7:初始化Fernet密钥存储库

    [root@controller01 ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    [root@controller01 ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

    初始化之后会有两个目录生成在keystone的目录下

    8:配置引导身份服务:

    在Queens发行之前,keystone需要在两个单独的端口上运行,以适应Identity v2 API,后者通常在端口35357上运行单独的仅管理员服务。删除v2 API后,keystone可以在同一端口上运行所有接口。

    [root@controller01 ~]# keystone-manage bootstrap --bootstrap-password huayun
    > --bootstrap-admin-url http://controller01:5000/v3/
    > --bootstrap-internal-url http://controller01:5000/v3/
    > --bootstrap-public-url http://controller01:5000/v3/
    > --bootstrap-region-id RegionOne

    9:配置apached

    [root@controller01 ~]# rpm -qa httpd
    httpd-2.4.6-93.el7.centos.x86_64

    编辑/etc/httpd/conf/httpd.conf文件并配置 ServerName选项以引用控制器节点(在配置文件的最后边添加即可)

    ServerName controller01

    10:创建到/usr/share/keystone/wsgi-keystone.conf文件的链接

    [root@controller01 ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

    11:启动Apache HTTP服务,并将其配置为在系统启动时启动:

    [root@controller01 ~]# systemctl start httpd && systemctl enable httpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

    12:配置管理帐户:

    [root@controller01 ~]# export OS_USERNAME=admin
    [root@controller01 ~]# export OS_PASSWORD=huayun
    [root@controller01 ~]# export OS_PROJECT_NAME=admin
    [root@controller01 ~]# export OS_USER_DOMAIN_NAME=Default
    [root@controller01 ~]# export OS_PROJECT_DOMAIN_NAME=Default
    [root@controller01 ~]# export OS_AUTH_URL=http://controller01:5000/v3
    [root@controller01 ~]# export OS_IDENTITY_API_VERSION=3

    创建域,项目,用户和角色

    1:创建默认域(default)版本已经自动创建defalut,下面是为了演示创建域的方法

    [root@controller01 ~]# openstack domain create --description "An Example Domain" example

     

    2:创建项目:

    [root@controller01 ~]# openstack project create --domain default
    > --description "Service Project" service

    查看创建的项目

     [root@controller01 ~]# openstack project list 

     

     3:creates the demo project and user(实验使用)

    创建demo项目:

    [root@controller01 ~]# openstack project create --domain default
    > --description "Demo Project" demo

     创建demo用户:

    [root@controller01 ~]# openstack user create --domain default
    > --password-prompt demo

    [root@controller01 ~]# openstack user list 

    4:user角色添加demo项目和用户

    初次添加,我们发现没有user这个角色,这边我们只是为了演示iang某个角色添加到项目和用户中的操作,如果需要添加,我们需要进行创建user角色

    [root@controller01 ~]# openstack role add --project demo --user demo user
    No role with a name or ID of 'user' exists.

    添加如下:

    [root@controller01 ~]# openstack role create user
    +-----------+----------------------------------+
    | Field | Value |
    +-----------+----------------------------------+
    | domain_id | None |
    | id | 1466c6fab11249ffa57b0cf6ff328021 |
    | name | user |
    +-----------+----------------------------------+
    [root@controller01 ~]# openstack role add --project demo --user demo user

    验证

    在安装其他服务之前,请验证身份服务的操作。

    注意

    在控制器节点上执行这些命令。

    1:取消设置临时 变量OS_AUTH_URLOS_PASSWORD环境变量

    [root@controller01 ~]# unset OS_AUTH_URL OS_PASSWORD

    2:admin用户身份请求身份验证令牌:

    [root@controller01 ~]# unset OS_AUTH_URL OS_PASSWORD
    [root@controller01 ~]# openstack --os-auth-url http://controller01:35357/v3
    > --os-project-domain-name Default --os-user-domain-name Default
    > --os-project-name admin --os-username admin token issue

    3:demo用户身份请求身份验证令牌

    [root@controller01 ~]# openstack --os-auth-url http://controller01:5000/v3
    > --os-project-domain-name Default --os-user-domain-name Default
    > --os-project-name demo --os-username demo token issue
    Password:

    创建openstack客户端环境脚本

    使用环境变量和命令选项的组合通过``openstack``客户端与身份认证服务交互。为了提升客户端操作的效率,OpenStack支持简单的客户端环境变量脚本即OpenRC 文件。这些脚本通常包含客户端所有常见的选项,当然也支持独特的选项。

    创建脚本:

    创建 admin 和 ``demo``项目和用户创建客户端环境变量脚本。本指南的接下来的部分会引用这些脚本,为客户端操作加载合适的的凭证。

    1:创建和编辑admin-openrc文件并添加以下内容:

    vim 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=huayun
    export OS_AUTH_URL=http://controller01:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2

    2:创建和编辑demo-openrc文件并添加以下内容:

    vim demo-openrc

    export OS_PROJECT_DOMAIN_NAME=Default
    export OS_USER_DOMAIN_NAME=Default
    export OS_PROJECT_NAME=demo
    export OS_USERNAME=demo
    export OS_PASSWORD=huayun
    export OS_AUTH_URL=http://controller01:5000/v3
    export OS_IDENTITY_API_VERSION=3
    export OS_IMAGE_API_VERSION=2

    3:使用脚本

    [root@controller01 ~]# source admin-openrc 或则./admin-openrc

     如果需要退出登入之后永久执行该命令可以在

    vim /root/.bashrc

    keystone服务搭建到此结束

  • 相关阅读:
    php简单实现MVC
    windows获取窗口句柄
    UPX编译及so加固
    Markdown: Syntax
    Markdown: Syntax Text
    BIOS将MBR读入0x7C00地址处(x86平台下)
    TPFanControl.ini
    深入浅出GNU X86-64 汇编
    CPU vector operations
    Google开源项目风格指南
  • 原文地址:https://www.cnblogs.com/zhaopei123/p/12950337.html
Copyright © 2020-2023  润新知