OpenStack之keystone(身份认证服务) |
您所在的位置:网站首页 › 镇宅葫芦的摆放位置图片大全大图 › OpenStack之keystone(身份认证服务) |
安装部署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管理,如下图 在字符端中: rabbitmqctl add_user openstack abc123 //创建并添加openstack用户,密码abc123 rabbitmqctl set_permissions openstack “." ".” “.*” //给openstack用户配置写和读权限 安装软件包: 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是否在工作 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 注:忽略输出中任何不推荐使用的信息。 引导身份服务: 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:用于业务,普通用户使用 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 //查看全局变量是否生效 本实验使用一个service项目,该项目为添加到环境中的每个服务包含一个惟一的用户。 (1)创建service项目 openstack project create --domain default –description “Service Project” service (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 五、创建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 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |