Openstack 環境部署並創建Centos 7 虛擬機教程

系統要求

ubuntu 16.04
一定要注意使用ubuntu 16.04系統,其他系統會出現各種莫名其妙的不兼容問題。。。
另外,磁盤存儲空間儘量大些!!!否則,隨便生成幾個實例就沒空間。

更換apt源

修改/etc/apt/sources.lis t文件,改成阿里雲

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse

更新apt-get update

安裝python2.7以及pip

apt-get install python python-pip

修改【超級用戶】的 pip源:

sudo -i #進入超級用戶
vim ~/.pip/pip.conf

內容如下:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host = https://mirrors.aliyun.com/pypi/simple/

安裝proxychains設置代理

安裝的中途,openstack需要去亞馬遜下載若干個安裝包,考慮到可能需要fq ,現在設置好全局代理來。

安裝proxychains

apt-get install proxychains

修改proxychains的腳本源碼,因爲這個版本的會報錯:

vim /usr/bin/proxychains

export LD_PRELOAD=libproxychains.so.3 改成 export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libproxychains.so.3

開啓socks5代理端口

使用ssh或ss客戶端開啓一個可以fq的代理端口。
例如,如果你有一個主機的ss客戶端的本地代理端口爲 ip: 1080,那麼這個1080也可以被用來作爲proxychains的代理端口。
當然,你也可以使用ssh隧道來實現這一點,假設你有一臺在【美國】的主機,它的ip爲xxx.yyy.zzz.qqq。
那麼你可以這樣:ssh -D 127.0.0.1:1080 [email protected] ,這樣也一樣在本機開啓一個socks5的本地代理端口。

設置proxychains的配置文件

vim /etc/proxychains.conf

把DNS代理關掉
在這裏插入圖片描述
同時設置socks5的代理端口
在這裏插入圖片描述
後面跟的就是你的socks5 端口的所在的ip和端口信息。

拉取devstack代碼

sudo apt-get install git proxychains
proxychains git clone https://git.openstack.org/openstack-dev/devstack -b stable/queens

創建stack賬戶

sudo devstack/tools/create-stack-user.sh

將devstack目錄放到/opt/stack中並設置權限

sudo mv devstack /opt/stack

sudo chown -R stack:stack /opt/stack

切換到stack用戶

sudo su - stack

同樣的給stack賬戶也設置阿里雲的pip源:

sudo su - stack
mkdir ~/.pip/
vim ~/.pip/pip.conf

把阿里雲源貼上去:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host = https://mirrors.aliyun.com/pypi/simple/

編譯安裝

配置文件

準備配置文件:

sudo su - stack 
cd devstack
cp samples/local.conf ./
cp samples/local.sh   ./

修改配置文件:

vim local.conf

內容:

  1. 修改密碼:全部改成統一的secret
    在這裏插入圖片描述
  2. 在末尾追加:
    在這裏插入圖片描述
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

安裝

OK,安裝:

proxychains ./stack.sh

等就完事了,注意如果安裝的特別耗時,注意看看pip源和apt源有沒有設置正確並生效。
如果不設置阿里雲的pip源,安裝會巨慢;
如果不設置代理,在安裝某些關鍵包可能失敗。

可能的報錯

  1. 安裝報錯:E: Unable to locate package libsystemd-dev。 方法:使用ubuntu 16.04系統走這個教程。

  2. configure: error: *** POSIX caps library not found 。方法:換16.04 系統安裝

  3. Syntax Error: EOF while scanning triple-quoted string literal 。。。。方法:這個問題,一般是在安裝pip包的時候,被用戶強行中斷pip的下載或安裝過程,導致包才下載一半。解決方法是根據日誌找出正在安裝什麼pip包,手動清空pip的緩存,然後再使用pip install xxx安裝這個包,然後重新執行 proxychains ./stack.sh

  4. df : /mnt/hgfs : Protocol Error,系統中有未正確掛載的hgfs設備,把它卸載掉就行。sudo umount /mnt/hgfs

  5. def _collate(*iterables, key=lambda a: a, reverse=False):
    ^
    SyntaxError: invalid syntax 方法:pip install more_itertools==4.0.0

  6. ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) 方法:不使用proxychains 重啓一次stack.sh即可。

  7. More than one SecurityGroup exists with the name ‘default’ .不用管,這個問題不大。

  8. Error: Failed to perform requested operation on instance “vm1”, the instance has an error status: Please try again later [Error: Host ‘ccrfox105’ is not mapped to any cell]. 說主機名沒有映射到任何的節點。 解決方法:執行:nova-manage cell_v2 discover_hosts

設置網絡

stack.sh執行完畢後,訪問dashboard. http://172.16.30.174/dashboard ,IP是剛剛執行stack.sh的主機地址。

添加私有網絡

在這裏插入圖片描述
設置網絡名稱
在這裏插入圖片描述
設置子網
在這裏插入圖片描述

配置路由

點擊網絡拓撲,選擇public的一個路由器。
在這裏插入圖片描述
添加接口
在這裏插入圖片描述
選擇子網
在這裏插入圖片描述
選完以後就OK啦,可以看到public和private連在一起了。
在這裏插入圖片描述

配置安全組

所有的虛擬機的默認安全組在啓動的時候都會阻止所有外來的連接。我們需要添加新的安全組。
在這裏插入圖片描述
輸入好名稱,然後點擊“管理規則”,再點擊添加規則。
添加四條規則:
所有TCP的出入連接,所有ICMP的出入連接。在這裏插入圖片描述

添加Centos鏡像

去 http://cloud.centos.org/centos/7/images/ 選擇一個想要的centos鏡像。
我選擇的是 CentOS-7-x86_64-GenericCloud-1907.qcow2c ,它是qemu的鏡像。
我們想先把鏡像下載到本地,然後通過dashboard上傳鏡像。
在這裏插入圖片描述
創建鏡像,填好就行。在這裏插入圖片描述
等待一段時間,上傳完畢後,就可以從鏡像中創建實例了。

創建Centos 7 實例

在這裏插入圖片描述

設置個名稱

選擇創建的鏡像源,

在這裏插入圖片描述
也就是剛剛上傳的Centos 7.
在這裏插入圖片描述

選擇配置

在這裏插入圖片描述

選擇所屬的網絡

在這裏插入圖片描述

選擇安全組

在這裏插入圖片描述
選擇剛剛設置好的TCP/ICMP全通的安全組。

選擇密鑰對

在此刻配置密鑰對,可以在後面首次登陸的時候直接使用ssh私鑰登錄,而不用輸入密碼。
點擊創建密鑰對,然後選擇這個新建的密鑰對。在創建的同時,dashboard會主動讓你下載好私鑰文件xxx.pem,這個就是在ssh登錄的時候用的。
在這裏插入圖片描述

OK 創建一波

創建中。。。。
在這裏插入圖片描述
創建完畢:::
在這裏插入圖片描述
可以看到,此時新建立的虛擬機只有私有IP 10.0.0.92 ,需要綁定一個外部可以訪問的IP,x在這裏插入圖片描述
選擇動作:綁定浮動IP.
在這裏插入圖片描述
選擇外部IP資源池,點擊“分配IP”
在這裏插入圖片描述
可以看到,分配了一個172.24.4.5 的外部IP,點擊“關聯”。
在這裏插入圖片描述
此時,就可以看到剛剛的Centos JM虛擬機有兩個IP啦。

在這裏插入圖片描述

對於公有云來說,當外部IP資源池改成他自己的外網IP池的時候,就實現了外網IP的分配了。

登錄一波

在執行stack.sh的那個主機,執行ssh登錄。
先Ping一下,看網絡是否連通:
在這裏插入圖片描述
發現沒毛病,ssh登錄一波:
在這裏插入圖片描述
發現報錯,得用centos用戶名登錄
在這裏插入圖片描述
再次登錄:ssh [email protected] -i /home/dk/dk-keys.pem -i 後面跟的就是剛剛設置的密鑰對的私鑰文件。

在這裏插入圖片描述

發現登錄成功!!!使用ifconfig,可以看到就是Centos JM的私網IP。

參考資料

  1. Ubuntu16安裝OpenStack https://www.jianshu.com/p/d4e91feceb05
  2. 優雅安裝OpenStack https://zhuanlan.zhihu.com/p/28996062
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章