準備學習 OpenStack,眾位大神有哪些教材推薦和經驗傳授?

因工作接觸到 OpenStack,之前都是接觸vmware esxi,學習一段時間的kvm,但很膚淺。現在面對 OpenStack 有點懵,不知道從哪裡下手,眾位大神有哪些教材推薦或者經驗傳授呢?

非常感謝!


在玩之前先搞清楚 OpenStack 各組件是幹什麼的。

然後,要有自己的環境才能開始玩。(先搞個梯子吧,不然下載代碼會讓你很痛苦。)

可以用 DevStack 試著搭一個 all-in-one 的。(以後再慢慢嘗試單獨的 Network Node。)

Devstack 的幾個最基本的配置寫好即可。(配置先搞最簡單的,網路也用最簡單的。)

目標只有一個,搭起來後,能從 Dashboard 創建虛擬機,而且虛擬機能拿到網路。

遇到困難,耐心地去查 OpenStack 各組件的文檔,或者重新配 Devstack 的配置,重新來。這是整體了解 OpenStack 最好的過程。這時候基本上還不用看 OpenStack 的代碼,最多看兩眼 Devstack 的腳本,了解下填的參數被用到了哪裡。

環境好了以後,其實就是去體會各種角色。

可以玩一下 OpenStack 的各組件的命令,例如

http://docs.openstack.org/cli-reference/content/novaclient_commands.html

現在,你的角色相當於是一位 OpenStack Cloud Administrator

可以看

OpenStack Cloud Administrator Guide:

http://docs.openstack.org/admin-guide-cloud/content/ch_getting-started-with-openstack.html

然後,你可能會想玩玩更多的功能,配置更多的參數。

可以看

OpenStack Configuration Reference:

http://docs.openstack.org/kilo/config-reference/content/

但玩著玩著,肯定會出現問題,調不通了,甚至把環境玩壞了,這時候,你就要變身 OpenStack OPS 了。

OpenStack Operations Guide:

http://docs.openstack.org/openstack-ops/content/openstack-ops_preface.html

這裡面就教你很多 troubleshooting 的技能,monitoring、logging,甚至一點架構的設計。這些都是以後非常實用的技能。

說到架構,也有專門的文檔

OpenStack Architecture Design Guide:

http://docs.openstack.org/arch-design/content/ch_preface.html

這時,你就成了 IaaS 的架構師

而當你發現有 bug,有新需求,或者想了解細節的實現了,需要看代碼了,你就變身 OpenStack Developer

OpenStack - Python Developer Guide (docs): OpenStack Docs: Developers

這些文檔有一定作用,但其實最好還是直接讀源碼。

----------------------------------

還有更多文檔,看 OpenStack Docs 這裡的匯總。其實,我對裡面 OpenStack Docs: OpenStack End User Guide 這個文檔充滿期待,以後我覺得它會是很好的入門教材,但現在還在完善中,裡面很多文章,其實都是原本別人用 MarkDown 寫在 Github 的文章,後來被整理到這裡。

之後,就是不斷搜集各個牛人的 RSS,多讀人家的文章。以後再補充


Red Hat OpenStack官方培訓筆記

## 前言

為期6天的Red Hat OpenStack培訓受益良多,實驗過程也非常豐滿,有很多知識需要吸收和消化,文章中把詳細的實驗過程全部分享出來。實驗環境是通過Vagrant部署rhel7.1快速生成,使用4G以上筆記本電腦就可以完成搭建。所有的配置參數都有備註說明,希望可以幫助大家快速學習和熟悉OpenStack。這或許也是我Blog中最長的一篇湊字數文章。

OpenStack是代替VMware私有雲的最佳方案之一

## 更新記錄

2016年03月05日 - 增加slideshare ppt分享,補充OpenStack測試和開發

2016年03月04日 - 初稿

閱讀原文 - Red Hat OpenStack官方培訓筆記

**擴展閱讀**

- OpenStack | 紅帽 - OpenStack | 紅帽

## 參考資料

``` bash

file://E:all-in-one (2 folders, 0 files, 0 bytes, 486.59 MB in total.)

├─docs (1 folders, 6 files, 18.04 MB, 18.08 MB in total.)

│ │ classroom.pptx 8.42 MB

│ │ env_cfg.txt 338 bytes

│ │ note.sh 48.57 KB

│ │ OpenStack Installation Guide (EL7 ver.).pdf 1.52 MB

│ │ Red Hat Enterprise Linux OpenStack Platform 7 Installation Reference en-US.pdf 8.05 MB

│ │ ~$classroom.pptx 165 bytes

│ └─packstack網路配置文件 (0 folders, 1 files, 41.42 KB, 41.42 KB in total.)

│ packstack-answers.txt 41.42 KB

└─env_for_windows (1 folders, 2 files, 468.51 MB, 468.51 MB in total.)

│ rhel-7.1-x86_64.box 468.51 MB

│ Vagrantfile 3.01 KB

└─.vagrant (0 folders, 0 files, 0 bytes, 0 bytes in total.)

```

