Ubuntu16手動安裝OpenStack——環(huán)境篇

前言

《Ubuntu16安裝OpenStack》一文中,使用devstack在物理機上安裝了OpenStack的Queens版本。但是,在后來的《OpenStack添加鏡像》實驗中,遇到了很多奇怪的問題,遂決定重裝OpenStack。

本次安裝,計劃采用一步步手動安裝的方式,在兩個節(jié)點上,最小安裝OpenStack的Queens版本。主要參考OpenStack Queens Installation Guides,首先配置環(huán)境,然后安裝必要的組件,包括keystone、glance、nova、neutron。再之后,選擇安裝horizon、cinder和swift。

本文,就記錄一下配置環(huán)境的過程。

準備

本次安裝使用兩臺VirtualBox虛擬機,一個控制節(jié)點和一個計算節(jié)點,系統(tǒng)均為ubuntu-16.04.4-server-amd64??刂乒?jié)點1核4G內(nèi)存40G存儲,計算節(jié)點1核2G內(nèi)存40G存儲。

這兩臺虛擬機,都有三塊網(wǎng)卡。eth0負責主機間相互通信,eth1負責上網(wǎng),eth2負責neutron網(wǎng)絡(luò)服務(wù)。兩張eth0網(wǎng)卡在同一網(wǎng)絡(luò),兩張eth2網(wǎng)卡在同一網(wǎng)絡(luò)。

IP配置

參考VirtualBox下CentOS7和Ubuntu16.04網(wǎng)絡(luò)配置,修改網(wǎng)卡名,然后配置靜態(tài)IP??刂乒?jié)點eth0配置為192.168.56.110,計算節(jié)點eth0配置為192.168.56.111。

主機名配置

參考VirtualBox下CentOS7和Ubuntu16.04網(wǎng)絡(luò)配置,配置控制節(jié)點主機名為controller,計算節(jié)點主機名為compute。

然后編輯/etc/hosts,添加:

192.168.56.110  controller
192.168.56.111  compute

設(shè)置sudo免密

編輯sudoers,vim /etc/sudoers
在最后添加一行:

test ALL = NOPASSWD: ALL

更換源列表

修改/etc/apt/sources.list,參考Ubuntu更換源列表,更換為Ubuntu官方中國的源列表。

最后重啟主機,sudo reboot。

root用戶

為了避免權(quán)限問題,建議切換到root用戶進行操作(否則要加很多sudo)。
sudo -i

環(huán)境

在安裝openstack之前,需要先安裝好必須的環(huán)境,包括:

  • Security
  • Host networking
  • Network Time Protocol (NTP)
  • OpenStack packages
  • SQL database
  • Message queue
  • Memcached
  • Etcd

安裝方法參考Environment。

Security

OpenStack服務(wù)支持各種安全方法,包括密碼,策略和加密。

本節(jié)沒有什么安裝操作,過。

Host networking

在選擇部署的體系結(jié)構(gòu)的每個節(jié)點上安裝操作系統(tǒng)后,必須配置網(wǎng)絡(luò)接口。openstack官方建議禁用任何自動網(wǎng)絡(luò)管理工具,并手動編輯網(wǎng)絡(luò)配置文件。

本文準備工作中已經(jīng)配置好了IP,過。

NTP

NTP服務(wù)主要用來各節(jié)點之間同步時間。

控制節(jié)點

1、安裝chrony
apt -y install chrony

2、配置chrony
vim /etc/chrony/chrony.conf

取消兩處注釋:

allow 0/0
allow ::/0

3、重啟chrony
service chrony restart

計算節(jié)點

1、安裝chrony
apt -y install chrony

2、配置chrony
vim /etc/chrony/chrony.conf
注釋修改如下:

#pool 2.debian.pool.ntp.org offline iburst
server controller iburst

3、重啟chrony
service chrony restart

驗證安裝

官方建議在繼續(xù)操作之前驗證NTP同步。某些節(jié)點,尤其是那些引用控制器節(jié)點的節(jié)點,可能需要幾分鐘才能同步。
1、在控制節(jié)點執(zhí)行
chronyc sources

image

“Name/IP”列中的內(nèi)容表示NTP服務(wù)器的主機名或IP地址。MS列中的內(nèi)容,*代表當前NTP服務(wù)器同步成功。

2、在計算節(jié)點執(zhí)行
chronyc sources

image

“Name/IP”列中的內(nèi)容應(yīng)該表示控制器節(jié)點的主機名。

OpenStack packages

由于發(fā)布計劃不同,發(fā)行版將OpenStack軟件包作為發(fā)行版的一部分或使用其他方法發(fā)布。在所有節(jié)點上執(zhí)行這些操作。

1、安裝openstack queens倉庫
apt install software-properties-common

add-apt-repository cloud-archive:queens

2、更新軟件包
apt update && apt dist-upgrade

3、安裝openstack-client
apt -y install python-openstackclient

SQL database

大多數(shù)OpenStack服務(wù)使用SQL數(shù)據(jù)庫來存儲信息,數(shù)據(jù)庫通常在控制器節(jié)點上運行。本文使用MariaDB(MySQL),OpenStack服務(wù)還支持其他SQL數(shù)據(jù)庫,包括PostgreSQL。

1、安裝mariadb和連接工具
apt -y install mariadb-server python-pymysql

2、編輯50-server.cnf
vim /etc/mysql/mariadb.conf.d/50-server.cnf

命令模式下輸入:set nu顯示行號:

# line 29: change
bind-address = 0.0.0.0
# line 105: change
character-set-server = utf8 
#collation-server = utf8mb4_general_ci

3、重啟mariadb
關(guān)閉mariadb,service mysql stop。
然后查看netstat -an | grep 3306,確認3306已經(jīng)關(guān)閉。

啟動mariadb,service mysql start

4、設(shè)置mariadb密碼
mysql_secure_installation

按照提示設(shè)置密碼為openstack。如果設(shè)置后無法登錄,那么參考MySQL重置密碼。

Message queue

OpenStack使用消息隊列來協(xié)調(diào)服務(wù)之間的操作和狀態(tài)信息。消息隊列服務(wù)通常在控制器節(jié)點上運行。OpenStack支持多種消息隊列服務(wù),包括RabbitMQ,Qpid和ZeroMQ。這里我們安裝RabbitMQ,因為大多數(shù)發(fā)行版都支持它。

1、安裝rabbitmsq
apt -y install rabbitmq-server

2、創(chuàng)建openstack用戶,密碼為openstack
rabbitmqctl add_user openstack openstack

3、允許openstack用戶配置和讀寫
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

Memcached

OpenStack的各個服務(wù)的身份認證服務(wù)使用Memcached緩存令牌。memcached服務(wù)通常在控制器節(jié)點上運行。對于生產(chǎn)部署,我們建議啟用防火墻,身份驗證和加密的組合來保護它。

1、安裝memcached
apt -y install memcached python-memcache

2、編輯/etc/memcached.conf文件
-l 127.0.0.1修改為-l 0.0.0.0

3、重啟memcached
service memcached restart

4、測試

telnet controller 11211
stats
quit

Etcd

OpenStack服務(wù)可能使用Etcd,它是一個可靠的分布式鍵值存儲工具。用于分布式密鑰鎖定,存儲配置,跟蹤服務(wù)的實時性等。同樣安裝在控制節(jié)點即可。

1、安裝etcd
apt -y install etcd

2、查看版本
etcd -version,這里看到是2.2.5。按照Etcd for Ubuntu文檔配置的話,最終會失敗,所以,我們換一種配置方法。

3、查看服務(wù)狀態(tài)
etcdctl member list

應(yīng)該會看到:

ce2a822cea30bfca: name=controller peerURLs=http://localhost:2380,http://localhost:7001 clientURLs=http://localhost:2379,http://localhost:4001

4、官方文檔給出的/etc/etcd/etcd.conf.yml文件內(nèi)容為:

name: controller
data-dir: /var/lib/etcd
initial-cluster-state: 'new'
initial-cluster-token: 'etcd-cluster-01'
initial-cluster: controller=http://controller:2380
initial-advertise-peer-urls: http://controller:2380
advertise-client-urls: http://controller:2379
listen-peer-urls: http://0.0.0.0:2380
listen-client-urls: http://controller:2379

參考etcd.conf.yml,我們在/etc/default/etcd的最后添加:

ETCD_NAME="controller"
ETCD_DATA_DIR="/var/lib/etcd/default"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER="controller=http://controller:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://controller:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://controller:2379,http://127.0.0.1:2379"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://controller:2379,http://127.0.0.1:2379"

5、設(shè)置開機啟動
systemctl enable etcd

6、重啟etcd
systemctl restart etcd

7、查看服務(wù)狀態(tài)
etcdctl member list

會看到發(fā)生了變化:

ce2a822cea30bfca: name=controller peerURLs=http://localhost:2380,http://localhost:7001 clientURLs=http://127.0.0.1:2379,http://controller:2379

8、在控制節(jié)點和計算節(jié)點測試
curl http://controller:2379/v2/stats/leader

可以看到:

{"leader":"ce2a822cea30bfca","followers":{}}

后記

如果修改了/etc/hosts中的controller對應(yīng)的IP,那么需要重啟memcached和etcd,因為它們的配置中使用了主機名而不是IP。

至此,兩臺虛擬機上,openstack需要的環(huán)境已經(jīng)安裝完成。接下來,準備安裝keystone。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容