0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用Ansible实现OpenStack自动化

西西 来源:ADI 作者:Moinul Islam 2019-12-02 19:02 次阅读

本文旨在就置备虚拟机(除VMware以外)的一种替代方法提供一些见解。目标受众包括但不限于处理虚拟机自动化问题的软件开发人员。由于VMware的服务提供商许可证及其支持vRealize、vCenter和其他工具的基础设施成本高昂,我们整合我们的资源,开发出了一种同样能够完成任务,但更经济高效的替代方法。我们的解决方案采用开源技术,利用使用Ansible Tower®的DevOps方法来与OpenStack®交互,通过playbook进行实现,用于置备虚拟机。我们将此技术集成到我们的Cyber Range™软件中,本文将它作为一个案例研究,以证明这种方法行之有效。

简介

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

为何选择Ansible?

Ansible®是一个简单的自动化工具,可以全面描述IT应用基础设施。它易于学习,可以自编文档,读取方便,无需具备专业水平的计算机科学学位。自动化不应该比它所替代的任务更复杂。

简单

■人类可读的自动化

■无需特殊的编码技能

■任务按序执行

■很快实现生产力

功能强大

■应用部署

■配置管理

■工作流编排

■编排应用生命周期

  • 无代理

■无代理架构

■使用OpenSSH和WinRM

■无需使用或更新服务器

■可预测、可靠、安全

什么是Ansible Tower?

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

Ansible Tower

  • 基于web的用户界面,用于管理Ansible
  • 通过一个可视仪表板来集中和控制Ansible基础设施
  • 为Ansible提供REST API
  • Ansible

■一种开源自动化工具

■采用简单设计,旨在让所有人都能理解和学习使用

■无需自定义脚本或代码

■提供自动化引擎

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

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

■提供基于Python®的API

■使用OpenSSH

■通过playbook提供自动化和编排。

什么是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作为基础,不仅简化了部署过程,还简化了开发、存储、联网、监测、管理和应用。

OpenStack

  • 开源:此技术得到了大型开发人员社区的支持
  • 为客户提供价值、效率和敏捷性
  • 由模块化、可伸缩且灵活的实用程序集组成
  • 经过大型企业的检验和测试
  • 互操作性和开源API允许管理员管理混合IT环境,无需额外层成本

Ansible Playbook

Playbook是一个YAML文件,描述了要在一组主机(在Ansible inventory中定义)中执行的任务的列表。Playbook由一个或多个脚本组成,用于对任务进行分组。它定义虚拟机名称、VMDK文件、网络、IP地址和场景信息。Playbook是实现真正简单的配置管理和多机部署系统的基础。它可以宣布配置,也可以为手动流程编排步骤。

Playbook

  • 定义要在主机上执行的任务
  • 任务按照playbook指定的顺序执行
  • YAML格式

图1.playbook示例。

OpenStack与Ansible的交互

Ansible playbook在OpenStack环境中定义一系列任务和配置。任务示例包括:置备虚拟机实例、定义虚拟机IP以及连接虚拟机的交换机

案例研究:Cyber Range软件

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

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

1.用户点击开始按钮开始练习(实操网络安全培训)。

2.Cyber Range软件通过REST API使用POST请求将训练场景名称和用户名称调用到Ansible Tower。

3.Ansible Tower执行用于练习的playbook任务,并向OpenStack提供配置信息。这些信息包括虚拟机镜像和网络信息。

4.OpenStack置备虚拟机镜像并配置网络。

5.OpenStack将状态返回给Ansible Tower,Ansible Tower再将状态返回给web应用。

6.如果状态是成功的,Cyber Range软件会显示Windows或Linux图标,提供超链接用于开启控制台。

总结

通过将Ansible Tower与OpenStack集成到Cyber Range软件中,我们能够构建一个应用程序,为全球客户提供按需培训和真实场景。与Ansible REST API和playbook集成充分利用了置备更加系统化的自动化流程时所需的许多代码。本文讨论了如下几个要点:

  • Ansible可以自动化各种IT任务,包括系统置备、软件包安装、网络配置和安全,以及云服务的实例置备。
  • 使用playbook这个方法可以简化虚拟机编排和配置,以及可能在自定义网络中包含多个虚拟机的复杂场景的部署等任务,但在部署期间可能需要运行自定义脚本。
  • 使用playbook逐个执行命令的流程单元被称为任务。
  • 要使用Ansible实现OpenStack自动化,需要采用OpenStack、Ansible、Ansible Tower和源代码控制(例如Git存储库)。

我们建议,在ADI公司的其他云项目上进行自动化和云基础设施部署时,可以考虑采用Ansible和OpenStack。

作者简介

Moinul Islam是ADI公司可信安全解决方案(TSS)部(位于美国佛罗里达州坦帕市)的软件工程师。他在软件工程、设计和开发方面拥有20年的经验。他于1997年获得俄亥俄州克里夫兰州立大学M.C.I.S.学位。在可信安全解决方案部工作时,Moinul主要负责设计和开发一项名为Sypher Ultra的产品,它是Xilinx® Zynq® UltraScale+™设备的一项附加安全措施。他还专注于另一个名为“密钥管理”的项目,该项目与nCipher®硬件安全模块集成。

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

    关注

    1

    文章

    852

    浏览量

    27346
  • OpenStack
    +关注

    关注

    1

    文章

    66

    浏览量

    18844
