内容简介:OpenStack服务使用SQL数据库来存储信息,数据库运行在控制节点上。Telemetry服务使用NoSQL数据库来存储信息,该服务运行在控制节点上。OpenStack使用
步骤
启用网络事件协议NTP
- 控制节点
# install sudo yum install chrony -y # config sudo vi /etc/chrony.conf # modify server Server_Name or IP iburst allow 192.168.122.0/24 # start service sudo systemctl start chronyd sudo systemctl enable chronyd 复制代码
- 计算节点
# install sudo yum install chrony -y # config sudo vi /etc/chrony.conf # modify 注释掉除server外的字段 server cont_server iburst # start service sudo systemctl start chronyd sudo systemctl enable chronyd 复制代码
安装OpenStack库
- 安装OpenStack库
sudo yum install centos-release-openstack-ocata -y
- 安装OpenStack客户端
sudo yum install python-openstackclient -y
- 安装SELinux策略文件
sudo yum install openstack-selinux -y
数据库
MySQL数据库
OpenStack服务使用 SQL 数据库来存储信息,数据库运行在控制节点上。
- 安装软件
sudo yum install yum install mariadb mariadb-server python2-PyMySQL -y
- 配置
cd /etc/my.cnf.d sudo vi mariadb.cnf # mysqld part [mysqld] # change ip to controller node ip address bind-address=192.168.122.200 # set store-engine and character default-storage-engine = innodb innodb_file_per_table max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8 复制代码
- 启动服务
# start sudo systemctl start mariadb sudo systemctl enable mariadb # set firewall rule su root firewall-cmd --zone=public --add-rich-rule='rule famliy=ipv4 source address=192.168.122.100 port port=3306 protocol=tcp accept' --permanent firewall-cmd --reload 复制代码
-
检查 MySQL 数据库安全
mysql_secure_installation
NoSQL数据库
Telemetry服务使用NoSQL数据库来存储信息,该服务运行在控制节点上。
- 安装
sudo yum install mongodb-server mongodb -y
- 配置
cd /etc sudo vi mongod.conf # modfiy bind_ip=192.168.122.200 # limit log size 128M smallfiles=true 复制代码
- 启动服务
# start sudo systemctl start mongod sudo systemctl enable mongod 复制代码
消息队列RabbitMQ
OpenStack使用 message_queue 协调操作和个服务的状态信息。消息队列服务运行在控制节点上。OpenStack支持多种消息队列服务,包括:RabbitMQ、Qpid和ZeroMQ。
- 安装
sudo yum install rabbitmq-server -y
- 启动服务
sudo systemctl start rabbitmq-server sudo systemctl enable rabbitmq-server 复制代码
- 添加用户
# create rabbitmq user with passwd rabbitmqctl add_user openstack Passwd # grant privilege rabbitmqctl set_permissions openstack ".*" ".*" ".*" 复制代码
Memcached
认证服务认证缓存使用 Memcached 缓存令牌,缓存服务Memcached运行在控制节点上。
- 安装
sudo yum install memcached python-memcached -y
- 启动服务
sudo systemctl start memcached sudo systemctl enable memcached 复制代码
认证服务
当openStack服务收到来自用户的请求时,该服务询问Identity服务,验证该用户是否有权限进行此次请求。身份服务包含的组件有:服务器、驱动、模块。
在安装认证服务前,需要线创建数据库和管理员令牌。
安装条件
- 创建数据库
# login Mysql mysql -u root -p # create keystone database create database keystone; # grant privilege on keystone grant all privileges on keystone.* to 'ks_db'@'localhost' identified by 'Passwd'; grant all privileges on keystone.* to 'ks_db'@'192.168.122.%' identified by 'passwd'; flush privileges; 复制代码
-
生成一个随机值在初始配置中作为系统管理员令牌
openssl rand -hex 10
记下刚生成的随机码:e7d81bfae3c2884d8ea1
安装认证服务
- 安装
sudo yum install openstack-keystone httpd mod_wsgi -y
使用mod_wsgi
来服务认证服务请求,端口号为 5000 35357 - 配置
cd /etc/keystone sudo vi keystone.conf # modify [default] replace with copybord admin_token = e7d81bfae3c2884d8ea1 # modify [database] replace db_passwd with mysql database passwd # replace db_server with db-server-name or ip # mysql+pymysql://db_user:db_passwd@db-server/db_name connection = mysql+pymysql://ks_db:db_passwd@db-server/keystone # modify [token] provider = fernet 复制代码
- 初始化身份认证数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
- 初始化Fernet Keys
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
配置Apache服务器
- 编辑
httpd.conf
文件*/etc/httpd/conf/httpd.conf*ServerName ops-cont
- 创建
wsgi-keystone.conf
文件
cd /etc/httpd/conf.d && sudo touch wsgi-keystone.conf # add Listen 5000 Listen 35357 <VirtualHost *:5000> WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP} WSGIProcessGroup keystone-public WSGIScriptAlias / /usr/bin/keystone-wsgi-public WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On ErrorLogFormat "%{cu}t %M" ErrorLog /var/log/httpd/keystone-error.log CustomLog /var/log/httpd/keystone-access.log combined <Directory /usr/bin> Require all granted </Directory> </VirtualHost> <VirtualHost *:35357> WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP} WSGIProcessGroup keystone-admin WSGIScriptAlias / /usr/bin/keystone-wsgi-admin WSGIApplicationGroup %{GLOBAL} WSGIPassAuthorization On ErrorLogFormat "%{cu}t %M" ErrorLog /var/log/httpd/keystone-error.log CustomLog /var/log/httpd/keystone-access.log combined <Directory /usr/bin> Require all granted </Directory> </VirtualHost> 复制代码
- 启动服务
# start sudo systemctl start httpd sudo systemctl enable httpd # add firewall rule su root firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=5000/tcp --permanent firewall-cmd --zone=public --add-port=35357/tcp --permanent firewall-cmd --reload 复制代码
创建服务实体和API端点
身份认证服务提供服务的目录和他们的位置,每个添加到OpenStack环境中的服务在目录中需要一个 service 实体和一些 API_endpoints 。
安装条件
默认情况下,身份认证服务数据库不包含支持传统认证和目录服务的信息,需要使用临时身份验证令牌来初始化服务实体和API端点。
- 配置认证令牌为环境变量
export OS_TOKEN=e7d81bfae3c2884d8ea1
- 配置端点URL
export OS_URL=http://ops-cont:35357/v3
- 配置认证API版本
export OS_IDENTITY_API_VERSION=3
创建服务实体和API端点
在OpenStack环境中,认证服务管理服务目录,使用这个目录来决定环境中可用的服务。
OpenStack使用三个API端点代表每种服务: admin
, internal
, public
。默认情况下,管理API端点允许修改用户和租户而内部和公众APIs不允许这些操作。
公众API是为了让用户管理自己的云在互联网上是可见的;内部API网络回被限制在包含OpenStack服务的主机上。
- 创建服务实体和身份认证服务
openstack service create \ --name keystone --description "OpenStack Identity" identity 复制代码
2. 所有端点和默认 RegionOne
区域都使用管理网络
identity
与创建的服务实体认证中的
identity
对应
# create public API openstack endpoint create --region RegiOne \ identity public http://ops-cont:5000/v3 # create internal API openstack endpoint create --region RegionOne \ identity internal http://ops-cont:5000/v3 # create admin API openstack endpoint create --region RegionOne \ identity admin http://ops-cont:5000/v3 复制代码
创建域、项目、用户和角色
创建的角色都映射到每个OpenStack服务配置文件目录下的 policy.json
文件中。
- 创见域
default
openstack domain create --description "Default Domain" default 复制代码
- 创建项目、用户和角色
# 创建admin项目,项目要包含在域中 openstack project create --domain default \ --description "Admin Project" admin # 创建用户,输入用户密码 openstack user create --domain default \ --password-prompt admin # 创建角色 openstack role create admin # 将角色添加到用户上,执行后无输出 openstack role add --project admin --user admin admin 复制代码
3. 创建每个服务独有用户的service项目
openstack project create --domain default \ --description "Service Project" service 复制代码
4. 创建非管理无特权的项目和用户
# 创建demo项目 openstack project create --domain default \ --description "Demo Project" demo # 创建用户 openstack user create --domain default \ --password-prompt demo # 创建角色 openstack role create user # 将角色添加到用户上 openstack role add --project demo --user demo user 复制代码
验证操作
在安装其他服务之前需要在控制节点上确认身份认证服务。
- 关闭临时认证令牌服务
cd /etc/keystone vi keystone-paste.ini # remove admin_token_auth from below [pipeline:public_api] [pipiline:admin_api] [pipeline:api_v3] 复制代码
- 重置环境变量
unset OS_URL OS_TOKEN
- 请求用户admin认证令牌,输入用户认证密码
openstack --os-auth-url http://ops-cont:35357/v3 \ --os-project-domain-name default \ --os-user-domain-name default \ --os-project-name admin \ --os-username admin token issue 复制代码
- 请求用户demo认证令牌,注意与用户admin区分端口号
openstack --os-auth-url http://ops-cont:5000/v3 \ --os-project-domain-name default \ --os-user-domain-name default \ --os-project-name demo \ --os-username demo token issue 复制代码
以上所述就是小编给大家介绍的《CentOS部署OpenStack过程-基础和认证服务》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- OpenStack搭建企业私有云 一:认证服务
- 移动化时代下的统一认证服务
- hadoop开启Service Level Authorization 服务级认证-SIMPLE认证-过程中遇到的坑
- 通过 Istio 重新实现微服务 (五):认证和授权
- 微服务统一认证与授权的 Go 语言实现
- 基于spring-security-oauth2实现资源服务器和认证服务器对接(持续更新)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人人都是产品经理
苏杰 / 电子工业出版社 / 2014-9-1 / CNY 55.00
《人人都是产品经理(纪念版)》为经典畅销书《人人都是产品经理》的内容升级版本。对于大量成长起来的优秀互联网产品经理,为数不少想投身产品工作的其他岗位从业者,以及更多有志从事这一职业的学生而言,这本书曾是他们记忆深刻的启蒙读物、思想基石和行动手册。作者以分享经历与体会为出发点,以“朋友间聊聊如何做产品”的语气,将自己数年产品工作过程中学到的思维方法与做事方式,及其它们对自己的帮助,系统性地梳理为用户......一起来看看 《人人都是产品经理》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
SHA 加密
SHA 加密工具