1. Red Hat OpenStack Platform 7 Training.pptx

2. OpenStack實戰指南.pdf

## 實驗環境

**版本**

OS:Windows 10 x86_64

VirtualBox:VirtualBox-5.0.14-105127-Win

Vagrant:vagrant_1.8.1

Terminal:NetSarang.Xmanager.Enterprise.5

**備註**

1. BIOS開啟VT

2. 使用管理員許可權執行下面的步驟

**搭建步驟**

1. 安裝 Oracle VirtualBox

2. 安裝 Vagrant

3. 在工作目錄下`E:vagrantbox`,命令行:`vagrant init` (生成 Vagrantfile,需複製並修改模板)

3. 配置 Oracle VirtualBox, 使網路與 Vagrantfile 中指定的一致

4. 在工作目錄下,命令行:vagrant up(啟動),vagrant halt(優雅關機)

5. 每日實驗完成建議關機做一次snapshot快照備份,不希望關機可以選擇保存狀態類似VMware suspend掛起

``` bash

cd E:vagrantbox

vagrant init

vagrant box add rhle-7.1 rhel-7.1-x86_64.box

vagrant box list

vagrant up {node1|node2|node3}

vagrant destroy {node1|node2|node3}

```

&>修改Vagrantfile

``` ruby

# -*- mode: ruby -*-

# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure

# configures the configuration version (we support older styles for

# backwards compatibility). Please don"t change it unless you know what

# you"re doing.

$script = &<&echo doing provision...

if [ ! $LANG = "en_US.UTF-8" ]; then

echo "export LC_ALL=en_US.UTF-8" &>&> /root/.bashrc

fi

echo -e "10.30.0.10http://tnode-1.example.com node-1
10.30.0.11http://tnode-2.example.com node-2
10.30.0.12http://tnode-3.example.com node-3" &>&> /etc/hosts

echo -e "192.168.0.10http://tnode-1.example.com node-1
192.168.0.11http://tnode-2.example.com node-2
192.168.0.12http://tnode-3.example.com node-3" &>&> /etc/hosts

rm -f /etc/yum.repos.d/*

yum install -y wget wget -O /etc/yum.repos.d/rh-openstack-7-el7.repo http://192.168.1.100/content/cfgfile/rh-openstack-7-el7.repo

yum install -y wget wget -O /etc/yum.repos.d/rh-rhel-7-el7.repo http://192.168.1.100/content/cfgfile/rh-rhel-7-el7.repo

echo done...

SCRIPT

Vagrant.configure(2) do |config|

config.vm.define :node1 do |node1|

node1.vm.box = "rhel-7.1"

node1.vm.provision "shell", inline: $script

node1.vm.hostname = "http://node-1.example.com"

node1.vm.network "forwarded_port", guest: 80, host: 18080

node1.vm.network "forwarded_port", guest: 22, host: 12222

node1.vm.provider :virtualbox do |v|

v.name = "node1.demo1"

v.memory = 2048

v.cpus = 2

end

node1.vm.network :private_network, ip: "10.30.0.10", auto_config: true

node1.vm.network :private_network, ip: "192.168.0.10", auto_config: true

end

config.vm.define :node2 do |node2|

node2.vm.box = "rhel-7.1"

node2.vm.provision "shell", inline: $script

node2.vm.hostname = "http://node-2.example.com"

node2.vm.provider :virtualbox do |v|

v.name = "node2.demo1"

v.memory = 1024

v.cpus = 1

end

node2.vm.network :private_network, ip: "10.30.0.11", auto_config: true

node2.vm.network :private_network, ip: "192.168.0.11", auto_config: true

end

config.vm.define :node3 do |node3|

node3.vm.box = "rhel-7.1"

node3.vm.provision "shell", inline: $script

node3.vm.hostname = "http://node-3.example.com"

node3.vm.provider :virtualbox do |v|

v.name = "node3.demo1"

v.memory = 1024

v.cpus = 1

end

node3.vm.network :private_network, ip: "10.30.0.12", auto_config: true

node3.vm.network :private_network, ip: "192.168.0.12", auto_config: true

end

end

```

## OpenStack 組件

Code Name | OpenStack Service | Description

---- | ---- | ----

Keystone | Indentity | 提供其它 OpenStack 服務的身份驗證和授權服務。提供其它OpenStack 服務的 endpoint 列表。

Glance | Image | 存取虛擬機磁碟鏡像。OpenStack Compute 在實例資源調配時利用此特性。

Nova | Compute | 管理 OpenStack 環境中的計算實例的生命周期。職責包括依據需求生成、調度、和終止實例。

Neutron | Networking | 將網路連接作為服務提供給其它 OpenStack 服務,例如 OpenStack Compute。提供用戶定義網路的 API 和連接它們的附加組件,其可插拔的架構設計支持很多主流網路供應商及技術。

Cinder | Block Storage | 對正在運行的實例提供持久性的數據塊存儲。其可插拔驅動架構設計有助於創建和管理塊存儲設備。

Swift | Object Storage | 通過基於 REST、HTTP 的 API 存取任何非結構化的數據對象。數據複寫和擴展架構使其具備高度的容錯性。這種機制與可掛載目錄的文件伺服器並不一致。

Heat | Orchestration | 利用 OpenStack 本機 REST API 及 CloudFormation 兼容的查詢 API,通過本機 HOT 模板格式或 AWS CloudFormation 模板格式編排多個複合雲應用程序。

Horizon | Dashboard | 提供與底層 OpenStack 服務進行交互的基於 Web 的自助門戶,包括啟動實例、分配 IP 地址、設置訪問控制。

Ceilometer| Telemetry | 出於計費、基準審查、可擴展性、及統計方面的目的,用於監測和計量 OpenStack 雲。

&> 實驗環境

節點 | IP | 功能

------ | ------------ | ----------

node-1 | 192.168.0.10 | Controller Node, Network Node

node-2 | 192.168.0.11 | Compute Node 1

node-3 | 192.168.0.12 | Compute Node 2

## OpenStack


9.1更新一下,添加了DevStack的教程。新手向的話直接可以看著實操了。只要求自己會用工具起虛擬機就行。

具體教程:先定一個小目標,把OpenStack裝起來

裝了有問題的,文章中也留了交流問題的方式,希望能幫助到新手期的小夥伴。

————————————————————————

正如 @江駿 說的;devstack還是玩OpenStack需要用到的。

我這邊就說下關於devstack,最近我們把devstack源mirror到了國內做OpenStack學習體驗平台的http://trystack.cn,以前直接從Github下的話,時間有時候不好預估,速度太慢,會等得很煩。

具體操作參考:http://git.trystack.cn/cgit/?p=about

希望能幫助大家節約下載的時間。

看到覺得有用的小夥伴也謝謝給個贊:)


10萬美元的專業,不如去培訓班實際,未來世界應該是手機訪問成千上萬設置好的虛擬機就什麼都不需要了


openstack從業者說幾句。

首先,樓主是基於openstack的應用,還是用openstack搭建雲環境。因為openstack有很多模塊,每個模塊又有較多靈活配置項,不同目的決定學習方式不同,建議在了解各模塊基礎上,擇偏向重點專研。

1.搞過VMware會對你有幫助。openstack本質是一套開源的可搭建雲平台的框架。比如現版本正在搞的遷移,VMware已做的很好。(簡單先理解為openstack和VMware同層次平行,具體比如ceilometer模塊可管理VMware節點等入門了解後再說吧)

2.kvm是虛擬機管理層。也就是說openstack可以採用kvm也可採用其他,比如xen。上下層關係。

建議,去谷歌一把,理清模塊間關係,搭建環境,上命令行體驗,選擇需要模塊看架構文檔,閱源碼。


openstack的配置選項非常非常的多。

英文能力不錯的話,準備三台以上PC或者虛擬機(別都開在再同一台PC上),看官方文檔。

OpenStack Docs: Current


看看中文快速入門

OpenStack設計與實現 (豆瓣)


沒辦法,貼圖對你有幫助...

2017年2月7號更新

2017年5月18號更新...

我們又出N版高級的了

對課程和視頻有興趣的可以聯繫我

私信發試看地址。


openstack的各個組成模塊:keystone, glance, nova, cinder, neutron, horizen

了解包括基本原理,以及實際環境搭建,問題的跟蹤和解決。

有什麼疑問的話, 可以來交流討論。


搭環境,看架構,分析源碼。


推薦閱讀:

openstack入門的書該看什麼,求推薦?
openstack未來發展前景怎樣?
Kubernetes和OpenStack到底是什麼關係?
為何現在流行OpenStack和Docker結合?
最近在學習 OpenStack,已經了解了其作用、架構。想進一步學習研究OpenStack各組件,對於源代碼的閱讀和學習,想得到大家的建議?

TAG:雲計算 | 計算機 | OpenStack |