《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 解決方案 > 利用Ansible實(shí)現(xiàn)OpenStack自動(dòng)化

利用Ansible實(shí)現(xiàn)OpenStack自動(dòng)化

2019-11-29
作者:Moinul Islam
來(lái)源:ADI公司
關(guān)鍵詞: Ansible OpenStack 自動(dòng)化

摘要

  本文旨在就置備虛擬機(jī)(除VMware以外)的一種替代方法提供一些見解。目標(biāo)受眾包括但不限于處理虛擬機(jī)自動(dòng)化問(wèn)題的軟件開發(fā)人員。由于VMware的服務(wù)提供商許可證及其支持vRealize,、vCenter和其他工具的基礎(chǔ)設(shè)施成本高昂,我們整合我們的資源,,開發(fā)出了一種同樣能夠完成任務(wù),但更經(jīng)濟(jì)高效的替代方法。我們的解決方案采用開源技術(shù),利用使用Ansible Tower的DevOps方法來(lái)與OpenStack交互,,通過(guò)playbook進(jìn)行實(shí)現(xiàn),用于置備虛擬機(jī),。我們將此技術(shù)集成到我們的Cyber Range軟件中,,本文將它作為一個(gè)案例研究,以證明這種方法行之有效,。

簡(jiǎn)介

  本文介紹為何Ansible Tower是使用playbook,,在OpenStack中創(chuàng)建、部署和配置虛擬機(jī)最簡(jiǎn)單的方法之一,。系統(tǒng)性能,、IT自動(dòng)化、復(fù)雜系統(tǒng)的部署和快速生產(chǎn)力是軟件開發(fā)中與虛擬機(jī)交互的關(guān)鍵標(biāo)準(zhǔn),。Ansible Tower具有所有這些特性,,它通過(guò)REST API輕松嵌入到現(xiàn)有工具和流程中。Ansible Tower是一個(gè)安全門戶,,用戶可以通過(guò)它請(qǐng)求新IT服務(wù)和管理特定的云,,使用它(作為開源工具)獲取IT資源,用于自動(dòng)化應(yīng)用部署和升級(jí),,以及配置軟件以實(shí)現(xiàn)聯(lián)網(wǎng)和安全,。

為何選擇Ansible?

  Ansible是一個(gè)簡(jiǎn)單的自動(dòng)化工具,,可以全面描述IT應(yīng)用基礎(chǔ)設(shè)施,。它易于學(xué)習(xí),可以自編文檔,,讀取方便,,無(wú)需具備專業(yè)水平的計(jì)算機(jī)科學(xué)學(xué)位。自動(dòng)化不應(yīng)該比它所替代的任務(wù)更復(fù)雜,。

  簡(jiǎn)單

  ■人類可讀的自動(dòng)化

  ■無(wú)需特殊的編碼技能

  ■任務(wù)按序執(zhí)行

  ■很快實(shí)現(xiàn)生產(chǎn)力

  功能強(qiáng)大

  ■應(yīng)用部署

  ■配置管理

  ■工作流編排

  ■編排應(yīng)用生命周期

  無(wú)代理

  ■無(wú)代理架構(gòu)

  ■使用OpenSSH和WinRM

  ■無(wú)需使用或更新服務(wù)器

  ■可預(yù)測(cè),、可靠、安全

什么是Ansible Tower,?

  Ansible Tower是一個(gè)基于web的用戶界面,,用于管理Ansible。它通過(guò)一個(gè)可視儀表板來(lái)集中和控制Ansible基礎(chǔ)設(shè)施,??梢苑Q為自動(dòng)化任務(wù)管理中心。

Ansible Tower

  基于web的用戶界面,,用于管理Ansible

  通過(guò)一個(gè)可視儀表板來(lái)集中和控制Ansible基礎(chǔ)設(shè)施

  為Ansible提供REST API

  Ansible

  ■一種開源自動(dòng)化工具

  ■采用簡(jiǎn)單設(shè)計(jì),,旨在讓所有人都能理解和學(xué)習(xí)使用

  ■無(wú)需自定義腳本或代碼

  ■提供自動(dòng)化引擎

  ■管理網(wǎng)絡(luò)、基礎(chǔ)設(shè)施,、操作系統(tǒng)

  ■提供預(yù)構(gòu)建模塊,,用于管理和配置主機(jī)(超過(guò)450)

  ■提供基于Python?的API

  ■使用OpenSSH

  ■通過(guò)playbook提供自動(dòng)化和編排。

什么是OpenStack,?

  OpenStack是一個(gè)云操作系統(tǒng),,它控制整個(gè)數(shù)據(jù)中心的大量計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源,,通過(guò)儀表板進(jìn)行管理,。該儀表板使管理員能夠進(jìn)行控制,,同時(shí)允許用戶通過(guò)web界面置備資源。它是一個(gè)開源項(xiàng)目,,提供基礎(chǔ)設(shè)施即服務(wù)平臺(tái)來(lái)構(gòu)建支持云的應(yīng)用程序,,并且支持采用多個(gè)管理程序來(lái)置備和編排云。它可以運(yùn)行多層工作負(fù)載或開源開發(fā)工具,。最終用戶可以輕松置備資源和支持幾乎所有的管理程序,,包括VMware ESXi、Xen和KVM,。

