可能是全網最簡單的 OpenStack 安裝方式


OpenStack 因為架構復雜,配置較多,一向以安裝部署過程困難聞名。雖然 OpenStack 社區前后涌現出了很多的自動化部署工具,但是對於普通用戶,特別是新人來說,上手仍然有難度。

使用本文介紹的基於 Kolla-Ansible 構建的操作系統鏡像,用戶只需執行極少命令即可完成環境的部署。

安裝 OpenStack 可能有多麻煩

選擇項太多

OpenStack 誕生之時,在運維自動化領域已經存在多個配置工具,不同的團隊有不同的技術偏好,因此他們紛紛選擇不同的工具來實現 OpenStack 的自動化安裝:

  • Ansible
  • Puppet
  • Chef
  • Salt

OpenStack 可以部署在多個主流的 Linux 系統中:

  • Ubuntu
  • RHEL/CentOS
  • SUSE/openSUSE

OpenStack 架構也很靈活,除了核心模塊外,還有很多可選模塊;

  • Swift
  • Cinder
  • Neutron
  • Heat
  • ...

核心模塊本身也有多種可選配置,比如說網絡項目 Neutron,可以選擇:

  • Linux Bridge
  • OpenvSwitch

OpenStack 是一個基於 Python 的開源項目,意味着除了從軟件包安裝外,還會有使用 pip install 從 pypi 安裝 Python 模塊,以及從 git 源碼倉庫下載源碼安裝的需求:

  • rpm/deb 源
  • pypi 源
  • git 源

開源社區的工具一般比較中立,各種場景都要照顧到,也不會特意去強調哪種方式更好,所以對於新人來說,如何選擇容易上手的部署方式是一個難題。

OpenStack 針對開發快速上手有一個專門的項目 devstack,但是由於眾所周知的國情,會遇到下面的網絡問題。

網絡不給力

開源的部署工具一般都是基於軟件包倉庫或者是代碼倉庫,需要在線下載軟件包或源碼安裝。這些倉庫基本都是國外的網站。這就又涉及到幾個問題:

一個是下載速度的問題,雖然近些年國內出現了很多鏡像站,但是配置軟件安裝源在不同的操作系統中是不同的操作命令,不是所有人都能熟練完成。

也不是所有的自動化安裝工具的作者(絕大部分是老外)會意識到網絡會是個問題,安裝文檔里不會去特意去提安裝源的設置,甚至不會把它們作為可配參數提取出來。

再者,隨着版本的升級和時間推移,包括社區的變動,很多軟件安裝源的 URL 會發生變更,並不是長期保證不變的。也就是說,基於網絡安裝的文檔是有時效性的,可能過1、2年就不具備可操作性了。

此外,即便網絡狀況很好,安裝一切順利,如果要反復多次搭建,每次都需要下載安裝也會比較耗時間。

版本變化快

OpenStack 的版本發行計划是每半年 release 一個版本。聽上去沒那么頻繁,實際上對於這種超大型的項目來說,可能你當前版本還沒完全吃透呢,又來新版本了。所以,目前網上很多的安裝工具和安裝教程也都過時了。

這里給大家提供的是次新的 Stein 版本,可以體驗更多的新特性。

安裝 OpenStack 可以有多簡單

下面給大家介紹的是基於 Kolla-Ansible 的容器化部署方式。

常規的安裝文檔中,Kolla-Ansible 本身也是需要安裝部署的,它用到的 docker 容器的鏡像也需要從網絡上拉取,為了進一步簡化操作,這里將 Kolla-Ansible 工具和鏡像包和 CentOS 系統鏡像一起打包,重新構建生成一個可引導的 .iso 鏡像。真正做到了一鍵啟動,離線安裝,裝完即用。

關於 Kolla 的一些細節以后會逐漸展開介紹,本文暫不涉及。

准備一台機器

大部分人可能沒有空閑的機器專門來安裝 Linux 系統,這里我們使用虛擬機也可以完成安裝。

選擇一個適合你的系統的虛擬機管理軟件即可:

  • VirtualBox (推薦)
  • VMWare
  • Hyper-V
  • 其它

下載 .iso 鏡像文件

微信搜索並關注公眾號 DavyCloud,獲取下載鏈接

創建虛機

先配置兩個網絡:

  • 兩個 host-only 的網絡,
  • 其中一個網絡的地址段設置為 10.10.10.1/24

VirtualBox_network.png

新建一個虛擬機,滿足以下條件:

  • 內存 8GB
  • 啟動盤選擇 davycloud-openstack-stein.iso
  • 磁盤空間 >= 40GB
  • 兩個網卡分別配置兩個 host-only 的網絡,
  • 第一塊網卡的地址段對應到 10.10.10.1/24 那一個

