OpenStack——编排(Heat)服务介绍与安装

这篇具有很好参考价值的文章主要介绍了OpenStack——编排(Heat)服务介绍与安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OpenStack——编排(Heat)服务介绍与安装

OpenStack Heat 是一个基于模板的编排服务,用于自动化部署和管理基础设施资源。它允许用户通过编写模板文件来描述所需的基础设施资源和配置,然后使用 Heat 引擎来解析和执行这些模板,自动创建、配置和管理云环境中的资源。

例如,假设我们有一个Web应用程序,它需要一个虚拟机作为Web服务器、一个存储卷用于存储数据、一个网络用于连接虚拟机和存储卷。我们可以使用Heat模板来描述这些资源和它们之间的关系。在模板中,我们可以指定虚拟机的镜像、网络的子网、存储卷的大小等属性,并定义资源之间的依赖关系,比如虚拟机需要在存储卷创建完成后才能启动。 一旦我们创建了这个模板,就可以使用Heat服务来部署和管理这个应用程序。Heat会根据模板中的描述,自动创建和配置虚拟机、存储卷和网络等资源。而当我们需要更新或删除这些资源时,只需要修改模板并重新执行Heat命令,它会根据模板中的变化来自动更新或删除相应的资源。

安装和配置(controller)

准备

官方文档

配置Heat服务组件之前,需要先创建数据库、服务证书和API endpoint。

(1)创建数据库

①在操作系统终端连接数据库

[root@controller ~]# mysql -uroot -p000000

②创建heat数据库

MariaDB [(none)]> CREATE DATABASE heat;

③Heat数据库访问权限设置

MariaDB [(none)]> GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%'  IDENTIFIED BY '000000';

④退出数据库

(2)加载admin user 的环境变量

[root@controller ~]# source admin-openrc.sh

(3)创建服务凭证

①创建Heat用户

[root@controller ~]# openstack user create --domain default --password 000000 heat
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | c2774323d7e04a529d1fcdc18d6549f9 |
| name                | heat                             |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

②admin为用户添加角色heat

[root@controller ~]# openstack role add --project service --user heat admin

③创建Heat和heat-cfn service entity

[root@controller ~]# openstack service create --name heat  --description "Orchestration" orchestration
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Orchestration                    |
| enabled     | True                             |
| id          | 7ce739d29f3841ad9bed4d286f546bd7 |
| name        | heat                             |
| type        | orchestration                    |
+-------------+----------------------------------+
[root@controller ~]# openstack service create --name heat-cfn --description "Orchestration"  cloudformation
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Orchestration                    |
| enabled     | True                             |
| id          | f1c9a2b146b94d75b19a13f1b806e4d8 |
| name        | heat-cfn                         |
| type        | cloudformation                   |
+-------------+----------------------------------+

(4)创建Heat编排服务组件的API endpoint

[root@controller ~]# openstack endpoint create --region RegionOne  orchestration public http://controller:8004/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 56d9afe212be479394529d2e5b33e9bc        |
| interface    | public                                  |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 7ce739d29f3841ad9bed4d286f546bd7        |
| service_name | heat                                    |
| service_type | orchestration                           |
| url          | http://controller:8004/v1/%(tenant_id)s |
+--------------+-----------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne  orchestration internal http://controller:8004/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | b77211d055ac468094a1834318a24341        |
| interface    | internal                                |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 7ce739d29f3841ad9bed4d286f546bd7        |
| service_name | heat                                    |
| service_type | orchestration                           |
| url          | http://controller:8004/v1/%(tenant_id)s |
+--------------+-----------------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne orchestration admin http://controller:8004/v1/%\(tenant_id\)s
+--------------+-----------------------------------------+
| Field        | Value                                   |
+--------------+-----------------------------------------+
| enabled      | True                                    |
| id           | 02f7ab4296a94dc1ac909cf7e83b91bc        |
| interface    | admin                                   |
| region       | RegionOne                               |
| region_id    | RegionOne                               |
| service_id   | 7ce739d29f3841ad9bed4d286f546bd7        |
| service_name | heat                                    |
| service_type | orchestration                           |
| url          | http://controller:8004/v1/%(tenant_id)s |
+--------------+-----------------------------------------+
 [root@controller ~]# openstack endpoint create --region RegionOne cloudformation public http://controller:8000/v1
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 26264981dd3a414aa18fd64e4ec2ba84 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | f1c9a2b146b94d75b19a13f1b806e4d8 |
| service_name | heat-cfn                         |
| service_type | cloudformation                   |
| url          | http://controller:8000/v1        |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne cloudformation internal http://controller:8000/v1
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 9b4f604bb0984b63ad050655762a7d41 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | f1c9a2b146b94d75b19a13f1b806e4d8 |
| service_name | heat-cfn                         |
| service_type | cloudformation                   |
| url          | http://controller:8000/v1        |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne cloudformation admin http://controller:8000/v1
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 9c8c76a1b03a44a8a7728fa47670410e |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | f1c9a2b146b94d75b19a13f1b806e4d8 |
| service_name | heat-cfn                         |
| service_type | cloudformation                   |
| url          | http://controller:8000/v1        |
+--------------+----------------------------------+

