乐趣区

关于java:OpenStack-安装-Keystone

OpenStack 装置 Keystone

本篇次要记录一下 如何装置 openstack 的 第一个组件 keystone 认证受权组件

openstack 版本 我选的是 queens 版本

1.OpenStack 官网

看了一下官网 文档还是蛮全的,我采纳 centos7 来做试验

https://docs.openstack.org/ke…

2.KeyStone 概述

Keystone 是 openstack 体系上面的认证、受权、和 目录服务治理 的一个重要的组件,keystone 通常是咱们接触 openstack 的第一个组件,它能够治理其余 openstack service,每个服务都能够有一个或者多个 endpoints,并且 endpoint 被分为 3 种类型:admin、internal、public,通过名称咱们也能大略晓得 就是其余服务所裸露的终端地址 给不通场景应用,public 个别是对外的 internal 个别是服务之间的通信地址,admin 个别管理员操作的地址,并且 endpoint 具备 region 类型,既能够对 endpoint 进行局域划分,咱们默认应用 RegionOne

具体看 https://docs.openstack.org/ke…

3. 装置 OpenStack packages

前置 须要筹备一个 centos7 零碎

  1. Upgrade the packages on all nodes:

    yum upgrade

    留神:If the upgrade process includes a new kernel, reboot your host to activate it.

  2. Install the appropriate OpenStack client for your version.

    For CentOS 7 and RHEL 7

    # yum install python-openstackclient

    For CentOS 8 and RHEL 8

    # yum install python3-openstackclient
  3. RHEL and CentOS enable SELinux by default. Install the openstack-selinux package to automatically manage security policies for OpenStack services:

    # yum install openstack-selinux

​ 或者通过手动敞开 selnux