為何選擇OpenStack,?

  OpenStack可以輕松與Ansible Tower、VMware管理程序和Hyper-V集成,,從而使用現(xiàn)有的基礎(chǔ)設(shè)施,。OpenStack和KVM管理程序免費(fèi)提供,但需要技能熟練的管理員進(jìn)行配置,。OpenStack是一個(gè)用于部署,、開發(fā)和構(gòu)建云平臺(tái)的開源平臺(tái)。是一個(gè)命令行界面,,功能強(qiáng)大,,提供管理、API,、RESTful web服務(wù)以及基于web的控制面板控件,。這個(gè)開源云軟件用于管理計(jì)算(Nova)、塊卷存儲(chǔ)(Cinder),、虛擬機(jī)鏡像服務(wù)(Glance)和網(wǎng)絡(luò)構(gòu)建(Neutron),。OpenStack作為基礎(chǔ),不僅簡(jiǎn)化了部署過(guò)程,,還簡(jiǎn)化了開發(fā),、存儲(chǔ)、聯(lián)網(wǎng),、監(jiān)測(cè),、管理和應(yīng)用。

OpenStack

  開源:此技術(shù)得到了大型開發(fā)人員社區(qū)的支持

  為客戶提供價(jià)值,、效率和敏捷性

  由模塊化,、可伸縮且靈活的實(shí)用程序集組成

  經(jīng)過(guò)大型企業(yè)的檢驗(yàn)和測(cè)試

  互操作性和開源API允許管理員管理混合IT環(huán)境,無(wú)需額外層成本

Ansible Playbook

  Playbook是一個(gè)YAML文件,,描述了要在一組主機(jī)(在Ansible inventory中定義)中執(zhí)行的任務(wù)的列表,。Playbook由一個(gè)或多個(gè)腳本組成,用于對(duì)任務(wù)進(jìn)行分組,。它定義虛擬機(jī)名稱,、VMDK文件,、網(wǎng)絡(luò)、IP地址和場(chǎng)景信息,。Playbook是實(shí)現(xiàn)真正簡(jiǎn)單的配置管理和多機(jī)部署系統(tǒng)的基礎(chǔ),。它可以宣布配置,也可以為手動(dòng)流程編排步驟,。

Playbook

  u定義要在主機(jī)上執(zhí)行的任務(wù)

  u任務(wù)按照playbook指定的順序執(zhí)行

  uYAML格式

圖片1.png

  圖1.playbook示例。

OpenStack與Ansible的交互

  Ansible playbook在OpenStack環(huán)境中定義一系列任務(wù)和配置,。任務(wù)示例包括:置備虛擬機(jī)實(shí)例,、定義虛擬機(jī)IP以及連接虛擬機(jī)的交換機(jī)。

案例研究:Cyber Range軟件

  Cyber Range為客戶提供可擴(kuò)展的虛擬化平臺(tái),,用于網(wǎng)絡(luò)安全培訓(xùn),、建模、仿真和高級(jí)分析,。我們?yōu)槎嗉铱蛻籼峁┙鉀Q方案,,包括美國(guó)國(guó)防部、新加坡網(wǎng)絡(luò)安全局(CSA/SITSA)和日本九州大學(xué),。

圖片2.png

  圖2.Cyber Range web應(yīng)用通過(guò)REST API與Ansible和OpenStack交互,。

  1.用戶點(diǎn)擊開始按鈕開始練習(xí)(實(shí)操網(wǎng)絡(luò)安全培訓(xùn))。

  2.Cyber Range軟件通過(guò)REST API使用POST請(qǐng)求將訓(xùn)練場(chǎng)景名稱和用戶名稱調(diào)用到Ansible Tower,。

  3.Ansible Tower執(zhí)行用于練習(xí)的playbook任務(wù),,并向OpenStack提供配置信息。這些信息包括虛擬機(jī)鏡像和網(wǎng)絡(luò)信息,。

  4.OpenStack置備虛擬機(jī)鏡像并配置網(wǎng)絡(luò),。

  5.OpenStack將狀態(tài)返回給Ansible Tower,Ansible Tower再將狀態(tài)返回給web應(yīng)用,。

  6.如果狀態(tài)是成功的,,Cyber Range軟件會(huì)顯示W(wǎng)indows或Linux圖標(biāo),提供超鏈接用于開啟控制臺(tái),。

總結(jié)

  通過(guò)將Ansible Tower與OpenStack集成到Cyber Range軟件中,,我們能夠構(gòu)建一個(gè)應(yīng)用程序,為全球客戶提供按需培訓(xùn)和真實(shí)場(chǎng)景,。與Ansible REST API和playbook集成充分利用了置備更加系統(tǒng)化的自動(dòng)化流程時(shí)所需的許多代碼,。本文討論了如下幾個(gè)要點(diǎn):

  Ansible可以自動(dòng)化各種IT任務(wù),包括系統(tǒng)置備,、軟件包安裝,、網(wǎng)絡(luò)配置和安全,以及云服務(wù)的實(shí)例置備,。

  使用playbook這個(gè)方法可以簡(jiǎn)化虛擬機(jī)編排和配置,,以及可能在自定義網(wǎng)絡(luò)中包含多個(gè)虛擬機(jī)的復(fù)雜場(chǎng)景的部署等任務(wù),,但在部署期間可能需要運(yùn)行自定義腳本。

  使用playbook逐個(gè)執(zhí)行命令的流程單元被稱為任務(wù),。

  要使用Ansible實(shí)現(xiàn)OpenStack自動(dòng)化,,需要采用OpenStack、Ansible,、Ansible Tower和源代碼控制(例如Git存儲(chǔ)庫(kù)),。

  我們建議,在ADI公司的其他云項(xiàng)目上進(jìn)行自動(dòng)化和云基礎(chǔ)設(shè)施部署時(shí),,可以考慮采用Ansible和OpenStack,。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。