centos系统openstack服务器,CentOS部署OpenStack过程-基础和认证服务

基本信息

306f05d466fb

Openstack结构图

306f05d466fb

OpenStack网络结构

306f05d466fb

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

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

Require all granted

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

Require all granted

启动服务

# 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

306f05d466fb

openstack-create-service

所有端点和默认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

306f05d466fb

create-region

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

创建的角色都映射到每个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

306f05d466fb

openstack-create-domain-project-user-role

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

openstack project create --domain default \

--description "Service Project" service

306f05d466fb

openstack-project-create-service

创建非管理无特权的项目和用户

# 创建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

306f05d466fb

openstack-user-auth-token

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值