(5)创建Orchestration服务需要在Identity服务中添加信息,用以操作Stack

①创建Heat域

[root@controller ~]# openstack domain create --description "Stack projects and users" heat
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | Stack projects and users         |
| enabled     | True                             |
| id          | 3fb118462aa344ba8c0fb36fc0296fa7 |
| name        | heat                             |
| options     | {}                               |
| tags        | []                               |
+-------------+----------------------------------+

②创建heat_domain_admin用户,管理Heat域中的project和user

[root@controller ~]# openstack user create --domain heat --password-prompt heat_domain_admin
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | 3fb118462aa344ba8c0fb36fc0296fa7 |
| enabled             | True                             |
| id                  | 2632b29ed7a746e4bf01466c475fcf57 |
| name                | heat_domain_admin                |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

③将admin角色添加到heat_domain_admin域中的用户 heat以启用heat_domain_admin用户的管理堆栈管理权限

[root@controller ~]# openstack role add --domain heat --user-domain heat --user heat_domain_admin admin

④创建 heat_stack_owner 角色

[root@controller ~]# openstack role create heat_stack_owner
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| domain_id   | None                             |
| id          | 816798fab0bf4825a4a71d36ade47f44 |
| name        | heat_stack_owner                 |
| options     | {}                               |
+-------------+----------------------------------+

⑤将heat_stack_owner角色添加到demoproject和user,使demo user 可以管理 Stack

[root@controller ~]# openstack role add --project demo --user demo heat_stack_owner

⑥创建heat_stack_user_role

[root@controller ~]# openstack role create heat_stack_user
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | None                             |
| domain_id   | None                             |
| id          | a1b8a79460f04f28ba5c12bc372304d3 |
| name        | heat_stack_user                  |
| options     | {}                               |
+-------------+----------------------------------+

安装和配置Heat编排服务组件

(1)安装软件包

[root@controller ~]# yum install -y openstack-heat-api openstack-heat-api-cfn openstack-heat-engine openstack-heat-ui

(2)配置文件

编辑/etc/heat/heat.conf文件并完成以下操作

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

[database]
connection = mysql+pymysql://heat:000000@controller/heat

②在[DEFAULT]部分中,配置RabbitMQ消息队列访问

[DEFAULT]
transport_url = rabbit://openstack:000000@controller

③在[keystone_authtoken][trustee]、 和[clients_keystone]部分中,配置身份服务访问

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = heat
password = 000000

[trustee]
auth_type = password
auth_url = http://controller:5000
username = heat
password = 000000
user_domain_name = default

[clients_keystone]
auth_uri = http://controller:5000

④在[DEFAULT]部分中,配置元数据和等待条件 URL

[DEFAULT]
heat_metadata_server_url = http://controller:8000
heat_waitcondition_server_url = http://controller:8000/v1/waitcondition

⑤在[DEFAULT]部分中,配置堆栈域和管理凭据

[DEFAULT]
stack_domain_admin = heat_domain_admin
stack_domain_admin_password = 000000
stack_user_domain_name = heat

(3)同步数据库

[root@controller ~]#  su -s /bin/sh -c "heat-manage db_sync" heat

完成安装

启动 Orchestration 服务并将其配置为开机自启

[root@controller ~]# systemctl start openstack-heat-api.service  openstack-heat-api-cfn.service openstack-heat-engine.service &&  systemctl enable openstack-heat-api.service  openstack-heat-api-cfn.service openstack-heat-engine.service
# 自行查看log文件是否报错

验证

(1)加载环境变量

[root@controller ~]# source admin-openrc.sh

(2)列出Heat编排服务组件进程是否成功启动和注册

[root@controller ~]# openstack orchestration service list
+------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+
| Hostname   | Binary      | Engine ID                            | Host       | Topic  | Updated At                 | Status |
+------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+
| controller | heat-engine | 4c0919cf-a36b-449c-8fa6-4dad9f355a43 | controller | engine | 2023-07-01T01:53:55.000000 | up     |
| controller | heat-engine | acc70835-f179-44c7-9ae6-e900cdda1fa8 | controller | engine | 2023-07-01T01:53:55.000000 | up     |
| controller | heat-engine | f9dc47f6-06ad-4dbb-afc5-7f4138b58d3b | controller | engine | 2023-07-01T01:53:55.000000 | up     |
| controller | heat-engine | 7c95fd77-74f8-4cd9-ac8e-984c36554ad8 | controller | engine | 2023-07-01T01:53:55.000000 | up     |
+------------+-------------+--------------------------------------+------------+--------+----------------------------+--------+

编写 Heat 模板执行 yaml 文件可以创建名为 heat-swift 的容器文章来源地址https://www.toymoban.com/news/detail-528822.html

[root@controller ~]# vim swift.yaml 
heat_template_version: 2014-10-16
description: "创建容器"
resources:
  user:
    type: OS::Swift::Container
    properties:
      name: heat-swift
[root@controller ~]# openstack stack create csqstack -t create_container.yaml 
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| id                  | 82f6fda4-fa1c-4cc7-b8f1-340f6e13d266 |
| stack_name          | csqstack                             |
| description         | 创建容器                             |
| creation_time       | 2023-07-01T11:49:09Z                 |
| updated_time        | None                                 |
| stack_status        | CREATE_IN_PROGRESS                   |
| stack_status_reason | Stack CREATE started                 |
+---------------------+--------------------------------------+
[root@controller ~]# swift list
heat-swift

到了这里,关于OpenStack——编排(Heat)服务介绍与安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenStack介绍说明、OpenStack架构说明、OpenStack核心服务详细说明【keystone,nova,cinder,neutron...】、OpenStack创建VM,服务间交互示例

    2006年亚马逊推出AWS,正式开启云计算的新纪元 2010年7月美国国家航空航天局(NASA)与Rackspace合作,共同宣布OpenStack开放源码计划,由此开启了属于OpenStack的时代 OpenStack从诞生之初对标AWS,一直在向AWS学习,同时开放接口去兼容各种AWS服务 OpenStack是什么? OpenStack是一种云操

    2024年01月15日
    浏览(56)
  • 云计算|OpenStack|社区版OpenStack安装部署文档(五 --- 计算服务nova安装部署---Rocky版)

    nova服务是openstack最重要的一个组件,没有之一,该组件是云计算的计算核心,大体组件如下: OpenStack Docs: Compute service overview 挑些重点,nova-api,libvirt,nova-placement-api,nova-api-metadata,nova-compute 并且nova安装部署是分为controller节点和computer节点了,controller节点就一个,comput

    2024年02月02日
    浏览(50)
  • 云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)

    keystone是openstack的关键必选组件之一,其作用是提供身份认证服务,所有的身份认证信息都是存储在controller节点的数据库内。 具体的关于keystone的介绍可以参见官方文档: OpenStack Docs: Identity service overview 社区版openstack 服务组件的安装顺序: 以上图的文档顺序安装,第一个是

    2024年02月06日
    浏览(45)
  • OpenStack01-OpenStack介绍

    1、什么是云计算 云计算是通过虚拟化技术去实现的,它是一种按量付费的模式! 2、为什么要使用云计算 小公司是为了节省成本。不用购买物理机、不用租IDC机房、不用购买宽带和公网IP。 大公司是为了把闲置的资源进行出租,节省成本,甚至是获取利润(超卖技术 KSM)。

    2024年02月06日
    浏览(44)
  • OpenStack七大组件介绍

    1.转自 【华为企业互动社区: Openstack七大组件介绍】 2. 可参考作为笔试题目答案。 3. 详细各组件如何理解、如何使用,后续我再补充。 OpenStack是一套laas解决方案 OpenStack是一个开源的云计算管理平台 以Apache许可证为授权 ——Horizon为OpenStack服务的Web控制面板,可以管理实例

    2024年02月08日
    浏览(37)
  • OpenStack入门与架构介绍

       2010年7月,Rackspace和NASA合作发布了OpenStack。OpenStack每几个月就会发布一个新的版本,并以首字母从A到Z的顺序命名。OpenStack峰会和中国OpenStack黑客松活动也随之诞生。 1.1虚拟化的发展历程 1959年,国际信息处理大会,克里斯托弗在《大型高速计算机中的时间共享》报告中

    2024年02月11日
    浏览(40)
  • openstack详解(十一)——openstack Glance服务理论知识

    今天继续给大家介绍渗透测试相关知识,本文主要内容是Openstack Glance服务理论知识。 再Openstack中,Glance主要提供镜像服务,虚拟机的创建需要Glance的支持。Glance有 Glance-api 和 Glance-Registry 两个重要服务,其中Glance-api主要接受云系统镜像的构建、删除和读取请求,Glance-Regist

    2024年02月08日
    浏览(36)
  • HCIP-OpenStack组件介绍

    计算服务Nova 发放云主机,控制节点的nova-api接收请求,给nova-scheduler处理做计算调度后,发放给某个计算节点的nova-compute处理(实验环境把控制节点当计算节点使用了)。 创建云硬盘,控制节点的cinder-api接收请求,给cinder-scheduler处理做计算调度后(通过过滤和权重筛选出合

    2024年02月12日
    浏览(34)
  • openstack详解(三)——openstack基础组件安装

    今天继续给大家介绍Linux运维相关知识,本文主要内容是Openstack基础组件安装。 首先,我们先进行Openstack的硬件设置(注:由于我的计算机性能有限,因此在内存上给的有点上,如果您的计算机有足够大的内存,可以给Openstack设备以更多的性能),如下所示: 在设置完Opens

    2023年04月08日
    浏览(33)
  • openstack详解(五)——openstack keystone安装

    今天继续给大家介绍Linux运维相关知识,本文主要内容是openstack keystone安装。 首先,我们来安装keystone及其组件,我们直接采用YUM的方式进行安装,执行命令: 即可完成安装。 在keystone安装完成后,我们还需要进行keystone的配置。但是在进行keystone的配置之前,我们还需要先生

    2023年04月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包