Ansible實現(xiàn)OpenStack自動化
本文介紹為何Ansible Tower是使用playbook,在OpenStack中創(chuàng)建、部署和配置虛擬機最簡單的方法之一。系統(tǒng)性能、IT自動化、復(fù)雜系統(tǒng)的部署和快速生產(chǎn)力是軟件開發(fā)中與虛擬機交互的關(guān)鍵標準。Ansible Tower具有所有這些特性,它通過REST API輕松嵌入到現(xiàn)有工具和流程中。Ansible Tower是一個安全門戶,用戶可以通過它請求新IT服務(wù)和管理特定的云,使用它(作為開源工具)獲取IT資源,用于自動化應(yīng)用部署和升級,以及配置軟件以實現(xiàn)聯(lián)網(wǎng)和安全。
為何選擇Ansible?
Ansible®是一個簡單的自動化工具,可以全面描述IT應(yīng)用基礎(chǔ)設(shè)施。它易于學(xué)習(xí),可以自編文檔,讀取方便,無需具備專業(yè)水平的計算機科學(xué)學(xué)位。自動化不應(yīng)該比它所替代的任務(wù)更復(fù)雜。
簡單
人類可讀的自動化
無需特殊的編碼技能
任務(wù)按序執(zhí)行
很快實現(xiàn)生產(chǎn)力
功能強大
應(yīng)用部署
配置管理
工作流編排
編排應(yīng)用生命周期
無代理
無代理架構(gòu)
使用OpenSSH和WinRM
無需使用或更新服務(wù)器
可預(yù)測、可靠、安全
什么是Ansible Tower?
Ansible Tower是一個基于web的用戶界面,用于管理Ansible。它通過一個可視儀表板來集中和控制Ansible基礎(chǔ)設(shè)施??梢苑Q為自動化任務(wù)管理中心。
Ansible Tower
基于web的用戶界面,用于管理Ansible
通過一個可視儀表板來集中和控制Ansible基礎(chǔ)設(shè)施
為Ansible提供REST API
Ansible
一種開源自動化工具
采用簡單設(shè)計,旨在讓所有人都能理解和學(xué)習(xí)使用
無需自定義腳本或代碼
提供自動化引擎
管理網(wǎng)絡(luò)、基礎(chǔ)設(shè)施、操作系統(tǒng)
提供預(yù)構(gòu)建模塊,用于管理和配置主機(超過450)
提供基于Python®的API
使用OpenSSH
通過playbook提供自動化和編排。
什么是OpenStack?
OpenStack是一個云操作系統(tǒng),它控制整個數(shù)據(jù)中心的大量計算、存儲和網(wǎng)絡(luò)資源,通過儀表板進行管理。該儀表板使管理員能夠進行控制,同時允許用戶通過web界面置備資源。它是一個開源項目,提供基礎(chǔ)設(shè)施即服務(wù)平臺來構(gòu)建支持云的應(yīng)用程序,并且支持采用多個管理程序來置備和編排云。它可以運行多層工作負載或開源開發(fā)工具。最終用戶可以輕松置備資源和支持幾乎所有的管理程序,包括VMware ESXi、Xen和KVM。
為何選擇OpenStack?
OpenStack可以輕松與Ansible Tower、VMware管理程序和Hyper-V集成,從而使用現(xiàn)有的基礎(chǔ)設(shè)施。OpenStack和KVM管理程序免費提供,但需要技能熟練的管理員進行配置。OpenStack是一個用于部署、開發(fā)和構(gòu)建云平臺的開源平臺。是一個命令行界面,功能強大,提供管理、API、RESTful web服務(wù)以及基于web的控制面板控件。這個開源云軟件用于管理計算(Nova)、塊卷存儲(Cinder)、虛擬機鏡像服務(wù)(Glance)和網(wǎng)絡(luò)構(gòu)建(Neutron)。OpenStack作為基礎(chǔ),不僅簡化了部署過程,還簡化了開發(fā)、存儲、聯(lián)網(wǎng)、監(jiān)測、管理和應(yīng)用。
OpenStack
開源:此技術(shù)得到了大型開發(fā)人員社區(qū)的支持
為客戶提供價值、效率和敏捷性
由模塊化、可伸縮且靈活的實用程序集組成
經(jīng)過大型企業(yè)的檢驗和測試
互操作性和開源API允許管理員管理混合IT環(huán)境,無需額外層成本
Ansible Playbook
Playbook是一個YAML文件,描述了要在一組主機(在Ansible inventory中定義)中執(zhí)行的任務(wù)的列表。Playbook由一個或多個腳本組成,用于對任務(wù)進行分組。它定義虛擬機名稱、VMDK文件、網(wǎng)絡(luò)、IP地址和場景信息。Playbook是實現(xiàn)真正簡單的配置管理和多機部署系統(tǒng)的基礎(chǔ)。它可以宣布配置,也可以為手動流程編排步驟。
Playbook
定義要在主機上執(zhí)行的任務(wù)
任務(wù)按照playbook指定的順序執(zhí)行
YAML格式
圖1.playbook示例。
OpenStack與Ansible的交互
Ansible playbook在OpenStack環(huán)境中定義一系列任務(wù)和配置。任務(wù)示例包括:置備虛擬機實例、定義虛擬機IP以及連接虛擬機的交換機。
案例研究:Cyber Range軟件
Cyber Range為客戶提供可擴展的虛擬化平臺,用于網(wǎng)絡(luò)安全培訓(xùn)、建模、仿真和高級分析。我們?yōu)槎嗉铱蛻籼峁┙鉀Q方案,包括美國國防部、新加坡網(wǎng)絡(luò)安全局(CSA/SITSA)和日本九州大學(xué)。
圖2.Cyber Range web應(yīng)用通過REST API與Ansible和OpenStack交互。
用戶點擊開始按鈕開始練習(xí)(實操網(wǎng)絡(luò)安全培訓(xùn))。
Cyber Range軟件通過REST API使用POST請求將訓(xùn)練場景名稱和用戶名稱調(diào)用到Ansible Tower。
Ansible Tower執(zhí)行用于練習(xí)的playbook任務(wù),并向OpenStack提供配置信息。這些信息包括虛擬機鏡像和網(wǎng)絡(luò)信息。
OpenStack置備虛擬機鏡像并配置網(wǎng)絡(luò)。
OpenStack將狀態(tài)返回給Ansible Tower,Ansible Tower再將狀態(tài)返回給web應(yīng)用。
如果狀態(tài)是成功的,Cyber Range軟件會顯示W(wǎng)indows或Linux圖標,提供超鏈接用于開啟控制臺。