CentOS部署OpenStack过程-基础和认证服务

栏目: 服务器 · 发布时间: 4年前

内容简介:OpenStack服务使用SQL数据库来存储信息,数据库运行在控制节点上。Telemetry服务使用NoSQL数据库来存储信息,该服务运行在控制节点上。OpenStack使用
CentOS部署OpenStack过程-基础和认证服务
CentOS部署OpenStack过程-基础和认证服务
CentOS部署OpenStack过程-基础和认证服务

步骤

启用网络事件协议NTP

  1. 控制节点
# 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
复制代码
  1. 计算节点
# 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库

  1. 安装OpenStack库
    sudo yum install centos-release-openstack-ocata -y
  2. 安装OpenStack客户端
    sudo yum install python-openstackclient -y
  3. 安装SELinux策略文件
    sudo yum install openstack-selinux -y

数据库

MySQL数据库

OpenStack服务使用 SQL 数据库来存储信息,数据库运行在控制节点上。

  1. 安装软件
    sudo yum install yum install mariadb mariadb-server python2-PyMySQL -y
  2. 配置
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
复制代码
  1. 启动服务
# 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
复制代码
  1. 检查 MySQL 数据库安全

    mysql_secure_installation

NoSQL数据库

Telemetry服务使用NoSQL数据库来存储信息,该服务运行在控制节点上。

  1. 安装
    sudo yum install mongodb-server mongodb -y
  2. 配置
cd /etc
sudo vi mongod.conf
# modfiy
bind_ip=192.168.122.200
# limit log size 128M
smallfiles=true
复制代码
  1. 启动服务
# start
sudo systemctl start mongod
sudo systemctl enable mongod
复制代码

消息队列RabbitMQ

OpenStack使用 message_queue 协调操作和个服务的状态信息。消息队列服务运行在控制节点上。OpenStack支持多种消息队列服务,包括:RabbitMQ、Qpid和ZeroMQ。

  1. 安装
    sudo yum install rabbitmq-server -y
  2. 启动服务
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
复制代码
  1. 添加用户
# create rabbitmq user with passwd
rabbitmqctl add_user openstack Passwd
# grant privilege
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
复制代码

Memcached

认证服务认证缓存使用 Memcached 缓存令牌,缓存服务Memcached运行在控制节点上。

  1. 安装
    sudo yum install memcached python-memcached -y
  2. 启动服务
sudo systemctl start memcached
sudo systemctl enable memcached
复制代码

认证服务

当openStack服务收到来自用户的请求时,该服务询问Identity服务,验证该用户是否有权限进行此次请求。身份服务包含的组件有:服务器、驱动、模块。

在安装认证服务前,需要线创建数据库和管理员令牌。

安装条件

  1. 创建数据库
# 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;
复制代码
  1. 生成一个随机值在初始配置中作为系统管理员令牌

    openssl rand -hex 10 记下刚生成的随机码: e7d81bfae3c2884d8ea1

安装认证服务

  1. 安装
    sudo yum install openstack-keystone httpd mod_wsgi -y 使用 mod_wsgi 来服务认证服务请求,端口号为 5000 35357
  2. 配置
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
复制代码
  1. 初始化身份认证数据库
    su -s /bin/sh -c "keystone-manage db_sync" keystone
  2. 初始化Fernet Keys
    keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

配置Apache服务器

  1. 编辑 httpd.conf 文件*/etc/httpd/conf/httpd.conf* ServerName ops-cont
  2. 创建 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>
复制代码
  1. 启动服务
# 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端点。

  1. 配置认证令牌为环境变量
    export OS_TOKEN=e7d81bfae3c2884d8ea1
  2. 配置端点URL
    export OS_URL=http://ops-cont:35357/v3
  3. 配置认证API版本
    export OS_IDENTITY_API_VERSION=3

创建服务实体和API端点

在OpenStack环境中,认证服务管理服务目录,使用这个目录来决定环境中可用的服务。

OpenStack使用三个API端点代表每种服务: admin , internalpublic 。默认情况下,管理API端点允许修改用户和租户而内部和公众APIs不允许这些操作。

公众API是为了让用户管理自己的云在互联网上是可见的;内部API网络回被限制在包含OpenStack服务的主机上。

  1. 创建服务实体和身份认证服务
openstack service create \
--name keystone --description "OpenStack Identity" identity
复制代码
CentOS部署OpenStack过程-基础和认证服务

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
复制代码
CentOS部署OpenStack过程-基础和认证服务

创建域、项目、用户和角色

创建的角色都映射到每个OpenStack服务配置文件目录下的 policy.json 文件中。

  1. 创见域 default
openstack domain create --description "Default Domain" default
复制代码
  1. 创建项目、用户和角色
# 创建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
复制代码
CentOS部署OpenStack过程-基础和认证服务

3. 创建每个服务独有用户的service项目

openstack project create --domain default \
--description "Service Project" service
复制代码
CentOS部署OpenStack过程-基础和认证服务

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
复制代码

验证操作

在安装其他服务之前需要在控制节点上确认身份认证服务。

  1. 关闭临时认证令牌服务
cd /etc/keystone
vi keystone-paste.ini
# remove admin_token_auth from below
[pipeline:public_api]
[pipiline:admin_api]
[pipeline:api_v3]
复制代码
  1. 重置环境变量
    unset OS_URL OS_TOKEN
  2. 请求用户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
复制代码
  1. 请求用户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过程-基础和认证服务

以上所述就是小编给大家介绍的《CentOS部署OpenStack过程-基础和认证服务》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Sass and Compass in Action

Sass and Compass in Action

Wynn Netherland、Nathan Weizenbaum、Chris Eppstein、Brandon Mathis / Manning Publications / 2013-8-2 / USD 44.99

Written by Sass and Compass creators * Complete Sass language reference * Covers prominent Compass community plug-ins * Innovative approach to creating stylesheets Cascading Style Sheets paint the we......一起来看看 《Sass and Compass in Action》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具