收藏 人收藏

    评论

    相关推荐

    自动化

    自动化技术,更好地做好市场服务工作;二是利用自动化技术,替代或减轻制造人员的体力和脑力劳动,直接为制造人员服务。E的含义是制造自动化应该有利于充分
    发表于 05-24 18:59

    实现工业自动化的市场阻碍

    很多人把工业自动化等同于了物联网,实际上物联网只是实现工业自动化的一种手段,而非目的。现在物联网的实际应用只存在于大型的制造商中间。中小企业资源和能力的缺失阻碍了中国工业自动化整体前进
    发表于 09-11 15:54

    如何利用RFID技术有效实现工具自动化追踪?

    俗话说,工欲善其事,必先利其器,如何利用RFID技术有效实现工具自动化追踪?是制造行业非常重要需要思考的问题。
    发表于 08-02 06:57

    馈线自动化通信系统怎么实现

    馈线自动化是配电网自动化的重要组成部分。要实现馈线自动化,需要合理的配电网结构,具备环网供电的条件;各环网开关、负荷开关和街道配电站内开关的操作机构必须具有远方操作功能;环网开关柜内必
    发表于 09-17 09:01

    ansible playbook+jenkins如何实现自动新增域名

    ansible-playbook+jenkins实现自动新增域名
    发表于 06-03 11:58

    LabVIEW与Tektronix示波器实现电源测试自动化

    LabVIEW与Tektronix示波器实现电源测试自动化 在现代电子测试与测量领域,自动化测试系统的构建是提高效率和精确度的关键。本案例介绍了如何利用LabVIEW软件结合Tektr
    发表于 12-09 20:37

    红帽推出Ansible 2.2 :为开源自动化框架奠定牢靠的基础

    日前,开源解决方案供应商红帽公司宣布全面推出Ansible 2.2——一款简单、强大且无代理的领先开源IT自动化框架软件的最新版本。Ansible 2.2提供了性能增强、更全面的容器和Windows
    发表于 11-07 20:20 924次阅读

    ansible-first-book 自动化运维工具

    ansible-first-book 自动化运维工具
    发表于 09-08 09:31 5次下载

    Ansible企业级自动化运维探索的详细资料说明

    本文档的主要内容详细介绍的是Ansible企业级自动化运维探索的详细资料说明主要内容包括了:场景一:自动化运维之利器,场景二:企业级自动化,场景三:助力构建DevOps,场景四:容器应
    发表于 06-03 08:00 2次下载
    <b class='flag-5'>Ansible</b>企业级<b class='flag-5'>自动化</b>运维探索的详细资料说明

    利用Ansible实现OpenStack自动化

    ;  要使用Ansible实现OpenStack自动化,需要采用OpenStackAnsib
    的头像 发表于 12-03 17:29 2543次阅读
    <b class='flag-5'>利用</b><b class='flag-5'>Ansible</b><b class='flag-5'>实现</b><b class='flag-5'>OpenStack</b><b class='flag-5'>自动化</b>

    一文详解Ansible自动化运维

    CMDB:CMDB 存储和管理者企业IT架构中的各项配置信息,是构建 ITIL 项目的核心工具,运维人员可以组合 CMDB 和 Ansible,通过 CMDB 直接下发指令调用Ansible 工具集完成操作者所希望达到的目标;
    的头像 发表于 05-19 17:06 4084次阅读
    一文详解<b class='flag-5'>Ansible</b>的<b class='flag-5'>自动化</b>运维

    使用AnsibleOpenStack自动化

    通过将 Ansible Tower 与 OpenStack 集成到 Cyber Range 软件中,我们能够构建一个应用程序,为全球客户提供按需培训和真实场景。将 Ansible REST API 与行动手册集成,极大地
    的头像 发表于 12-21 14:12 815次阅读
    使用<b class='flag-5'>Ansible</b>的<b class='flag-5'>OpenStack</b><b class='flag-5'>自动化</b>

    什么是Ansible

    Ansible是一种运维自动化工具软件,用来批量配置服务器或网络设备(目标主机)。
    的头像 发表于 02-15 14:06 605次阅读

    利用Ansible批量100台服务器添加Crontab

    今天浩道跟大家分享关于Ansible自动化运维相关硬核干货,利用Ansible批量100台服务器添加Crontab !
    的头像 发表于 08-19 14:24 354次阅读

    网络设备自动化运维工具—ansible入门笔记介绍

    Ansible是一款自动化运维工具,基于Python开发,集合了众多运维工具 (Puppet、CFengine、Chef、SaltStack)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
    的头像 发表于 01-15 13:46 409次阅读
    网络设备<b class='flag-5'>自动化</b>运维工具—<b class='flag-5'>ansible</b>入门笔记介绍