OpenStack之keystone(身份认证服务)

您所在的位置:网站首页 镇宅葫芦的摆放位置图片大全大图 OpenStack之keystone(身份认证服务)

OpenStack之keystone(身份认证服务)

2024-07-17 10:21:34| 来源: 网络整理| 查看: 265

安装部署openstack

一、准备基础环境 1、环境: CPU处理器要支持虚拟化 内存2GB 磁盘空间50GB 网络两块网卡,一块外网,一块内网 3台虚拟机: 192.168.80.103 controller(控制节点) 192.168.80.104 compute01(计算节点) 192.168.80.102 客户端

2、域名解析和关闭防火墙(所有机器上都做) 关闭防火墙 systemctl disable firewalld.service systemctl stop firewalld.service

关闭SElinux sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config setenforce 0

vi /etc/hosts //配置域名解析 192.168.80.100 controller 192.168.80.101 compute01

hostnamectl set-hostname controller hostnamectl set-hostname compute01

3、控制节点服务器: (1)安装软件包: yum install chrony -y (2)编辑 /etc/chrony.conf 文件,按照你环境的要求,对下面的键进行添加,末尾新增: server NTP_SERVER iburst 注:使用NTP服务器的主机名或者IP地址替换 NTP_SERVER 。配置支持设置多个 server 值。 allow 192.168.80.0/24 为了允许其他节点可以连接到控制节点的 chrony 后台进程 systemctl enable chronyd.service systemctl start chronyd.service (3)其它节点服务器 yum install chrony -y vi /etc/chrony.conf server controller iburst

systemctl enable chronyd.service systemctl start chronyd.service

验证: 在控制节点上执行以下命令: chronyc sources 注:在 Name/IP address 列的内容应显示NTP服务器的主机名或者IP地址。在 S 列的内容应该在NTP服务目前同步的上游服务器前显示 *。

在所有其他节点执行相同命令:chronyc sources

二、安装openstack库 在CentOS中, extras仓库提供用于启用 OpenStack 仓库的RPM包。 CentOS 默认启用extras仓库,因此可以直接安装用于启用OpenStack仓库的包。

yum install -y centos-release-openstack-queens.noarch //安装和openstack对应版本相关的仓库 yum -y upgrade //进行系统整体升级,升级完成后要重新启动操作系统

安装 OpenStack 客户端: yum install python-openstackclient init 6 //重启系统

1、安装数据库 大多数 OpenStack 服务使用 SQL 数据库来存储信息。 典型地,数据库运行在控制节点上。 安装软件包: yum install mariadb mariadb-server python2-PyMySQL -y

vi /etc/my.cnf.d/openstack.cnf //创建并编辑该/etc/my.cnf.d/openstack.cnf文件,添加以下内容: [mysqld] bind-address = 192.168.80.100 //设置监听地址 default-storage-engine = innodb //设置默认存储引擎 innodb_file_per_table = on //设置独享表空间 max_connections = 4096 //设置最大连接数 collation-server = utf8_general_ci //设置校对规则 character-set-server = utf8 //设置创建数据库时的默认字符集

systemctl enable mariadb systemctl start mariadb netstat -anpt | grep 3306

mysql_secure_installation 对数据库进行安全加固,操作如下: 回车——y——123——123——y——n——y——y

2、消息队列 OpenStack 使用 message queue 协调操作和各服务的状态信息。消息队列服务一般运行在控制节点上。OpenStack支持好几种消息队列服务包括 RabbitMQ, Qpid, 和 ZeroMQ。不过,大多数发行版本的OpenStack包支持特定的消息队列服务。

安装 RabbitMQ 消息队列服务,因为大部分发行版本都支持它。

安装包: yum install rabbitmq-server -y

启动消息队列服务并将其配置为随系统启动: systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service

