共計 9419 個字符,預計需要花費 24 分鐘才能閱讀完成。
這篇文章給大家分享的是有關 juno 版 OpenStack 如何部署的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
安裝前備注
官方推薦的各個節點的最低配置如下:
Controller Node: 1 processor, 2 GB memory, and 5 GB storage
Network Node: 1 processor, 512 MB memory, and 5 GB storage
Compute Node: 1 processor, 2 GB memory, and 10 GB storage
實際操作發現,以 Ubuntu14.04LTS 虛擬機為例,controller 節點按 8G 存儲空間設置后到后期仍然會出現磁盤空間不足的情況,所以推薦按 12G 容量來給定磁盤空間。
由于本文采用的是虛擬機安裝,可以先配置一個虛擬機的模版,把一些統一的修改方案做好,節省一些工作量,具體內容如下:
更改 “`
vi /etc/hosts“` 文件,添加如下代碼:
10.10.10.10 controller
10.10.10.11 compute
10.10.10.12 network
10.10.10.13 block
10.10.10.14 object1
10.10.10.15 object2```
2. 安裝最新的 OpenStack 發布包,執行如下命令:安裝 Ubuntu Cloud archive keyring 和 repository
apt-get install ubuntu-cloud-keyring“`;
# echo deb http://ubuntu-cloud.archive.canonical.com/ubuntu trusty-updates/juno main /etc/apt/sources.list.d/cloudarchive-juno.list```
更新所有安裝包
apt-get update apt-get dist-upgrade“`
安裝 NTP
# apt-get install ntp```
# 網絡配置

