云计算技术之 OpenStack

本文详细介绍了云计算的基本概念、特点和服务模式,包括公有云、私有云和混合云。接着深入讲解了OpenStack,一个开源的云计算软件,及其在IaaS领域的应用。OpenStack具有广泛的市场趋势和大型用户,如NASA和惠普云。文中还阐述了OpenStack的项目构成,如Keystone、Glance、Nova等,并提供了基础配置服务的步骤,包括数据库安装、消息队列部署和Memcached服务等。
摘要由CSDN通过智能技术生成

.1 云计算简介

云计算(英语:cloud
computing
),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。

在这里插入图片描述

云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变。用户不再需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展而且经常是虚拟化的资源。

1.1.1 云计算的特点

互联网上的云计算服务特征和自然界的云、水循环具有一定的相似性,因此,云是一个相当贴切的比喻。根据技术研究院的定义如下。

云计算服务应该具备以下几条特征:

🥦 随需应变自助服务。

🥦 随时随地用任何网络设备访问。

🥦 多人共享资源池。

🥦 快速重新部署灵活度。

🥦 可被监控与量测的服务。

一般认为还有如下特征:

🍀 基于虚拟化技术快速部署资源或获得服务。

🍀 减少用户终端的处理负担。

🍀 降低了用户对于IT专业知识的依赖。

1.1.2 云计算服务模式

云计算定义中明确了三种服务模式:

在这里插入图片描述

图 - 服务模式详情

软件即服务(SaaS):

** **即Software-as-a-service;

消费者使用应用程序,但并不掌控操作系统、硬件或运作的网络基础架构。是一种服务观念的基础,软件服务供应商,以租赁的概念提供客户服务,而非购买,比较常见的模式是提供一组账号密码。

例如:Microsoft CRM与Salesforce.com。

平台即服务(PaaS):

** **即Platform-as-a-service;

消费者使用主机操作应用程序。消费者掌控运作应用程序的环境(也拥有主机部分掌控权),但并不掌控操作系统、硬件或运作的网络基础架构。平台通常是应用程序基础架构。

例如:Google App Engine。

基础设施即服务(IaaS):

** **即Infrastructure-as-a-service;

消费者使用“基础计算资源”,如处理能力、存储空间、网络组件或中间件。消费者能掌控操作系统、存储空间、已部署的应用程序及网络组件(如防火墙、负载平衡器等),但并不掌控云基础架构。

例如:Amazon AWS、Rackspace。

关于这三种服务模式更多详情可以参考:https://www.zhihu.com/question/21641778

1.1.3 云计算的类型

在这里插入图片描述

图 - 云类型示例

🔊 公有云(Public Cloud)

简而言之,公用云服务可通过网络及第三方服务供应者,开放给客户使用,“公有”一词并不一定代表“免费”,但也可能代表免费或相当廉价,公用云并不表示用户数据可供任何人查看,公用云供应者通常会对用户实施使用访问控制机制,公用云作为解决方案,既有弹性,又具备成本效益。

🔊 私有云(Private Cloud)

私有云具备许多公用云环境的优点,例如弹性、适合提供服务,两者差别在于私有云服务中,数据与程序皆在组织内管理,且与公用云服务不同,不会受到网络带宽、安全疑虑、法规限制影响;此外,私有云服务让供应者及用户更能掌控云基础架构、改善安全与弹性,因为用户与网络都受到特殊限制。

🔊 混合云(Hybrid Cloud)

混合云结合公用云及私有云,这个模式中,用户通常将非企业关键信息外包,并在公用云上处理,但同时掌控企业关键服务及数据。

1.1.4 为什么要选择云计算

1、有效解决硬件单点故障问题

2、按需增/减硬件资源

3、BGP线路解决南北互通问题

4、按需增/减带宽

5、更有吸引力的费用支付方式

详情查看《云计算之路:为什么要选择云计算》

https://www.cnblogs.com/cmt/archive/2013/02/27/why-into-cloud.html

1.2 OpenStack简介

在这里插入图片描述

OpenStack是一个美国宇航局和Rackspace合作研发的云计算软件,以Apache授权条款2.0授权,并且是一个自由软件和开放源代码项目。

OpenStack是基础设施即服务(IaaS)软件,让任何人都可以自行创建和提供云计算服务。