rabbitmq-plugins enable rabbitmq_management //使用此插件实现web管理,如下图 在这里插入图片描述 netstat -anpt | grep 5672 //当开启rabbitmq_management,15672端口才会工作 注:15672:管理端口 ;25672:server间内部通信口 ;5672: client端通信口 在这里插入图片描述 测试:在浏览器中http://192.168.80.103:15672/ 在这里插入图片描述 用户和密码都是:guest

在字符端中: rabbitmqctl add_user openstack abc123 //创建并添加openstack用户,密码abc123 rabbitmqctl set_permissions openstack “." ".” “.*” //给openstack用户配置写和读权限 在这里插入图片描述 在这里插入图片描述 3、安装Memcached服务 认证服务认证缓存使用Memcached缓存令牌。缓存服务memecached运行在控制节点。

安装软件包: yum install memcached python-memcached -y

vi /etc/sysconfig/memcached //修改成以下内容: OPTIONS="-l 127.0.0.1,::1,controller"

启动Memcached服务,并且配置它随机启动。 systemctl enable memcached.service systemctl start memcached.service

netstat -anpt | grep 11211 查看11211是否在工作 在这里插入图片描述 4、安装etcd服务 OpenStack服务可以使用Etcd,这是一种分布式的可靠键值存储,用于分布式键锁定、存储配置、跟踪服务生命周期和其他场景。 yum install etcd -y

vi /etc/etcd/etcd.conf //修改内容如下: #[Member] ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS=“http://192.168.80.103:2380” ETCD_LISTEN_CLIENT_URLS=“http://192.168.80.103:2379” ETCD_NAME=“controller” #[Clustering] ETCD_INITIAL_ADVERTISE_PEER_URLS=“192.168.80.103:2380” ETCD_ADVERTISE_CLIENT_URLS=“http://192.168.80.103:2379” ETCD_INITIAL_CLUSTER=“controller=http://192.168.80.103:2380” ETCD_INITIAL_CLUSTER_TOKEN=“etcd-cluster-01” ETCD_INITIAL_CLUSTER_STATE=“new”

systemctl enable etcd systemctl start etcd

三、安装和配置openstack身份认证服务(代码名称keystone) 1.身份认证服务:为认证管理,授权管理和服务目录服务管理提供单点整合。其它OpenStack服务将身份认证服务当做通用统一API来使用。出于性能原因,这个配置部署Fernet令牌和Apache HTTP服务处理请求并使用Memcached存储tokens而不用SQL数据库。 注: Token是访问资源的钥匙。它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。每个Token都有一个有效期,Token只在有效期内是有效的。 先决条件:在配置 OpenStack 身份认证服务前,你必须创建一个数据库和管理员令牌。

用数据库连接客户端以 root 用户连接到数据库服务器 mysql -u root -p

创建 keystone 数据库 CREATE DATABASE keystone;

对keystone数据库授予恰当的权限 GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@‘localhost’ IDENTIFIED BY ‘abc123’; GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’ IDENTIFIED BY ‘abc123’; flush privileges; 退出数据库

运行以下命令来安装包。 yum install openstack-keystone httpd mod_wsgi -y 注:mod_wsgi的Apache HTTP服务器来服务认证服务请求,端口为5000和35357。缺省情况下,Kestone服务仍然监听这些端口。然而,可以手动禁用keystone服务。

cd /etc/keystone/ cp keystone.conf keystone.conf.bak //备份一下,以免之后步骤出错,无法还原

egrep -v “#|$” keystone.conf.bak > keystone.conf 去掉以#开头的和空行

vi keystone.conf 修改keystore配置文件,修改以下内容: [DEFAULT] [database] connection = mysql+pymysql://keystone:abc123@controller/keystone //定义初始管理令牌的值,使用刚生成的令牌值 [token] provider = fernet //配置Fernet UUID令牌的提供者

初始化身份认证服务的数据库: su -s /bin/sh -c “keystone-manage db_sync” keystone 注:忽略输出中任何不推荐使用的信息。 在这里插入图片描述 初始化Fernet keys: keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

