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

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

3天内不再提示

利用Ansible实现OpenStack自动化

亚德诺半导体 2019-12-03 17:29 次阅读

Moinul Islam

摘要

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

简介

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

为何选择Ansible

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

u 简单

人类可读的自动化

无需特殊的编码技能

任务按序执行

很快实现生产力

u 功能强大

应用部署

配置管理

工作流编排

编排应用生命周期

u 无代理

无代理架构

使用OpenSSHWinRM

无需使用或更新服务器

可预测、可靠、安全

什么是Ansible Tower

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

Ansible Tower

u 基于web的用户界面,用于管理Ansible

u 通过一个可视仪表板来集中和控制Ansible基础设施

u Ansible提供REST API

u Ansible

一种开源自动化工具

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

无需自定义脚本或代码

提供自动化引擎

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

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

提供基于Python®API

使用OpenSSH

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

什么是OpenStack

OpenStack是一个云操作系统,它控制整个数据中心的大量计算、存储和网络资源,通过仪表板进行管理。该仪表板使管理员能够进行控制,同时允许用户通过web界面置备资源。它是一个开源项目,提供基础设施即服务平台来构建支持云的应用程序,并且支持采用多个管理程序来置备和编排云。它可以运行多层工作负载或开源开发工具。最终用户可以轻松置备资源和支持几乎所有的管理程序,包括VMware ESXiXenKVM

为何选择OpenStack

OpenStack可以轻松与Ansible TowerVMware管理程序和Hyper-V集成,从而使用现有的基础设施。OpenStackKVM管理程序免费提供,但需要技能熟练的管理员进行配置。OpenStack是一个用于部署、开发和构建云平台的开源平台。是一个命令行界面,功能强大,提供管理、APIRESTful web服务以及基于web的控制面板控件。这个开源云软件用于管理计算(Nova)、块卷存储(Cinder)、虚拟机镜像服务(Glance)和网络构建(Neutron)OpenStack作为基础,不仅简化了部署过程,还简化了开发、存储、联网、监测、管理和应用。

OpenStack

u 开源:此技术得到了大型开发人员社区的支持

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

u 由模块化、可伸缩且灵活的实用程序集组成

u 经过大型企业的检验和测试

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

Ansible Playbook

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

Playbook

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

u 任务按照playbook指定的顺序执行

u YAML格式

image.png

1.playbook示例。

OpenStackAnsible的交互

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

案例研究:Cyber Range软件

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

image.png

2.Cyber Range web应用通过REST APIAnsibleOpenStack交互。

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

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

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

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

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

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

总结

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

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

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

u 使用playbook逐个执行命令的流程单元被称为任务。

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

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

作者简介

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


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

    评论

    相关推荐

    LMX2595EVM如何实现自动化控制?

    我需要用LMX2595EVM实现自动化控制,请问那里有LMX2595EVM相关的sdk接口文档或者Demo?
    发表于 11-13 06:09

    使用TPS2116实现建筑自动化应用的高能效

    电子发烧友网站提供《使用TPS2116实现建筑自动化应用的高能效.pdf》资料免费下载
    发表于 09-25 11:12 0次下载
    使用TPS2116<b class='flag-5'>实现</b>建筑<b class='flag-5'>自动化</b>应用的高能效

    华纳云:OpenStack是虚拟管理平台吗?其工作原理是什么?

    OpenStack 就是一个虚拟管理平台吗?这样说并不准确。它们存在很多相似性,但并非完全相同。的确,OpenStack 和虚拟管理平台都位于虚拟
    的头像 发表于 09-23 14:20 289次阅读

    开关电源自动化测试设备:如何实现自动化测试?

    开关电源自动化测试设备是将测试软件和测试硬件集成在一个电源测试柜中的ate自动测试设备,其测试原理是通过计算机操控测试仪器,从而减少人工干预,完成开关电源的自动化测试,旨在解放人力,提高测试效率,让测试更便捷。
    的头像 发表于 08-30 18:19 1236次阅读
    开关电源<b class='flag-5'>自动化</b>测试设备:如何<b class='flag-5'>实现</b><b class='flag-5'>自动化</b>测试?

    机械自动化和电气自动化区别是什么

    机械自动化和电气自动化是现代工业生产中两个重要的领域,它们在许多方面有着密切的联系,但也存在一些明显的区别。 一、基本概念 机械自动化 机械自动化是指
    的头像 发表于 07-01 09:33 3961次阅读

    机械自动化自动化的一种吗

    引言 自动化技术是指利用控制装置对生产过程进行控制,以实现生产过程的自动化。机械自动化自动化
    的头像 发表于 07-01 09:32 1629次阅读

    工业自动化中的控制方式

    工业自动化是现代工业发展的重要标志,它极大地提高了生产效率,降低了生产成本,并改善了产品质量。在工业自动化中,控制方式作为实现自动化控制的关键环节,其重要性不言而喻。本文将详细介绍工业
    的头像 发表于 06-17 11:41 793次阅读

    工业自动化和控制系统网络安全的关系

    一、工业自动化和控制系统概述 1.1 工业自动化的概念 工业自动化是指利用计算机、通信和控制技术,实现工业生产过程中的
    的头像 发表于 06-16 14:25 675次阅读

    如何实现PLC的自动化控制逻辑

    在工业自动化领域,PLC(Programmable Logic Controller,可编程逻辑控制器)扮演着至关重要的角色。PLC通过编程实现自动化控制逻辑,使设备能够按照预定的程序进行工作,极大
    的头像 发表于 06-15 16:44 1150次阅读

    机械制造与自动化自动化类吗

    机械制造与自动化自动化领域的一个重要分支,它涉及到机械设计、制造、检测、控制等多个方面,是现代制造业的核心组成部分。 机械制造与自动化是指利用计算机、机器人、传感器等
    的头像 发表于 06-11 11:18 1497次阅读

    工业自动化自动化区别是什么

    工业自动化自动化是两个密切相关但又有所区别的概念。在这篇文章中,我们将详细探讨它们之间的区别,以及它们在现代工业生产中的应用。 一、自动化的定义 自动化是指通过使用机器、计算机和其他
    的头像 发表于 06-11 11:13 1638次阅读

    工厂自动化控制的典型实现方式

    工厂自动化控制是现代制造业的关键组成部分,它通过应用先进的信息技术、自动化技术和控制技术,实现生产过程的自动化、智能和信息
    的头像 发表于 06-06 15:51 1025次阅读

    TC397怎么自动化烧录?

    TC397第一次烧录的时候需要先烧录六个包,使用Infineon Memtool 4.8软件,如果想要量产,怎么实现不用手动选择文件的烧录方式,使用自动化烧录
    发表于 01-25 07:03

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

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

    借助 NVIDIA NVUE 和 Ansible 实现数据中心网络自动化

    数据中心自动化可以追溯到大型机的早期,运营效率是其优势之一。多年来,数据中心内外的技术都发生了变化。因此,工具和方法也发生了变化。 NVIDIA NVUE Collection 和 Ansible
    的头像 发表于 12-20 19:35 505次阅读
    借助 NVIDIA NVUE 和 <b class='flag-5'>Ansible</b> <b class='flag-5'>实现</b>数据中心网络<b class='flag-5'>自动化</b>