此外,OpenStack也用作创建防火墙内的“私有云”(Private
Cloud),提供机构或企业内各部门共享资源。

1.2.1 市场趋向

Rackspace以OpenStack为基础的私有云业务每年营收7亿美元,增长率超过了20%。

OpenStack虽然有些方面还不太成熟,然而它有全球大量的组织支持,大量的开发人员参与,发展迅速。国际上已经有很多使用OpenStack搭建的公有云、私有云、混合云,例如:RackspaceCloud、惠普云、MercadoLibre的IT基础设施云、AT&T的CloudArchitec、戴尔的OpenStack解决方案等等。而在国内OpenStack的热度也在逐渐升温,华胜天成、高德地图、京东、阿里巴巴、百度、中兴、华为等都对OpenStack产生了浓厚的兴趣并参与其中。

自2010年创立以来,已发布10个版本。其中Icehouse版本有120个组织、1202名代码贡献者参与,而最新的是Juno版本。OpenStack很可能在未来的基础设施即服务(IaaS)资源管理方面占据领导位置,成为公有云、私有云及混合云管理的“云操作系统”标准

1.2.2 大型用户

美国国家航空航天局

加拿大半官方机构CANARIE网络的DAIR(Digital Accelerator for Innovation and
Research)项目,向大学与中小型企业提供研究和开发云端运算环境。

惠普云(使用Ubuntu Linux)

MercadoLibre的IT基础设施云,现时以OpenStack管理超过6000 台虚拟机器。

AT&T的“Cloud
Architect”
,将在美国的达拉斯、圣地亚哥和新泽西州提供对外云端服务。

1.2.3 OpenStack项目介绍

在这里插入图片描述

图 - 各项目关系图

各组件的详细说明:

服务类型 项目名称 描述
Dashboard Horizon 提供web界面 提供了一个基于web的自服务门户,与OpenStack底层服务交互,诸如启动一个实例,分配IP地址以及配置访问控制。
Compute Nova 计算节点 在OpenStack环境中计算实例的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。
Networking Neutron 网络服务 确保为其它OpenStack服务提供网络连接即服务,比如OpenStack计算。为用户提供API定义网络和使用。基于插件的架构其支持众多的网络提供商和技术。
存储
Object Storage Swift 对象存储 通过一个 RESTful,基于HTTP的应用程序接口存储和任意检索的非结构化数据对象。它拥有高容错机制,基于数据复制和可扩展架构。它的实现并像是一个文件服务器需要挂载目录。在此种方式下,它写入对象和文件到多个硬盘中,以确保数据是在集群内跨服务器的多份复制。
Block Storage Cinder 块存储 为运行实例而提供的持久性块存储。它的可插拔驱动架构的功能有助于创建和管理块存储设备。
共享服务
Identity service Keystone 认证节点 为其他OpenStack服务提供认证和授权服务,为所有的OpenStack服务提供一个端点目录。
Image service Glance 镜像服务 存储和检索虚拟机磁盘镜像,OpenStack计算会在实例部署时使用此服务。
Telemetry Ceilometer 计费 为OpenStack云的计费、基准、扩展性以及统计等目的提供监测和计量。
高层次服务
Orchestration Heat Orchestration服务支持多样化的综合的云应用,通过调用OpenStack-native REST API和CloudFormation-compatible Query API,支持:term:`HOT <Heat Orchestration Template (HOT)>`格式模板或者AWS CloudFormation格式模板

1.2.4 系统环境说明

本文档使用主机环境均安装官方推荐进行设置:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment.html

controller节点说明

[root@controller ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@controller ~]# uname -r

3.10.0-327.el7.x86_64

[root@controller ~]# sestatus

SELinux status: disabled

[root@controller ~]# systemctl status firewalld.service

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor
preset: enabled)

Active: inactive (dead)

[root@controller ~]# hostname -I

10.0.0.11 172.16.1.11

[root@controller ~]# tail -3 /etc/hosts

10.0.0.11 controller

10.0.0.31 compute1

10.0.0.32 compute2

compute1与compute2节点的配置与controller相同。

系统安装参考文档:http://www.cnblogs.com/clsn/p/8338099.html#_label1

系统优化说明:http://www.cnblogs.com/clsn/p/8338099.html#_label4

注意点:网卡的名称修改

1.3 OpenStack基础配置服务

注:本文中所使用的用户及密码都参考该文档,并且高度一致。

https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-security.html

OpenStack 相关服务安装流程(keystone服务除外):

1)在数据库中,创库,授权;

2)在keystone中创建用户并授权;

3)在keystone中创建服务实体,和注册API接口;

4)安装软件包;

5)修改配置文件(数据库信息);

6)同步数据库;

7)启动服务。

1.3.1 OpenStack服务部署顺序

*[1]
基础环境准备 *https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment.html

*[2] 部署 Keystorne
认证服务,token *https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/keystone.html

*[3] 部署 Glance
镜像服务 *https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/glance.html

*[4] 部署 Nova
计算服务(kvm) *https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/nova.html

*[5] 部署 Neutron
网络服务 *https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron.html

*[6] 部署 Horizon
提供web界面 *https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon.html

*[7] 部署 Cinder
块存储(硬盘) *https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon.html

1.3.2 配置本地yum源

首先将镜像挂载到 /mnt

mount /dev/cdrom /mnt

echo ‘mount /dev/cdrom /mnt’ > /etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.local

创建repo文件

cat >/etc/yum.repos.d/local.repo<<-‘EOF’

[local]

name=local

baseurl=file:///mnt

gpgcheck=0

[openstack]

name=openstack-mitaka

baseurl=file:///opt/repo

gpgcheck=0

EOF

生成yum缓存

[root@controller repo]# yum makecache

1.3.3 安装NTP时间服务

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-ntp.html

控制节点(提供时间服务,供其他机器同步)

安装软件

yum install chrony -y

配置控制节点,修改第22行

[root@controller ~]# vim /etc/chrony.conf

···

# Allow NTP client access from local network.

allow 10/8

启动,设置自启动

systemctl enable chronyd.service

systemctl start chronyd.service

计算节点(配置chrony客户端)

安装软件

yum install chrony -y

配置文件第三行,删除无用的上游服务器。

使用sed命令修改

sed -ri.bak ‘/server/s/^/#/g;2a server 10.0.0.11 iburst’ /etc/chrony.conf

配置文件说明:

[root@compute1 ~]# vim /etc/chrony.conf

# Use public servers from the pool.ntp.org project.

# Please consider joining the pool (http://www.pool.ntp.org/join.html).

server 10.0.0.11 iburst

启动,设置自启动

systemctl enable chronyd.service

systemctl start chronyd.service

1.3.4 OpenStack的包操作(添加新的计算节点时需要安装)

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-packages.html

安装 OpenStack 客户端:

yum -y install python-openstackclient

RHEL 和 CentOS 默认启用了 SELinux

# 安装 openstack-selinux 软件包以便自动管理 OpenStack 服务的安全策略

yum -y install openstack-selinux

1.3.5 SQL数据库安装(在控制节点操作)

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-sql-database.html

安装mariadb软件包:

[root@controller ~]# yum -y install mariadb mariadb-server python2-PyMySQL

创建配置文件

cat > /etc/my.cnf.d/openstack.cnf <<-‘EOF’

[mysqld]

bind-address = 10.0.0.11

default-storage-engine = innodb

innodb_file_per_table

max_connections = 4096

collation-server = utf8_general_ci

character-set-server = utf8

EOF

启动mariadb

systemctl enable mariadb.service

systemctl start mariadb.service

执行mariadb安全初始化

为了保证数据库服务的安全性,运行``mysql_secure_installation``脚本。特别需要说明的是,为数据库的root用户设置一个适当的密码。

[root@controller ~]# mysql_secure_installation

···

Enter current password for root (enter for none):

OK, successfully used password, moving on…

Set root password? [Y/n] n

… skipping.

Remove anonymous users? [Y/n] Y

… Success!

Disallow root login remotely? [Y/n] Y

… Success!

Remove test database and access to it? [Y/n] Y

- Dropping test database…

… Success!

- Removing privileges on test database…

… Success!

Reload privilege tables now? [Y/n] Y

… Success!

Thanks for using MariaDB!

1.3.6 NoSQL 数据库

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-nosql-database.html

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

向导中使用MongoDB。

在ceilometer中计费使用。由于本次搭建的为私有云平台,私有云不需要计费服务,这里就不进行安装了。

1.3.7 消息队列部署

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-messaging.html

安装消息队列软件

[root@controller ~]# yum -y install rabbitmq-server

启动消息队列服务并将其配置为随系统启动:

