第一次OpenStack之旅
今天開始,研究OpenStack,開始IAAS層的探索!!
雲:通過管理框架來靈活使用通用硬體裝置的計算方式,可以說是擁有了資源“雲”。
OpenStack:從一個更高的角度來說,你可以認為OpenStack之於資料中心,就像作業系統之於伺服器,都帶來了相同水平的執行效率。
租戶:是資源的配額限制集合,被虛擬機器用來在邏輯上與不同租戶互相隔離。
以下使用Icehouse版本的OpenStack
https://www.manning.com/books/openstack-in-action
OpenStack是什麼
OpenStack官方網站這樣描述這個框架:建立私有云和公有云的開源軟體;OpenStack軟體是一個大規模雲作業系統;
主要元件有:
通過 DevStack 來體驗 OpenStack
DevStack是一個快速部署OpenStack的工具。DevStack可以讓你與一個小規模(更大規模部署的代表)的OpenStack
互動。
準備工作:需要一臺執行可支援的Linux發行版本的物理伺服器或者虛擬伺服器。
1. 搭建伺服器:
最好是用一臺全新安裝Linux的伺服器來進行DevStack的部署,本次實驗建議使用Ubuntu 16.04(TLS),如果條件允許,建議使用物理硬體來部署,儘管在虛擬環境中“巢狀”執行OpenStack也是可行的,但執行在這個巢狀的OpenStack環境裡的虛擬機器會非常慢。
設定IP地址:
vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.8.100
netmask 255.255.255.0
gateway 192.168.8.2
dns-nameserver 119.29.29.29
關閉防火牆:sudo ufw disable
檢視防火牆:sudo ufw status
安裝SSH服務:
sudo apt-get install openssh-server
更改源:
sudo vim /etc/apt/sources.list
阿里源:
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
更新源:
sudo apt-get update
更改pip映象源:
# 更改pip映象源
echo "---> update pip mirrors ..."
mkdir ~/.pip
echo """
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
""" >> ~/.pip/pip.conf
2. 準備伺服器環境
DevStack將會安裝和配置整套OpenStack。部署OpenStack框架的過程稱為Stacking。
現在應該通過普通使用者加 sudo 許可權操作,而不是通過 root 使用者,在下面的例子中使用 sysop 作為有 sudo 特權的普通使用者。更新源
sudo apt-get -y update
DevStack 不是通過 Linux 發行版提供的包管理系統,而是直接通過 OpenStack 線上軟體倉庫
獲取 OpenStack 元件。Git,用來從 OpenStack 軟體倉庫獲取原始碼。
leo@master:~$ sudo apt-get install git
3. 準備 DevStack
下載最新的DevStack程式碼,如下:
leo@master:~$ sudo git clone http://git.trystack.cn/openstack-dev/devstack.git /opt/devstack/
下一步是為 OpenStack 設定正確的目錄許可權和建立一個新的服務賬號(所有服務都在該賬號
下執行),這一過程將會建立 stack 使用者並設定所有 DevStack 檔案從屬於這個使用者。
# 進入 devstack 目錄
leo@master:~$ cd /opt/devstack
# 使 create-stack-user.sh工具可執行
leo@master:/opt/devstack$ sudo chmod u+x tools/create-stack-user.sh
# 建立 stack 使用者
leo@master:/opt/devstack$ sudo tools/create-stack-user.sh
Creating a group called stack
Creating a user called stack
Giving stack user passwordless sudo privileges
# 使 stack 使用者擁有目錄中的所有檔案
leo@master:/opt/devstack$ sudo chown -R stack:stack /opt/devstack/
目錄已經設定好正確的許可權,新使用者也已經建立好了。下一步是切換到剛建立的 stack 賬戶,
建立 DevStack 的配置檔案,然後就可以以這個配置檔案 stack(部署)了。
4. 執行 DevStack
DevStack 被設計用來部署和測試 OpenStack 元件,因此有多種可行的配置方式。DevStack
是通過維護 local.conf 檔案中的配置引數來進行控制的。現在必須在 devstack 目錄下建立一個名為 local.conf 的配置檔案。
1、切換到stack使用者執行下面的操作:
leo@master:/opt/devstack$ sudo -i -u stack
stack@master:~$ cd /opt/devstack
stack@master:/opt/devstack$
2、使用 Vim 編輯、建立 local.conf
stack@master:/opt/devstack$ vim local.conf
[[local|localrc]]
ADMIN_PASSWORD=devstack
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
HOST_IP=172.181.141.11
# Define images to be automatically downloaded during the DevStack built process.
#DOWNLOAD_DEFAULT_IMAGES=False
#IMAGE_URLS=http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
#CINDER CONFIG
VOLUME_BACKING_FILE_SIZE=10240M
#GENERAL CONFIG
API_RATE_LIMIT=False
# Output
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=False
SCREEN_LOGDIR=/opt/stack/logs
執行安裝命令:
./stack.sh
遇到的坑:
- pip版本問題
安裝過程中會把pip降到pip 9.0.3辦吧,而最新版本是10.0.0,後面因為版本問題報錯,檢視指令碼發現在:
/opt/devstack/tools/cap-pip.txt 中,定義的pip辦吧是pip!=8,<10修改為pip!=8,<11後,可以安裝最新pip,排除錯誤。升級pip命令:pip install -U pip setuptools wheel pip安裝問題
安裝過程中遇到pip安裝失敗,可以手動安裝,
例如:
sudo pip install cryptography===2.2.2
sudo pip install Babel===2.6.0
sudo pip install numpy===1.14.5
或者直接:
sudo pip install -r requirements.txtETCD錯誤
https://github.com/coreos/etcd/releases/download/v3.2.17/etcd-v3.2.17-linux-amd64.tar.gz
手動下載並安裝ETCD版本為:etcd-v3.2.17-linux-amd64.tar.gz,放到/opt/devstack/files中,再次執行即可。版本錯誤
經過測試,很多組建的版本有錯誤,遇到版本錯誤可以自行修改檔案/opt/stack/requirements/upper-constraints.txt- 自己下載原始碼
git clone git://git.openstack.org/openstack/neutron.git /opt/stack/neutron --branch master
git clone git://git.openstack.org/openstack/nova.git /opt/stack/nova --branch master
git clone git://git.openstack.org/openstack/horizon.git /opt/stack/horizon --branch master
- 終極大法
遇到錯誤,手動安裝依賴包,然後重新執行:
./unstack.sh
./clear.sh
./stack.sh
多次執行,必將成功!
成功後貼圖:
=========================
DevStack Component Timing
(times are in seconds)
=========================
run_process 27
test_with_retry 4
apt-get-update 14
pip_install 580
osc 265
wait_for_service 30
dbsync 30
apt-get 61
-------------------------
Unaccounted time 1231
=========================
Total runtime 2242
This is your host IP address: 127.18.141.11
This is your host IPv6 address: ::1
Horizon is now available at http://127.18.141.11/dashboard
Keystone is serving at http://127.18.141.11/identity/
The default users are: admin and demo
The password: devstack
WARNING:
Using lib/neutron-legacy is deprecated, and it will be removed in the future
Services are running under systemd unit files.
For more information see:
https://docs.openstack.org/devstack/latest/systemd.html
DevStack Version: rocky
Change: ea2aff96ffa8ec95d029a20e052648cfe6de3a03 Merge "Ensure passwordless ssh with stack between nodes" 2018-06-09 05:28:07 +0000
OS Version: Ubuntu 16.04 xenial
5、測試devstack
測試包含兩個測試套件:DevStack exercises 和 OpenStack Tempest,執行下面的命令進行測試:
./exercise.sh
https://blog.csdn.net/u011521019/article/details/51114681
相關文章
- Openstack -- Queen --RDO
- openstack部署2
- vSphere export openstackExport
- OpenStack 與 Rancher
- openstack指定IP
- 重啟openstack的openstack-service命令不存在
- OpenStack-雲端計算,虛擬化技術,初步認識OpenStack,瞭解OpenStack的結構部署以及OpenStack核心專案
- OpenStack Git review 使用GitView
- How OpenStack integrates with Ceph?
- OpenStack 安裝 Keystone
- Openstack元件——Keystone解析元件
- OpenStack學習系列之十二:安裝ceph並對接OpenStack
- OpenStack雲平臺部署
- 深入理解openstack neutron
- Packer構建openStack映象
- Kolla-ansible部署openStack
- OpenStack——雲平臺部署
- OpenStack計費服務
- OpenStack平臺的使用
- openstack PCI透傳(GPU)GPU
- CentOS7.2+OpenStack+kvm 雲平臺部署--用OZ工具製作openstack映象CentOS
- openstack--rocky 安裝注意
- OpenStack Client 安裝及配置client
- OpenStack的Heat元件詳解元件
- OpenStack的Swift元件詳解Swift元件
- OpenStack的Trove元件詳解元件
- 標準 OpenStack 多region配置
- kolla-ansible-----快速部署openstack
- OpenStack平臺映象優化優化
- 私有云平臺OpenStack之利用Fuel-OpenStack9.0安裝部署詳細教程(中)
- 私有云平臺OpenStack之利用Fuel-OpenStack9.0安裝部署詳細教程(上)
- 深挖Openstack Nova - 例項建立(2)
- 深挖Openstack Nova - 例項建立(3)
- 深挖Openstack Nova - 例項建立(4)
- OpenStack中的服務型別型別
- openstack完整的部署(最詳細)
- openstack下熱遷移機制
- openstack從入門到放棄