使用Ansible的OpenStack自动化

描述

本文旨在提供有关除 VMware 之外的另一种配置虚拟机方法的见解。目标受众包括但不限于处理虚拟机自动化的软件开发人员。由于 VMware 的服务提供商许可证及其支持 vRealize、vCenter 和其他工具的基础架构费用高昂,我们利用我们的资源将一种经济高效的替代方法组合在一起,以完成相同的任务。我们的解决方案是一种利用开源技术的方法,这些技术具有使用 Ansible Tower 的 DevOps 方法与 OpenStack 交互,这些方法通过 playbook 实现以配置虚拟机。我们将这项技术集成到我们的网络靶场中®®™软件,在本文中描述为案例研究,以证明该方法是成功的。

介绍

本文介绍了 Ansible Tower 如何成为使用剧本从 OpenStack 创建、部署和配置虚拟机的最简单方法之一。系统性能、IT 自动化、复杂系统的部署和速度生产力是软件开发中与虚拟机交互的关键标准。所有这些功能都可以在 Ansible Tower 中使用,它具有 REST API,可以轻松地将其嵌入到现有工具和流程中。使用 Ansible Tower 作为开源工具,用户可以在其中请求新的 IT 服务并管理特定的云和 IT 资源,从而实现一个安全的门户,用于自动化应用程序部署和升级,以及网络和安全软件的配置。

为什么选择安思布尔?

Ansible 是一个简单的自动化工具,可以完美地描述 IT 应用程序基础架构。它易于学习,自我记录,并且不需要研究生水平的计算机科学学位即可阅读。自动化不应该比它所取代的任务更复杂。®

简单

人类可读的自动化

无需特殊的编码技能

按顺序执行的任务

快速提高工作效率

应用部署

配置管理

工作流编排

编排应用生命周期

无代理

无代理架构

使用 OpenSSH 和 WinRM

无需利用或更新代理

可预测、可靠且安全

什么是Ansible Tower?

Ansible Tower 是一个基于 Web 的用户界面,用于管理 Ansible。它通过可视化仪表板集中和控制 Ansible 基础架构。它可以称为自动化任务的中心。

安斯布尔塔

用于管理 Ansible 的基于 Web 的用户界面

通过可视化仪表板集中和控制 Ansible 基础架构

为 Ansible 提供 REST API

安斯布尔

是一个开源的自动化工具

旨在让任何人都易于理解和学习

不需要自定义脚本或代码

提供自动化引擎

管理网络、基础设施、操作系统

提供用于管理和配置主机的预构建模块(超过 450 个)

提供基于 Python 的 API®

使用 OpenSSH

通过行动手册提供自动化和编排。

什么是OpenStack?

OpenStack 是一个云操作系统,可控制整个数据中心的大型计算、存储和网络资源池,所有这些都通过仪表板进行管理,该仪表板使管理员能够控制,同时授权其用户通过 Web 界面配置资源。它是一个开源项目,提供基础架构即服务平台来构建云感知应用程序,并支持多个虚拟机管理程序来配置和编排云。它可以运行多层工作负载或开源开发工具。最终用户可以轻松调配资源并支持几乎所有虚拟机管理程序,包括 VMware ESXi、Xen 和 KVM。

为什么选择OpenStack?

OpenStack可轻松与Ansible Tower,VMware虚拟机管理程序和Hyper-V集成,以利用现有基础架构。OpenStack 和 KVM 虚拟机管理程序是免费的,但需要熟练的管理员进行配置。OpenStack 是一个用于部署、开发和构建云平台的开源平台。它是一个命令行界面,功能强大,具有管理,API和RESTful Web服务以及基于Web的控制面板控件。这个开源云软件用于管理计算(Nova),块存储(Cinder),虚拟机映像服务(Glance)和网络结构(Neutron)。OpenStack 是一个基础,它不仅简化了部署过程,还简化了开发、存储、网络、监控、管理和应用程序。

开放堆栈

开源:该技术由庞大的开发人员社区提供支持

为客户提供价值、效率和敏捷性

由模块化、可扩展且灵活的实用程序集组成

经过大型企业的尝试和测试

互操作性和开源 API 允许管理员管理混合 IT 环境,而无需额外的开销层

安斯布尔行动手册

行动手册是一个 YAML 文件,它描述了要对一组主机执行的任务列表,这些主机在 Ansible 清单中定义。剧本由一个或多个重头戏组成,用于对任务进行分组。它定义虚拟机名称、VMDK 文件、网络连接、IP 地址和场景信息。行动手册是真正简单的配置管理和多机部署系统的基础。行动手册可以声明配置,但它们也可以协调任何手动排序流程的步骤。

剧本

定义要在主机上执行的任务

任务按剧本中的顺序执行

亚姆格式

虚拟机

图1.示例剧本。

OpenStack 与 Ansible 的交互

Ansible 行动手册定义了 OpenStack 环境中的一系列任务和配置。任务的示例包括预配虚拟机实例、定义虚拟机的 IP 以及用于将虚拟机联网的交换机。

案例研究:网络靶场是一个现实生活中的软件

网络靶场为客户提供可扩展的虚拟化平台,用于网络安全培训、建模、模拟和高级分析。我们为多个客户提供解决方案,包括美国国防部、新加坡网络安全局 (CSA/SITSA) 和日本九州大学。

用户单击开始按钮开始练习(动手网络安全培训)。

网络靶场软件使用 POST 请求通过 REST API 将训练场景名称和用户名调用到 Ansible Tower。

Ansible Tower 执行练习手册任务,并向 OpenStack 提供配置信息。此信息包括虚拟机映像和网络连接信息。

OpenStack 配置虚拟机映像并配置网络。

OpenStack 将状态返回给 Ansible Tower,Ansible Tower 将状态返回给 Web 应用程序。

如果状态为成功,网络靶场软件将显示 Windows 或 Linux 图标,该图标启用超链接以打开控制台。

虚拟机

图2.Cyber Range Web 应用程序通过 REST API 与 Ansible 和 OpenStack 交互。

总结

通过将 Ansible Tower 与 OpenStack 集成到 Cyber Range 软件中,我们能够构建一个应用程序,为全球客户提供按需培训和真实场景。将 Ansible REST API 与行动手册集成,极大地利用了配置到更系统化的自动化流程所需的许多代码。我们可以将本文的关键点总结如下:

Ansible 可以自动执行各种 IT 任务,包括系统配置、软件包安装、网络配置和安全性,以及云服务的实例配置。

使用 playbook 的方法可能需要在部署期间运行自定义脚本,该方法简化了编排和配置虚拟机的任务,以及部署可能包含自定义网络中多个虚拟机的复杂方案。

使用剧本逐个执行命令的过程单元称为任务。

要使用 Ansible 实现 OpenStack 自动化,需要 OpenStack、Ansible、Ansible Tower 和源代码控制(例如 Git 存储库)。

我们建议考虑将Ansible和OpenStack用于ADI公司其他云项目的自动化和云基础设施部署。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分