把 Kolla 的源代碼下載下來后,先從總體上分析 Kolla 的目錄結構,查看頂層目錄結構,使用
tree -L 1輸出
.├── ansible├── compose├── demos├── devenv├── docker├── docs├── LICENSE├── README.md├── specs├── test-requirements.txt├── tests├── tools└── tox.ini從頂層文件目錄結構來看,各個目錄所包含的內容為:
ansible
ansible 配置目錄。里面的 README.md 文件提示這部分為 Koalla, Koalla - Kolla with ansible!。它的目標是在現(xiàn)有 Kolla 組件上,使用 ansible 和 docker-compose 建立一個部署系統(tǒng)。:-)
compose
docker-compose 配置目錄。里面包含很多 docker-compose 使用的 yaml 配置文件,每個配置都簡單地啟動一組 docker 容器來實現(xiàn)某個服務。在啟動服務前,需要先通過 tools/genenv 的工具腳本來生成 Openstack 環(huán)境變量,然后才能用 docker-compose 或 tools/kolla start 來啟動服務。
demos
示例目錄。里面包含了 heat 的編排配置,目前不關注它。
devenv
開發(fā)環(huán)境。里面包含了如何建立 Kolla 開發(fā)環(huán)境的說明,README.md 文件里面說明構建一個 N 節(jié)點的 Kolla 集群的步驟、參數(shù)設置、跟蹤調試等。
docker
docker 鏡像定義目錄。非常重要的目錄,里面包括 Kolla 項目所有的 Dockerfile 文件,是項目的重要部分。 Kolla 的 docker 鏡像遵從 基礎鏡像 -> 應用基礎鏡像 -> 應用鏡像 的層疊模式。 Kolla 項目采用 RedHat 系的 linux 鏡像為基礎鏡像,可使用 CentOS / Fedora / RHEL 。數(shù)據(jù)放入到 數(shù)據(jù)卷容器,因此會定義 mariadb-data 和 nova-compute-data 等數(shù)據(jù)卷容器。
docs
文檔目錄。也是非常重要的目錄,里面包括開發(fā)環(huán)境設置、鏡像編譯、Kolla 環(huán)境變量等說明,建議趁著現(xiàn)在文檔還比較少,把文檔都認真讀一遍 :-)
LICENSE
LICENSE文件。Apache License Version 2 的 License 文件,沒什么好說的。
README.md
說明文件。
specs
spec目錄。目前只有一個 spec,說明使用容器安裝 OpenStack 的理念和優(yōu)勢。
test-requirements.txt
python 的 requirements 文件。用于說明測試時所需要的 python 包,目前只有一個 PyYAML。
tests
測試目錄。這個目錄應該包含 Kolla 的測試套件,但目前只有一個 setup_docker.sh 用于安裝 docker。
tools
工具腳本目錄。目錄包含編譯 docker 鏡像、清理 docker 環(huán)境、生成 Kolla 環(huán)境變量、Kolla 啟動腳本、json/yaml文件檢驗等腳本。建議把這個目錄的腳本都看一遍,需要點 Shell、python的知識。
tox.ini
tox配置文件。tox是一個標準自動化測試工具,python里的。目前這個文件很簡單,只包含了 virtualenv 設置和一些簡單的檢查。
現(xiàn)在 Kolla 還小,不像 nova / neutron 這些龐然大物,因此很值得把 Kolla 的代碼認真看看,整理 Kolla 的設計思路,對以后把握 Kolla 的發(fā)展很有幫助,也希望大家能參與到 Kolla 的社區(qū)中,無論是貢獻代碼、寫寫 Blog、找茬,都能幫助到 Kolla 。
新聞熱點
疑難解答