一、实验目的:
1、掌握OpenStack环境搭建的基础工作
2、掌握keystone的安装与配置方法
3、掌握keystone基础接口的调用方法
二、实验步骤:
1、利用最初创建的快照克隆两台CentOS服务器,克隆的两台分别修改主机名为xxx-controller和xxx-compute1,修改IP地址为192.168.xx.10和192.168.xx.20。
Controller:
Compute1:
2、在两台主机中修改配置文件/etc/hosts,分别添加xxx-controller和xxx- compute1和IP地址之间的映射
3、在controller节点上ping两个主机名,查看能否ping通。
可以ping通
4、在两个节点上分别安装时间服务,在controller设置为服务器,compute1节点为时间客户端。
控制节点controller
安装服务
编辑/etc/chrony.conf文件
重启服务并设置开机自启动
Compute1节点
安装chrony
编辑chrony.conf文件( compute1节点引用controller节点进行时钟同步 )
在controller节点运行chronyc sources命令
在compute1节点运行chronyc sources命令
5、在controller和compute1上安装OpenStack最新的源
安装Rocky版本,运行yum -y install centos-release-openstack-rocky
完成安装后在所有节点升级软件包
#yum upgrade
安装OpenStack客户端:
yum -y install python-openstackclient
6、在controller安装数据库mariadb,安装后并修改配置文件,然后启动数据库服务器,并设置开机启动。
安装和配置的部件
#yum install mariadb mariadb-server python2-PyMySQL
创建并编辑/etc/my.cnf.d/openstack.cnf文件( 尽量备份/etc/my.cnf.d/文件夹下现有配置文件 )并完成以下操作:
启动数据库服务,并将其配置为在系统引导时启动:
通过运行mysql_secure_installation 脚本来保护数据库服务。特别是,为数据库root帐户选择合适的密码 :
7、在controller上安装消息队列服务rabbitmq,然后启动服务,并设置开机启动,然后为OpenStack创建用户,用户名为自己姓名拼音。
安装软件包:
启动消息队列服务,并将其配置为在系统引导时启动:
添加openstack用户:
8、在controller节点上安装Memcached服务,然后启动服务并设置开机启动。
安装软件包
编辑/etc/sysconfig/memcached文件并完成以下操作:
配置服务以使用控制器节点的管理IP地址。这是为了允许其他节点通过管理网络进行访问:
#vim /etc/sysconfig/memcached
启动Memcached服务,并将其配置为在系统启动时启动:
9、在controller上安装keystone服务。
安装组件
10、修改keystone配置文件。
在[database]部分中,配置数据库访问:
在[token]部分中,配置Fernet token提供者
11、进入数据库,为keystone创建数据库,并创建访问用户以及对用户授权。
使用数据库访问客户端以root用户身份连接到数据库服务器
创建keystone数据库:
授予对keystone数据库的适当访问权限:
MariaDB [(none)]>GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '此处填自己的密码';
MariaDB [(none)]>GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '此处填自己的密码';
12、初始化keystone数据库,参考命令
su -s /bin/sh -c "keystone-manage db_sync" keystone
13、初始化keys,参考命令
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--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
14、创建域、项目、用户和角色,参考命令
创建Service Project:
#penstack project create --domain default \
--description "Service Project" service
创建Demo Project:
#openstack project create --domain default \
--description "Demo Project" demo
创建 demo 用户:
#openstack user create --domain default \
--password-prompt demo
创建user角色:
#openstack role create user
将用户租户角色连接起来:
#openstack role add --project demo --user demo user
创建域:
创建demo project:
创建demo user:
创建role:
将myrole角色添加到mydemo项目和myuser用户:
openstack role add --project mydemo --user myuser myrole
15、验证用户信息
16、创建OpenStack客户端环境脚本
创建脚本文件admin-openrc
请求一个身份验证token:
下次直接运行脚本文件就可以导入环境变量了