引导身份服务: keystone-manage bootstrap --bootstrap-password abc123 –bootstrap-admin-url http://controller:35357/v3/ –bootstrap-internal-url http://controller:5000/v3/ –bootstrap-public-url http://controller:5000/v3/ –bootstrap-region-id RegionOne

2.配置 Apache HTTP 服务器 vi /etc/httpd/conf/httpd.conf 修改以下内容: ServerName controller

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ //创建 /usr/share/keystone/wsgi-keystone.conf链接文件

systemctl enable httpd.service //设置为开机启动 systemctl start httpd.service //启动httpd服务 netstat -anpt | grep http //80 35357 5000 端口监听 注:35357:用于管理,只有admin_role可以使用 5000:用于业务,普通用户使用 在这里插入图片描述 3.创建服务实体和API端点 身份认证服务提供服务的目录和他们的位置。每个你添加到OpenStack环境中的服务在目录中需要一个 service 实体和一些 API 端点 。 先决条件:默认情况下,身份认证服务数据库不包含支持传统认证和目录服务的信息。必须使用为身份认证服务创建的临时身份验证令牌用来初始化的服务实体和API端点。 使用环境变量以缩短命令行的长度。

export OS_USERNAME=admin export OS_PASSWORD=abc123 //管理员密码,之前设置的 export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:35357/v3 //配置端点URL export OS_IDENTITY_API_VERSION=3 // 配置认证 API 版本 env|grep ^OS //查看全局变量是否生效 在这里插入图片描述 4、创建域、项目、用户和角色 身份服务为每个OpenStack服务提供身份验证服务。身份验证服务使用域、项目、用户和角色的组合

本实验使用一个service项目,该项目为添加到环境中的每个服务包含一个惟一的用户。

(1)创建service项目 openstack project create --domain default –description “Service Project” service 在这里插入图片描述 (2)常规(非管理)任务应该使用无特权的项目和用户。 此处创建一个demo项目和用户 1)创建demo项目 openstack project create –domain default –description “Demo Project” demo 在这里插入图片描述 2)创建demo用户 openstack user create –domain default –password-prompt demo 在这里插入图片描述 3)创建user角色: openstack role create user 在这里插入图片描述 4)添加 user角色到demo项目和用户: openstack role add --project demo --user demo user 注:可以重复此过程来创建额外的项目和用户

(3)验证操作 在安装其他服务之前确认身份认证服务的操作。 注:在控制节点上执行以下操作。 1)取消临时OS_AUTH_URL和OS_PASSWORD环境变量 unset OS_AUTH_URL OS_PASSWORD

2)作为 admin 用户,请求认证令牌: 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 在这里插入图片描述 (4)作为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 token issue 在这里插入图片描述 注:这个命令使用demo 用户的密码和API端口5000,这样只会允许对身份认证服务API的常规(非管理)访问。

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

1、创建脚本 创建 admin 和 demo项目和用户创建客户端环境变量脚本。接下来的部分会引用这些脚本,为客户端操作加载合适的的凭证。 (1)创建openstack客户端环境脚本,编辑文件 admin-openrc 并添加如下内容: vi 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=abc123 export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2

(2)编辑文件 demo-openrc 并添加如下内容 vi 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=abc123 export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2

2、使用脚本 使用特定租户和用户运行客户端,可以在运行之前简单地加载相关客户端脚本。 (1)加载admin-openrc文件来身份认证服务的环境变量位置和admin项目和用户证书: . admin-openrc (2)请求认证令牌: openstack token issue 在这里插入图片描述 (3)加载demo-openrc文件来身份认证服务的环境变量位置和demo项目和用户证书: . demo-openrc (4)验证配置,请求认证令牌信息 openstack token issue 在这里插入图片描述 到此,身份认证服务keystone完成



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