VirtualBox_VM_Info.png

修改啟動選項

進入引導菜單時,有兩個選項:

  • 安裝 Deploy 節點
  • 安裝 Worker 節點 (默認)

使用方向鍵移動光標,選擇第 1 個,按下回車鍵開始安裝系統。

掃碼關注公眾號,可以獲取鏡像下載鏈接

vm_boot_menu.png

為什么要把默認選項放在第 2 個?

因為部署節點只需要安裝一個即可,而工作節點可能會有很多個。

系統進入自動安裝流程,整個過程無需任何交互。系統安裝完畢后會彈出光盤並自動重啟。

第一次啟動過程會比較耗時,請耐心等待。

配置修改

如果虛機的網絡地址段按要求配置,對 OpenStack 的模塊也沒有什么特別要求,這里可以不做任何改動,直接跳到下一步驟即可。

為了不讓本文變得冗長,這里也不具體介紹修改配置的方法,僅簡單說明相關情況。

All-In-One 安裝場景默認安裝 OpenStack 核心模塊和公共組件,包括:

  • MySQL
  • RabbitMQ
  • Memcached
  • Keystone
  • Glance
  • Neutron
  • Nova
  • Heat

注意到核心模塊里包含了初級用戶平常比較少用的 Heat 服務,而比較常用的卷存儲服務 Cinder 卻沒有作為核心模塊包含在內。如果需要安裝 Cinder,需要為其指定一個 backend,不同的存儲方式可能還有其它額外的配置條件,這里先保持默認不安裝。

同時注意,即使是 All-In-One 場景,默認也是啟用了 HAProxy 和浮動 IP,也就是需要安裝:

  • HAProxy
  • Keepalived

啟用 HAProxy 不需要什么額外操作,唯一需要的就是多占用一個 IP 地址。啟用浮動 IP 可以使得后續控制節點的橫向擴展更簡單。因此,除非確定就是一直作為單節點環境使用,否則推薦保留默認配置。

值得注意的是,在某些雲環境下(比如 OpenStack),這個浮動地址可能會面臨安全組的問題,需要一些額外的配置。后面有機會再詳細說明。

命令三連:prechecks、deploy、post-deploy

使用用戶名 kolla,密碼 kollapass 登錄系統,並切換到 root 用戶:

$ sudo -s
# cd /root

下面的所有操作都使用 root 用戶執行,全程只需要執行三個命令:

下面每個命令都是執行相應的 ansible playbook,所以屏幕會有大量打印。

安裝前的環境檢測,檢查是否必要條件都已經滿足

# kolla-ansible prechecks

開始安裝,視機器性能和選擇安裝模塊數量,20分鍾到40分鍾不等,耐心等待即可

# kolla-ansible deploy

安裝后的一點點收尾工作

# kolla-ansible post-deploy

上面的命令執行完成后,會在 /etc/kolla 目錄下生成 admin-openrc.sh 文件,其中包含了登錄所需要的用戶名和密碼信息。

使用 openstack 命令

以前的 OpenStack 版本每個模塊都提供自己的客戶端命令,例如 novaglance等,現在基本都統一使用 openstack 命令。以前的命令有的還能用,比如 nova,有的已經不能用了,比如 keystone

要使用 openstack 命令,必須先要安裝各模塊的客戶端包。而我們的宿主機系統里面只安裝了 DockerAnsible。Kolla 構建的 docker 鏡像中,已經在 openstack-base 這個基礎鏡像中安裝了所有的客戶端包,這意味着:

  1. 我們完全沒有必要在宿主機單獨安裝客戶端
  2. 進入任意一個 OpenStack 服務的容器里,都可以使用客戶端

但是,每次手動敲命令進入容器里畢竟不夠方便,所以我在鏡像中內置了一個 bash 腳本,取名就叫 openstack,其中的內容是啟動一個容器,使用方法和原本 openstack 命令一致:

# source /etc/kolla/admin-openrc.sh    <--仍然需要先導入環境變量
# openstack                 <-- 直接敲命令
(openstack) 

登錄 horizon

因為隨機生成的 admin 用戶密碼很長,VirtualBox 的控制台不支持復制,所以這時候你最好先找個 SSH 客戶端登入虛擬機中把密碼拷貝出來

horizon_login.png

開始體驗

安裝過程還有疑問的可以在 Bilibili 觀看視頻操作。

如果覺得文章不錯,別忘了點贊和關注公眾號,謝謝!

PS. 后面的內容會用到 阿里雲,年底大促新用戶首購優惠幅度挺大,有需要的同學不妨考慮搞一台。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM