目录
- 一、环境
- 二、部署思路
-
- 使用手动部署的模式搭建OpenStack的思路:
- 三、实际部署操作
-
- 创建数据库实例和数据库用户
- 安装、配置keystone、数据库、apache
- 初始化认证服务数据库
- 初始化fernet 密钥存储库
- 配置bootstrap身份认证服务
- 配置Apache HTTP服务器
- 创建配置文件
- 配置管理员账户的环境变量
- 创建OpenStack 域、项目、用户和角色
- 验证
一、环境
控制节点ct
CPU | 双核双线程-CPU虚拟化开启 |
---|---|
内存 | 8G |
硬盘 | 300G+1024G(CEPH块存储) |
双网卡 | VM1-(局域网)192.168. 86.11/NAT-192.168.109.12 |
操作系统 | Centos 7.6(1810)-最小化安装 |
控制节点c1
CPU | 双核双线程-CPU虚拟化开启 |
---|---|
内存 | 8G |
硬盘 | 300G+1024G(CEPH块存储) |
双网卡 | VM1-(局域网)192.168.86.22 /NAT-192.168.109.22- |
操作系统 | Centos 7.6(1810)-最小化安装 |
控制节点c2
CPU | 双核双线程-CPU虚拟化开启 |
---|---|
内存 | 8G |
硬盘 | 300G+1024G(CEPH块存储) |
双网卡 | VM1-(局域网)192.168.86.33 /NAT-192.168.109.32 |
操作系统 | Centos 7.6(1810)-最小化安装 |
二、部署思路
使用手动部署的模式搭建OpenStack的思路:
- 1、分模块部署
- 2、部署keystone模块的基础环境(下载依赖包、组件包、第三方工具/插件)
- 3、创建、开启此模块的功能(以keystone为例,创建并初始化认证数据库、修改配置文件、初始化密钥-fernet格式、配置身份认证服务)
- 4、验证
三、实际部署操作
ct-192.168.109.12
创建数据库实例和数据库用户
mysql -u root -p
create database keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
flush privileges;
exit

安装、配置keystone、数据库、apache
yum -y install openstack-keystone httpd mod_wsgi
cp -a /etc/keystone/keystone.conf{,.bak}
grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf
#通过pymysql模块访问mysql,指定用户名密码、数据库的域名、数据库名
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:[email protected]/keystone
openstack-config --set /etc/keystone/keystone.conf token provider fernet
初始化认证服务数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
初始化fernet 密钥存储库
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
配置bootstrap身份认证服务
keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://ct:5000/v3/ \
--bootstrap-internal-url http://ct:5000/v3/ \
--bootstrap-public-url http://ct:5000/v3/ \
--bootstrap-region-id RegionOne #指定一个区域名称
配置Apache HTTP服务器
echo "ServerName controller" >> /etc/httpd/conf/httpd.conf
创建配置文件
安装完mod_wsgi包后,会生成 wsgi-keystone.conf 这个文件,文件中配置了虚拟主机及监听了5000端口,mod_wsgi就是python的网关
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
#开启apache服务
systemctl enable httpd
systemctl start httpd
配置管理员账户的环境变量
cat >> ~/.bashrc << EOF
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://ct:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF
source ~/.bashrc
#通过配置环境变量,可以使用openstack命令进行一些操作
openstack user list
创建OpenStack 域、项目、用户和角色
openstack project create --domain default --description "Service Project" service
#查看openstack 项目列表
openstack project list
#角色创建
openstack role create user
#查看openstack 角色列表
openstack role list
# admin为管理员
# member为 租户
# user:用户
验证
查看是否可以不指定密码就可以获取到token信息(验证认证服务)