systemctl enable rabbitmq-server.service

systemctl start rabbitmq-server.service

添加 openstack 用户:

[root@controller ~]# rabbitmqctl add_user openstack RABBIT_PASS

Creating user “openstack” …

用合适的密码替换 RABBIT_DBPASS。

给``openstack``用户配置写和读权限:

[root@controller ~]# rabbitmqctl set_permissions openstack “.*” “.*” “.*”

Setting permissions for user “openstack” in vhost “/” …

1.3.8 Memcached服务部署

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-memcached.html

安装memcached软件包

[root@controller ~]# yum -y install memcached python-memcached

配置memcached配置文件

[root@controller ~]# cat /etc/sysconfig/memcached

PORT=“11211”

USER=“memcached”

MAXCONN=“1024”

CACHESIZE=“64”

OPTIONS="-l 10.0.0.11" <–修改位置,配置为memcached主机地址或网段信息

启动Memcached服务,并且配置它随机启动。

systemctl enable memcached.service

systemctl start memcached.service

1.3.9 验证以上部署的服务是否正常

查看端口信息

[root@controller ~]# netstat -lntup

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 17164/beam

tcp 0 0 10.0.0.11:3306 0.0.0.0:* LISTEN 16985/mysqld

tcp 0 0 10.0.0.11:11211 0.0.0.0:* LISTEN 17962/memcached

tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 1/systemd

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1402/sshd

tcp6 0 0 :::5672 ::😗 LISTEN 17164/beam

tcp6 0 0 :::22 ::😗 LISTEN 1402/sshd

udp 0 0 0.0.0.0:123 0.0.0.0:* 1681/chronyd

udp 0 0 127.0.0.1:323 0.0.0.0:* 1681/chronyd

udp 0 0 10.0.0.11:11211 0.0.0.0:* 17962/memcached

udp6 0 0 ::1:323 ::😗 1681/chronyd

端口信息说明

chronyd服务 123(提供给其他机器)、323(与上游同步端口)

Mariadb 数据库 3306数据接口

rabbitmq 消息队列 4369、25672(高可用架构使用)、5672(程序写端口)

memcached token保存 11211

至此OpenStack 基础配置完成。

1.4 Keystone认证服务配置

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/keystone-install.html

认证管理:授权管理和服务目录服务管理提供单点整合。

目录服务:相当于呼叫中心(前台)

在控制节点上安装和配置OpenStack身份认证服务,代码名称keystone。出现性能原因,这个配置部署Fernet令牌和Apache
HTTP服务处理请求。

1.4.1 创建数据库

用数据库连接客户端以 root 用户连接到数据库服务器:

[root@controller ~]# mysql -u root -p

创建 keystone 数据库:

MariaDB [(none)]> CREATE DATABASE keystone;

对``keystone``数据库授予恰当的权限:

GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@‘localhost’ IDENTIFIED BY
‘KEYSTONE_DBPASS’;

GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’ IDENTIFIED BY
‘KEYSTONE_DBPASS’;

添加完成后退出数据库客户端。

MariaDB [(none)]> exit

1.4.2 安装keystone

yum -y install openstack-keystone httpd mod_wsgi

安装的软件包为 keystone服务包,http服务,用于连接python程序与web服务的中间件

如何理解 CGI, WSGI? https://www.zhihu.com/question/19998865

1.4.3 修改配置文件

备份配置文件

[root@controller ~]# cp /etc/keystone/keystone.conf{,.bak}

精简化配置文件

[root@controller ~]# egrep -v ‘^#|^$’ /etc/keystone/keystone.conf.bak
>/etc/keystone/keystone.conf

手动修改配置文件

在``[DEFAULT]``部分,定义初始管理令牌的值

[DEFAULT]

admin_token = ADMIN_TOKEN

在 [database] 部分,配置数据库访问

[database]

connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

在``[token]``部分,配置Fernet UUID令牌的提供者

[token]

provider = fernet 关于令牌类型的说明:https://www.abcdocker.com/abcdocker/1797

【自动化】自动化配置-配置文件(本文大量使用)

安装自动配置软件openstack-utils

yum install openstack-utils.noarch -y

[root@controller ~]# rpm -ql openstack-utils

/usr/bin/openstack-config

自动化配置命令

cp /etc/keystone/keystone.conf{,.bak}

grep ‘^[a-Z\[]’ /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf

openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token
ADMIN_TOKEN

openstack-config --set /etc/keystone/keystone.conf database connection
mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

openstack-config --set /etc/keystone/keystone.conf token provider fernet

1.4.4 初始化身份认证服务的数据库(同步数据库)

[root@controller ~]# su -s /bin/sh -c “keystone-manage db_sync” keystone

验证数据库是否同步成功

[root@controller ~]# mysql keystone -e ‘show tables’

1.4.5 初始化Fernet keys

[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone
–keystone-group keystone

命令执行后会在/etc/keystone/目录下生成fernet-keys 文件:

[root@controller ~]# ls /etc/keystone/

default_catalog.templates keystone.conf.bak policy.json

fernet-keys keystone-paste.ini sso_callback_template.html

keystone.conf logging.conf

1.4.6 配置 Apache HTTP 服务器

编辑``/etc/httpd/conf/httpd.conf`` 文件,配置``ServerName``。

echo ‘ServerName controller’ >>/etc/httpd/conf/httpd.conf

创建配置文件 /etc/httpd/conf.d/wsgi-keystone.conf

注:keystone服务较为特殊,其他的服务可自行创建配置文件。

[root@controller ~]# cat /etc/httpd/conf.d/wsgi-keystone.conf

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.4.7 启动 Apache HTTP 服务并配置其随系统启动

systemctl enable httpd.service

systemctl start httpd.service

1.4.8 创建服务实体和API端点

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/keystone-services.html

a.配置环境变量

配置认证令牌

export OS_TOKEN=ADMIN_TOKEN

配置端点URL

export OS_URL=http://controller:35357/v3

配置认证 API 版本

export OS_IDENTITY_API_VERSION=3

查看环境变量

[root@controller ~]# env |grep OS

命令集:

export OS_TOKEN=ADMIN_TOKEN

export OS_URL=http://controller:35357/v3

export OS_IDENTITY_API_VERSION=3

env |grep OS

b.创建服务实体和API端点

创建命令

openstack service create --name keystone --description “OpenStack Identity”
identity

执行过程

[root@controller ~]# openstack service create \

> --name keystone --description “OpenStack Identity” identity

±------------±---------------------------------+

| Field | Value |

±------------±---------------------------------+

| description | OpenStack Identity |

| enabled | True |

| id | f08ec36b2b7340d6976fcb2bbd24e83b |

| name | keystone |

| type | identity |

±------------±---------------------------------+

c.创建认证服务的 API 端点

命令集

openstack endpoint create --region RegionOne identity public
http://controller:5000/v3

openstack endpoint create --region RegionOne identity internal
http://controller:5000/v3

openstack endpoint create --region RegionOne identity admin
http://controller:35357/v3

执行过程

[root@controller ~]# openstack endpoint create --region RegionOne \

> identity public http://controller:5000/v3

±-------------±---------------------------------+

| Field | Value |

±-------------±---------------------------------+

| enabled | True |

| id | e27dd713753f47b8a1062ac50ca33845 |

| interface | public |

| region | RegionOne |

| region_id | RegionOne |

| service_id | f08ec36b2b7340d6976fcb2bbd24e83b |

| service_name | keystone |

| service_type | identity |

| url | http://controller:5000/v3 |

±-------------±---------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne \

> identity internal http://controller:5000/v3

±-------------±---------------------------------+

| Field | Value |

±-------------±---------------------------------+

| enabled | True |

| id | 71b7435fa2df4c58bb6ca5cc38a434a7 |

| interface | internal |

| region | RegionOne |

| region_id | RegionOne |

| service_id | f08ec36b2b7340d6976fcb2bbd24e83b |

| service_name | keystone |

| service_type | identity |

| url | http://controller:5000/v3 |

±-------------±---------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne \

> identity admin http://controller:35357/v3

±-------------±---------------------------------+

| Field | Value |

±-------------±---------------------------------+

| enabled | True |

| id | cf58eee084c04777a520d487adc1a88f |

| interface | admin |

| region | RegionOne |

| region_id | RegionOne |

| service_id | f08ec36b2b7340d6976fcb2bbd24e83b |

| service_name | keystone |

| service_type | identity |

| url | http://controller:35357/v3 |

±-------------±---------------------------------+

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

官方文档https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/keystone-users.html

a.创建域``default``

openstack domain create --description “Default Domain” default

b.在你的环境中,为进行管理操作,创建管理的项目、用户和角色

创建 admin 项目

openstack project create --domain default --description “Admin Project” admin

创建 admin 用户

openstack user create --domain default --password-prompt admin

创建 admin 角色

openstack role create admin

添加``admin`` 角色到 admin 项目和用户上

openstack role add --project admin --user admin admin

命令集:

openstack domain create --description “Default Domain” default

openstack project create --domain default --description “Admin Project” admin

openstack user create --domain default --password ADMIN_PASS admin

openstack role create admin

openstack role add --project admin --user admin admin

c.创建servers项目

[root@controller ~]# openstack project create --domain default --description
“Service Project” service

±------------±---------------------------------+

| Field | Value |

±------------±---------------------------------+

| description | Service Project |

| domain_id | df6407ae93bb407d876f2ee4787ede79 |

| enabled | True |

| id | cd2107aa3a8f4066a871ca029641cfd7 |

| is_domain | False |

| name | service |

| parent_id | df6407ae93bb407d876f2ee4787ede79 |

±------------±---------------------------------+

验证之前的所有操作

命令集:

openstack service list

openstack endpoint list | grep keystone |wc -l

openstack domain list

openstack project list

openstack user list

openstack role list

查看服务列表

[root@controller ~]# openstack service list

±---------------------------------±---------±---------+

| ID | Name | Type |

±---------------------------------±---------±---------+

| f08ec36b2b7340d6976fcb2bbd24e83b | keystone | identity |

±---------------------------------±---------±---------+

查看当前的域

[root@controller ~]# openstack domain list

±---------------------------------±--------±--------±---------------+

| ID | Name | Enabled | Description |

±---------------------------------±--------±--------±---------------+

| df6407ae93bb407d876f2ee4787ede79 | default | True | Default Domain |

±---------------------------------±--------±--------±---------------+

查看集合

[root@controller ~]# openstack project list

±---------------------------------±--------+

| ID | Name |

±---------------------------------±--------+

| cd2107aa3a8f4066a871ca029641cfd7 | service |

| d0dfbdbc115b4a728c24d28bc1ce1e62 | admin |

±---------------------------------±--------+

查看当前的用户列表

[root@controller ~]# openstack user list

±---------------------------------±------+

| ID | Name |

±---------------------------------±------+

| d8f4a1d74f52482d8ebe2184692d2c1c | admin |

±---------------------------------±------+

查看当前的角色

[root@controller ~]# openstack role list

±---------------------------------±------+

| ID | Name |

±---------------------------------±------+

| 4de514c418ee480d898773e4f543b79d | admin |

±---------------------------------±------+

关于域、项目、用户和角色的说明:

类型 说明
Domain 表示 project 和 user 的集合,在公有云或者私有云中常常表示一个客户
Group 一个domain 中的部分用户的集合
Project 项目、IT基础设施资源的集合,比如虚机,卷,镜像等
Role 授权,角色,表示一个 user 对一个 project resource 的权限
Token 一个 user 对于某个目标(project 或者 domain)的一个有限时间段内的身份令牌

1.4.10 创建 OpenStack 客户端环境脚本

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/keystone-openrc.html

编辑文件 admin-openrc 并添加如下内容

[root@controller ~]# vi admin-openrc

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=ADMIN_PASS

export OS_AUTH_URL=http://controller:35357/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

【重要】务必使用环境变量脚本

使用脚本创建环境变量

[root@controller ~]# source admin-openrc

[root@controller ~]# env|grep OS

HOSTNAME=controller

OS_USER_DOMAIN_NAME=default

OS_IMAGE_API_VERSION=2

OS_PROJECT_NAME=admin

OS_IDENTITY_API_VERSION=3

OS_PASSWORD=ADMIN_PASS

OS_AUTH_URL=http://controller:35357/v3

OS_USERNAME=admin

OS_PROJECT_DOMAIN_NAME=default

1.5 镜像服务glance部署

官方文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/glance.html

1.5.1 创库授权

参考文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/glance-install.html

# 登陆mysql数据库

[root@controller ~]# mysql

创建 glance 数据库:

CREATE DATABASE glance;

对``glance``数据库授予恰当的权限:

GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@‘localhost’ IDENTIFIED BY
‘GLANCE_DBPASS’;

GR

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值