4.Network Time Protocol (NTP)( 必须

openstack 各个组件之间 须要进行频繁的调用,所以他们的 工夫一点要保持一致,所以这个 NTP 必须要进行解决

centos7 曾经举荐应用 chrony 了,我看 openstack 官网文档也是这样操作的

4.1 装置 chrony
yum -y install chrony
4.2 编辑 /etc/chrony.conf
# 正文 这 4 个
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

#增加阿里云 ntp 服务器
server ntp1.aliyun.com iburst 

#容许同步的网段 我的是这个,依据状况本人配置
allow 192.168.56.0/24
4.3 启动 chrony

留神是 chronyd.service

systemctl enable chronyd.service
systemctl start chronyd.service
4.4 执行同步 chronyc sources -v

4.5 其余 nodes 节点也须要装置 chrony

nodes 其余节点 间接同步 下面的 controller 节点即可

server 192.168.56.30  

留神:因为 chrony 应用 udp 端口 123 和 323,所以 留神敞开 防火墙,或者把端口关上!

5. 装置 mariadb

因为 keystone 中相干的 services 信息 都须要存储的中央,所以 须要装置 mariadb,不过也反对其余

5.1 Install the packages: 装置 mariadb 包
# yum install mariadb mariadb-server python2-PyMySQL
5.2 编辑 /etc/my.cnf.d/openstack.cnf

Create and edit the /etc/my.cnf.d/openstack.cnf file (backup existing configuration files in /etc/my.cnf.d/ if needed) and complete the following actions:

  • Create a [mysqld] section, and set the bind-address key to the management IP address of the controller node to enable access by other nodes via the management network. Set additional keys to enable useful options and the UTF-8 character set:

    [mysqld]
    bind-address = 192.168.56.30
    
    default-storage-engine = innodb
    innodb_file_per_table = on
    max_connections = 4096
    collation-server = utf8_general_ci
    character-set-server = utf8

​ 留神 在 /etc/my.cnf.d/openstack.cnf 上面进行编辑 而后 bind-address 能够指定为 controller 节点 ip

5.3 启动 mariadb 服务
systemctl enable mariadb.service
systemctl start mariadb.service
5.4 平安设置向导
mysql_secure_installation  #一步步配置即可 

6. 装置 rabbitmq(本篇可选,因为本篇只是装置 keystone)

OpenStack 应用音讯队列来协调服务之间的操作和状态信息。音讯队列服务通常在控制器节点上运行。OpenStack 反对多种音讯队列服务,包含 RabbitMQ,Qpid 和 ZeroMQ。

6.1 装置 rabbitmq-server
yum install rabbitmq-server
6.2 启动
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
6.3 配置 openstack rabiitmq 用户
rabbitmqctl add_user openstack RABBIT_PASS #留神替换 RABBIT_PASS 明码 
6.4 Permit configuration, write, and read access for the openstack user:
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

7. 装置 Keystone 和 必要配置

官网地址:https://docs.openstack.org/ke…

7.1 配置 mysql

下面曾经装置了 mariadb 服务,这里须要开始对它进行配置

Before you install and configure the Identity service, you must create a database.

  1. 应用 root 用户登录 mysql :

    $ mysql -u root -p
  2. 创立 keystone database:

    MariaDB [(none)]> CREATE DATABASE keystone;
  1. Grant proper access to the keystone database:

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

​ Replace KEYSTONE_DBPASS with a suitable password.

7.2 装置 keystone 组件
7.2.1 装置 keystone
yum install openstack-keystone httpd mod_wsgi
 装置过程中的报错:Error: Package: python2-qpid-proton-0.22.0-1.el7.x86_64 (centos-openstack-queens)
Requires: qpid-proton-c(x86-64) = 0.22.0-1.el7
Available: qpid-proton-c-0.14.0-2.el7.x86_64 (extras)
qpid-proton-c(x86-64) = 0.14.0-2.el7
Available: qpid-proton-c-0.17.0-4.el7.x86_64 (centos-openstack-queens)
qpid-proton-c(x86-64) = 0.17.0-4.el7
Available: qpid-proton-c-0.22.0-1.el7.x86_64 (centos-openstack-queens)
qpid-proton-c(x86-64) = 0.22.0-1.el7
Installing: qpid-proton-c-0.35.0-1.el7.x86_64 (epel)
qpid-proton-c(x86-64) = 0.35.0-1.el7
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

包抵触导致的兼容谬误独自选定须要的版本进行装置即可

` 解决方案:yum install -y python2-qpid-proton-0.22.0-1.el7.x86_64

装置实现后 /etc/keyston 就存在了

7.2.2 编辑 /etc/keystone/keystone.conf 连贯 mysql
[database]
# ...
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone 

留神 controller 是你的 本机 ip 能够配置掉 /etc/hosts 中

7.2.3 token provider
[token]
# ...
provider = fernet
7.2.4 同步 keystone db
su -s /bin/sh -c "keystone-manage db_sync" keystone
7.2.5 初始化 fernet key
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
7.2.6 Bootstrap the Identity service:

留神替换 ADMIN_PASS

keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
  --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
7.3 配置 Apache Http 服务
7.3.1 编辑 /etc/httpd/conf/httpd.conf
ServerName controller
7.3.2 创立 ln -s

Create a link to the /usr/share/keystone/wsgi-keystone.conf file:

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
7.3.3 启动 httpd
systemctl enable httpd.service
systemctl start httpd.service
7.3.4 裸露账号到环境变量中

为了能够执行 openstack 命令

export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS #这个是下面 keystone-manage bootstrap 指定的 
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

8. 创立域 我的项目、用户、角色 等

8.1 创立 域
openstack domain create --description "An Example Domain" example
8.2 创立我的项目
openstack project create --domain default --description "Service Project" myservice
8.3 创立角色 关联用户
# 创立 用户
openstack user create --domain default   --password ADMIN_PASS myuser

#创立 角色
openstack role create myrole

#为 servce 我的项目指定用户角色
openstack role add --project service --user myuser myrole #为 service 我的项目指定用户角色

9. 验证 KeyStone 服务

9.1 验证 admin 用户
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 admin --os-username admin token issue 

9.2 验证 myuser 用户
openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name myservice --os-username myuser token issue

至此 openstack keystone 组件曾经装置实现了。。

总结

本篇次要记录一下 openstack queens 版本 keystone 组件的装置过程 被领导督促要学习 openstack 我也很无奈。

欢送大家拜访 集体博客 Johnny 小屋

退出移动版