上圖為本文所用的基本網絡架構圖,由于之前試驗使用官方文檔的網絡 IP 配置會導致連接不上外網(具體原因不明,個人感覺是因為 IP 的網段和使用虛擬機的主機的網段處于同一網段中而沖突,后用 Ubuntu server 版測試,還是網關問題,注釋掉設置文件中 eth0 的網關后即可以聯網),故 IP 的設定參考 [OPENSTACK JUNO: INSTALLATION USING VIRTUALBOX UBUNTU 14.10 ( BASIC ENVIRONMENT ) - 1](http://chaalpritam.blogspot.jp/2015/03/openstack-juno-installation-basic-environment.html) 文章中的 IP 設定,下文將詳細給出。具體 IP 配置方案如下:| 網絡 | 使用的網段 |
|:-----:|:------------:|
| The management network | 10.10.10.1 |
| The tunnel network | 10.20.20.1 |
| The external network | 192.168.100.1 |
management network 里各個節點的 IP 設定如下:| 節點 | 使用 IP |
|:-----:|:-------:|
| controller | 10.10.10.10 |
| compute | 10.10.10.11 |
| network | 10.10.10.12 |
| block | 10.10.10.13 |
| object1 | 10.10.10.14 |
| object2 | 10.10.10.15 |
在進行各個節點具體操作之前,先設定虛擬機網絡的虛擬網絡,進入 VirtualBox- 全局設定 - 網絡 - 僅主機 (Host-Only) 網絡:1. 添加網絡 VirtualBox Host-Only Ethernet Adapter #2,主機虛擬網絡界面中設置 IPv4 地址為 10.10.10.1,IPv4 網絡掩碼為 255.255.255.0,DHCP 服務器選項不啟用;2. 添加網絡 VirtualBox Host-Only Ethernet Adapter #3,主機虛擬網絡界面中設置 IPv4 地址為 10.20.20.1,IPv4 網絡掩碼為 255.255.255.0,DHCP 服務器選項不啟用;3. 添加網絡 VirtualBox Host-Only Ethernet Adapter #4,主機虛擬網絡界面中設置 IPv4 地址為 192.168.100.1,IPv4 網絡掩碼為 255.255.255.0,DHCP 服務器選項不啟用;## controller 節點上的網絡配置
controller 節點虛擬機網絡設置,設置 - 網絡:1. 網卡 1,連接方式 - 僅主機 (Host-Only) 適配器,界面名稱 - VirtualBox Host-Only Ethernet Adapter #2,控制芯片 - 準虛擬化網絡(virtio-net),混雜模式 - 全部允許,接入網線 - 勾選;2. 網卡 2,連接方式 - 網絡地址轉換(NAT),控制芯片 - 準虛擬化網絡(virtio-net),接入網線 - 勾選。啟動虛擬機后,配置其網絡,通過更改 ```
# vi /etc/network/interfaces``` 文件,添加如下代碼:
The management network interface
auto eth0 iface eth0 inet static address 10.10.10.10 netmask 255.255.255.0
The NAT network
auto eth2 iface eth2 inet dhcp“`
配置命名的解決方案,更改 “`
vi /etc/hostname 文件,將主機名改為 controller,更改 vi /etc/hosts“` 文件,添加以下代碼:
10.10.10.10 controller
10.10.10.11 compute
10.10.10.12 network
10.10.10.13 block
10.10.10.14 object1
10.10.10.15 object2```
之后重啟系統激活配置。## compute 節點上的網絡配置
compute 節點虛擬機網絡設置,設置 - 網絡:1. 網卡 1,連接方式 - 僅主機 (Host-Only) 適配器,界面名稱 - VirtualBox Host-Only Ethernet Adapter #2,控制芯片 - 準虛擬化網絡(virtio-net),混雜模式 - 全部允許,接入網線 - 勾選;2. 網卡 2,連接方式 - 僅主機 (Host-Only) 適配器,界面名稱 - VirtualBox Host-Only Ethernet Adapter #3,控制芯片 - 準虛擬化網絡(virtio-net),混雜模式 - 全部允許,接入網線 - 勾選;3. 網卡 3,連接方式 - 網絡地址轉換(NAT),控制芯片 - 準虛擬化網絡(virtio-net),接入網線 - 勾選。啟動虛擬機后,配置其網絡,通過更改 ```
# vi /etc/network/interfaces``` 文件,添加如下代碼:
The management network interface
auto eth0 iface eth0 inet static address 10.10.10.11 netmask 255.255.255.0
The tunnel network interface
auto eth2 iface eth2 inet static address 10.20.20.11 netmask 255.255.255.0
The NAT network
auto eth3 iface eth3 inet dhcp“`
配置命名的解決方案,更改 “`
vi /etc/hostname 文件,將主機名改為 compute,更改 vi /etc/hosts“` 文件,添加以下代碼:
10.10.10.10 controller
10.10.10.11 compute
10.10.10.12 network
10.10.10.13 block
10.10.10.14 object1
10.10.10.15 object2```
之后重啟系統激活配置。## network 節點上的網絡配置
network 節點虛擬機網絡設置,設置 - 網絡:1. 網卡 1,連接方式 - 僅主機 (Host-Only) 適配器,界面名稱 - VirtualBox Host-Only Ethernet Adapter #2,控制芯片 - 準虛擬化網絡(virtio-net),混雜模式 - 全部允許,接入網線 - 勾選;2. 網卡 2,連接方式 - 僅主機 (Host-Only) 適配器,界面名稱 - VirtualBox Host-Only Ethernet Adapter #3,控制芯片 - 準虛擬化網絡(virtio-net),混雜模式 - 全部允許,接入網線 - 勾選;3. 網卡 3,連接方式 - 僅主機 (Host-Only) 適配器,界面名稱 - VirtualBox Host-Only Ethernet Adapter #4,控制芯片 - 準虛擬化網絡(virtio-net),混雜模式 - 全部允許,接入網線 - 勾選;4. 網卡 4,連接方式 - 網絡地址轉換(NAT),控制芯片 - 準虛擬化網絡(virtio-net),接入網線 - 勾選。啟動虛擬機后,配置其網絡,通過更改 ```
# vi /etc/network/interfaces``` 文件,添加如下代碼:
The management network interface
auto eth0 iface eth0 inet static address 10.10.10.12 netmask 255.255.255.0
The tunnel network interface
auto eth2 iface eth2 inet static address 10.20.20.12 netmask 255.255.255.0
The external network interface
auto eth3 iface eth3 inet manual up ip link set dev $IFACE up down ip link set dev $IFACE down
The NAT network
auto eth4 iface eth4 inet dhcp“`
配置命名的解決方案,更改 “`
vi /etc/hostname 文件,將主機名改為 network,更改 vi /etc/hosts“` 文件,添加以下代碼:
10.10.10.10 controller
10.10.10.11 compute
10.10.10.12 network
10.10.10.13 block
10.10.10.14 object1
10.10.10.15 object2```
之后重啟系統激活配置。## 驗證節點之間的連通性
各個節點之間能相互 ping 通,能 ping 外網,以 controller 節點為例:1. ping 外網
$ ping -c 4 www.baidu.com PING www.a.shifen.com (14.215.177.37) 56(84) bytes of data. 64 bytes from 14.215.177.37: icmp_seq=1 ttl=54 time=6.16 ms 64 bytes from 14.215.177.37: icmp_seq=2 ttl=54 time=6.42 ms 64 bytes from 14.215.177.37: icmp_seq=3 ttl=54 time=6.12 ms 64 bytes from 14.215.177.37: icmp_seq=4 ttl=54 time=5.84 ms
— www.a.shifen.com ping statistics — 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 5.841/6.140/6.429/0.229 ms“`
ping compute 節點
$ ping -c 4 compute
PING compute (10.10.10.11) 56(84) bytes of data.
64 bytes from compute (10.10.10.11): icmp_seq=1 ttl=64 time=1.35 ms
64 bytes from compute (10.10.10.11): icmp_seq=2 ttl=64 time=0.936 ms
64 bytes from compute (10.10.10.11): icmp_seq=3 ttl=64 time=0.843 ms
64 bytes from compute (10.10.10.11): icmp_seq=4 ttl=64 time=1.09 ms
--- compute ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.843/1.055/1.352/0.194 ms```
3. ping network 節點
$ ping -c 4 network PING network (10.10.10.12) 56(84) bytes of data. 64 bytes from network (10.10.10.12): icmp_seq=1 ttl=64 time=0.975 ms 64 bytes from network (10.10.10.12): icmp_seq=2 ttl=64 time=0.530 ms 64 bytes from network (10.10.10.12): icmp_seq=3 ttl=64 time=1.05 ms 64 bytes from network (10.10.10.12): icmp_seq=4 ttl=64 time=0.815 ms
— network ping statistics — 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 0.530/0.844/1.056/0.200 ms“`
Network Time Protocol(NTP)
NTP 是用來同步各個節點之間的服務(service)的,推薦讓 controller 節點參照一些更精確的服務器來同步,而其他節點參照 controller 節點來同步。(We recommend that you configure the controller node to reference more accurate (lower stratum) servers and other nodes to reference the controller node.)
controller 節點上 NTP 的配置
安裝 NTP
# apt-get install ntp```
配置 NTP
1. 修改配置文件 ```
# vi /etc/ntp.conf```,添加如下代碼:
server NTP_SERVER iburst restrict -4 default kod notrap nomodify restrict -6 default kod notrap nomodify NTP_SERVER 這里被代替為 controller,也可設置為其他主機名或服務器,在配置文件中其他參照的 server 不需要使用的話也可以注釋掉,restrict 選項中移除 nopeer 和 noquery 選項。如果 /var/lib/ntp/ntp.conf.dhcp“` 文件存在,則刪除之。
重啟 NTP 服務:“`
service ntp restart“` 其他節點上 NTP 的配置
安裝 NTP
# apt-get install ntp```
配置 NTP
1. 修改配置文件 ```
# vi /etc/ntp.conf```,添加如下代碼:
server controller iburst 其他 server 全部都注釋掉。如果 /var/lib/ntp/ntp.conf.dhcp“` 文件存在,則刪除之。
重啟 NTP 服務:“`
service ntp restart“` 驗證
在 controller 節點上運行如下命令:
# ntpq -c peers
remote refid st t when poll reach delay offset jitter
==============================================================================
localhost .STEP. 16 l - 64 0 0.000 0.000 0.000
91.189.89.199 193.79.237.14 2 u 67 64 16 273.049 -69.706 53.406```
remote 這欄中能看到主機名或者多個 NTP 服務器的 IP 地址。2. 在 controller 節點上運行如下命令:
ntpq -c assocind assid status conf reach auth condition last_event cnt
1 21224 8011 yes no none reject mobilize 1 2 21225 965a yes yes none sys.peer sys_peer 5“` condition 這欄中至少有一個 server 含有 sys.peer。
在其他節點上運行如下命令:
ntpq -c peers
remote refid st t when poll reach delay offset jitter
==============================================================================
controller 91.189.89.199 3 u 23 64 0 0.000 0.000 0.000```
remote 這欄中顯示 controller 節點的主機名。4. 在其他節點上運行如下命令:
ntpq -c assoc ind assid status conf reach auth condition last_event cnt
1 57512 9024 yes yes none reject reachable 2“` 這里 condition 欄按照官方文檔應該是 sys.peer,這里顯示為 reject 不知道原因為何,參考以下兩篇文章,其也顯示為 reject,OpenStack 入門教程 -Part2- 配置 OpenStack 實驗環境,openstack【Kilo】入門【準備篇】二:NTP 安裝。
OpenStack 安裝包
方法如本文開頭備注所寫。
數據庫配置
數據庫一般都安裝在 controller 節點上,本文采用 MySQL。
安裝數據庫
# apt-get install mariadb-server python-mysqldb```
在安裝過程中會要求創建和輸入 root 帳號的密碼。2. 修改數據庫的配置文件,```
# vi /etc/mysql/my.cnf```:[mysqld]``` 部分,把 ```
bind-address``` 對應的 IP 地址替換為 controller 的 management 網絡的接口 IP。
[mysqld] … bind-address = 10.10.10.10 繼續在 [mysqld]“` 部分添加如下代碼:
[mysqld]
...
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
character-set-server = utf8```
3. 重啟數據庫服務:
service mysql restart“`
設置數據庫安全參數
# mysql_secure_installation```
在設置的步驟中,可以不用重置 root 密碼,其他按提示設置即可。# 消息服務(Messaging server)本文選用 RabbitMQ 作為消息隊列服務器。安裝 RabbitMQ:
apt-get install rabbitmq-server“`
安裝過程中 RabbitMQ 會自動創造一個名為 guest 的賬戶,密碼也為 guest。為了方便,在本文中使用 guest 這個賬戶,可以使用以下命令修改密碼,將其中 RABBIT_PASS 替換為合適的密碼:
# rabbitmqctl change_password guest RABBIT_PASS
Changing password for user guest ...
...done.```
對于 3.3.0 以上版本的,需要開啟遠程訪問,具體操作如下:檢查 RabbitMQ 版本
rabbitmqctl status | grep rabbit
Status of node rabbit@controller … {running_applications,[{rabbit, RabbitMQ , 3.4.2},“`
檢查 /etc/rabbitmq/rabbitmq.config 文件,確保 loopback_users 對應空列表
[{rabbit, [{loopback_users, []}]}].```
如果文件不存在則新建一個,將上述代碼寫入其中。重啟服務
service rabbitmq-server restart“`
至此,OpenStack 的基礎環境配置完成。
安裝時出現的問題及解決方法
安裝 OpenStack 的 repository 時,使用 sudo 安裝的話,到最后會有幾個文件因為權限問題裝不了,需轉成 root 用戶才能完整安裝。
在配置虛擬機網絡時,虛擬網卡最后選用用 virtio-net,否則會遇到設置好網絡后無法連接外網的情況。還有就是如果在網絡配置文件 /etc/network/interfaces 中,設置了內網網絡的網關也會導致不能連接外網。
RabbitMQ 版本即使沒有高于 3.3.0,最好也還是將 /etc/rabbitmq/rabbitmq.config 文件按高于 3.3.0 版本的要求設置好,不然在以后 neturon 安裝過程中可能會出現,安裝完成后輸入 “`
neutron agent-list“` 命令后顯示為空的情況。
感謝各位的閱讀!關于“juno 版 OpenStack 如何部署”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!