OpenStack 學(xué)習(xí)筆記

OpenStack簡(jiǎn)介

OpenStack版本發(fā)展

OpenStack版本系列字母以A~Z命名,從2010年發(fā)布的第一個(gè)版本"Austin"到當(dāng)前穩(wěn)定版本"ocata"一共經(jīng)歷了15個(gè)版本,第16個(gè)版本"pike"正在開發(fā)中末贾。

官網(wǎng)圖片.png

這七年中OpenStack在不斷的更新迭代贪壳,雖然還未完全歩入商用化,但是已經(jīng)受到很多廠商的青睞,很多廠商基于OpenStack做公有云或私有云的云計(jì)算操作系統(tǒng)。容器的出現(xiàn)為OpenStack的發(fā)展又加了一管血,OpenStack與容器協(xié)作可以有效提高開發(fā)團(tuán)隊(duì)的速度和效率竖螃,尤其是在OpenStack私有云環(huán)境中。隨著容器與OpenStack結(jié)合逗余,容器的應(yīng)用范圍將會(huì)進(jìn)一步擴(kuò)大特咆,另一方面容器也將會(huì)對(duì)OpenStack市場(chǎng)深化產(chǎn)生助推作用。

OpenStack架構(gòu)

OpenStack 是一個(gè)開源云計(jì)算操作系統(tǒng)录粱,通過(guò)一個(gè)數(shù)據(jù)中心管理大量的計(jì)算腻格、存儲(chǔ)、網(wǎng)絡(luò)資源关摇。管理員通過(guò)dashboard高效地管控這些資源荒叶,用戶則通過(guò)web接口使用這些資源。


官網(wǎng)圖片.png

OpenStack支持多種類型的云環(huán)境输虱,試圖打造一個(gè)部署簡(jiǎn)單些楣、操作靈活、可大規(guī)模擴(kuò)展宪睹、標(biāo)準(zhǔn)統(tǒng)一的云計(jì)算管理平臺(tái)愁茁。OpenStack通過(guò)各種各樣的服務(wù)靈活地提供基礎(chǔ)設(shè)施即服務(wù)(IaaS)解決方案,并且每種服務(wù)都提供了API接口以便更加靈活的集成亭病。OpenStack的服務(wù)主要包括:

  • dashboard
    a) horizon:提供了一個(gè)基于web的自服務(wù)門戶鹅很,與OpenStack底層服務(wù)交互,用戶無(wú)需通過(guò)命令罪帖,直接在dashboard界面上就能夠完成創(chuàng)建實(shí)例促煮、分配IP地址以及配置訪問(wèn)控制等操作邮屁。

  • 計(jì)算服務(wù)
    a) nova:在OpenStack環(huán)境中計(jì)算實(shí)例的生命周期管理。按需響應(yīng)完成生成菠齿、調(diào)度佑吝、回收虛擬機(jī)等操作。除了管理虛擬機(jī)外還可以管理網(wǎng)絡(luò)绳匀,如分配網(wǎng)絡(luò)地址芋忿、vlan和隔離等。

  • 網(wǎng)絡(luò)服務(wù)
    a) neutron:neutron之前被稱為quantum疾棵,主要負(fù)責(zé)為其它OpenStack服務(wù)提供網(wǎng)絡(luò)連接即服務(wù)戈钢,neutron基于插件架構(gòu)因此可以支持眾多的網(wǎng)絡(luò)提供商和技術(shù)∈嵌基于neutron服務(wù)殉了,用戶可以在openstack上建立負(fù)載平衡、VPN拟枚、route宣渗、配置網(wǎng)絡(luò)地址和網(wǎng)段等。

  • 存儲(chǔ)服務(wù):
    a) 對(duì)象存儲(chǔ)swift: swift的實(shí)現(xiàn)方式像是一個(gè)文件服務(wù)器需要掛載目錄梨州,在這樣的方式下,swift將對(duì)象和文件寫到多個(gè)存儲(chǔ)裝置中田轧。swift上存儲(chǔ)的一般是圖片暴匠、文字和多媒體等,基于數(shù)據(jù)復(fù)制和可擴(kuò)展架構(gòu)的swift具有很高的容錯(cuò)性傻粘,當(dāng)一臺(tái)存儲(chǔ)裝置故障時(shí)每窖,其他存儲(chǔ)裝置中仍然保留著資料。
    b) 塊存儲(chǔ)cinder:為運(yùn)行實(shí)例而提供的持久性塊存儲(chǔ)弦悉≈系洌可插拔驅(qū)動(dòng)的架構(gòu)有助于創(chuàng)建和管理塊存儲(chǔ)設(shè)備。管理員可以通過(guò)cinder創(chuàng)建volume稽莉、創(chuàng)建虛擬機(jī)快照等瀑志。

  • 共享服務(wù):
    a) identity(keystone):為其他OpenStack服務(wù)提供認(rèn)證和授權(quán)服務(wù),為所有的OpenStack服務(wù)提供一個(gè)端點(diǎn)目錄污秆。keystone本身無(wú)法提供身份驗(yàn)證劈猪,但是可以集成各種其他目錄服務(wù)實(shí)現(xiàn)多種形式的身份驗(yàn)證。
    b) image(glance):存儲(chǔ)和檢索虛擬機(jī)磁盤鏡像良拼,OpenStack計(jì)算服務(wù)會(huì)在部署實(shí)例時(shí)使用glance服務(wù)战得。
    c) telemetry:為OpenStack云的計(jì)費(fèi)、基準(zhǔn)庸推、擴(kuò)展性以及統(tǒng)計(jì)等目的提供監(jiān)測(cè)和計(jì)量常侦。

  • 高層次服務(wù):
    a) 編排:Orchestration服務(wù)支持多樣化的綜合的云應(yīng)用浇冰,通過(guò)調(diào)用OpenStack-native REST API和CloudFormation-compatible Query API,支持:term:HOT <Heat Orchestration Template (HOT)>格式模板或者AWS CloudFormation格式模板聋亡。

OpenStack架構(gòu)圖如下所示:

官網(wǎng)圖片.png
  • 位于最上面的dashboard是圖形用戶界面肘习,底層服務(wù)提供ui接口給dashboard,dashboard可以與底層服務(wù)交互從而為用戶提供web自服務(wù)杀捻。
  1. network不僅向dashboard提供ui井厌,還需要為compute服務(wù)提供網(wǎng)絡(luò)連接。
  2. compute被認(rèn)為是OpenStack的核心致讥,負(fù)責(zé)處理工作負(fù)載流程仅仆。compute服務(wù)不僅依賴network服務(wù)為其提供網(wǎng)絡(luò)連接,還需要block存儲(chǔ)服務(wù)提供volumes垢袱。此外compute服務(wù)會(huì)將鏡像存儲(chǔ)在鏡像服務(wù)中墓拜。
  3. image服務(wù)負(fù)責(zé)存儲(chǔ)和檢索虛擬機(jī)磁盤鏡像,compute服務(wù)會(huì)將鏡像存儲(chǔ)在image中请契,并且需要依賴image中的鏡像部署vm咳榜。
  4. image將disk文件存儲(chǔ)在object存儲(chǔ)中,vm通過(guò)restful API將對(duì)象數(shù)據(jù)存儲(chǔ)在swift中爽锥,cinder也可以將volumes備份到swift中涌韩。
  5. block存儲(chǔ)為compute服務(wù)提供volumes, 在VM看來(lái)block存儲(chǔ)提供的volume就像是虛擬硬盤氯夷,可以用來(lái)存儲(chǔ)數(shù)據(jù)
  6. identity為所有服務(wù)提供認(rèn)證和權(quán)限管理臣樱,簡(jiǎn)而言之,OpenStack上的每一個(gè)操作都需要通過(guò)keystone的審核腮考。

OpenStack Ocata版本安裝

1 安裝環(huán)境

從官網(wǎng)文檔獲悉雇毫,安裝一套o(hù)penstack環(huán)境至少需要兩臺(tái)虛擬機(jī),一臺(tái)作為controller節(jié)點(diǎn)踩蔚,一臺(tái)作為compute節(jié)點(diǎn)棚放,block存儲(chǔ)節(jié)點(diǎn)和object節(jié)點(diǎn)可以選擇性安裝。本次僅安裝controller節(jié)點(diǎn)和compute節(jié)點(diǎn)馅闽。


官網(wǎng)圖片.png

即使是搭建概念驗(yàn)證環(huán)境飘蚯,OpenStack也對(duì)環(huán)境有一定的要求,最低標(biāo)準(zhǔn)如下所示:

  • Controller Node: 1 processor, 4 GB memory, and 5 GB storage
  • Compute Node: 1 processor, 2 GB memory, and 10 GB storage

2 安裝準(zhǔn)備

2.1 設(shè)置hostname

  1. 編輯控制節(jié)點(diǎn)上的/etc/hosts文件捞蛋,修改控制器節(jié)點(diǎn)的hostname孝冒。
  2. 編輯計(jì)算節(jié)點(diǎn)上的/etc/hosts文件,修改計(jì)算節(jié)點(diǎn)的hostname拟杉。

2.2 設(shè)置網(wǎng)絡(luò)接口

1庄涡、將控制節(jié)點(diǎn)上的第二個(gè)網(wǎng)口設(shè)置為provide interface,無(wú)需為其分配IP搬设。編輯/etc/network/interface文件穴店,添加下面內(nèi)容后重啟控制節(jié)點(diǎn)撕捍。

  auto ens192(第二塊網(wǎng)口名稱)
  iface ens192 inet manual
  up ip link set dev $IFACE up
  down ip set dev $IFACE down

2、將計(jì)算節(jié)點(diǎn)上的第二個(gè)網(wǎng)口設(shè)置為provide interface泣洞,具體操作與上面相同忧风。

2.3 網(wǎng)絡(luò)時(shí)間協(xié)議NTP

在各個(gè)節(jié)點(diǎn)上安裝chrony,確保各個(gè)節(jié)點(diǎn)能夠準(zhǔn)確同步服務(wù)球凰。
控制節(jié)點(diǎn)
1狮腿、安裝chrony

apt install chrony

2、確保計(jì)算節(jié)點(diǎn)能夠連接控制上的chrony呕诉,在/etc/chrony/chrony.conf中添加:

server NTP_SERVER iburst
allowe 172.171.0.0/24(計(jì)算節(jié)點(diǎn)網(wǎng)段) 

3缘厢、重啟NTP服務(wù)

service chrony restart  

計(jì)算節(jié)點(diǎn)
1、安裝chrony

apt install chrony

2甩挫、確保計(jì)算節(jié)點(diǎn)能夠連接控制上的chrony贴硫,在/etc/chrony/chrony.conf中添加:

server NTP_SERVER iburst

注釋下述內(nèi)容 :

pool 2.debian.pool.ntp.org  iburst

3、重啟NTP服務(wù)

service chrony restart  

驗(yàn)證
1伊者、在控制節(jié)點(diǎn)上執(zhí)行下述命令英遭,結(jié)果中帶星號(hào)的是NTP當(dāng)前同步的地址。

chronyc sources

2亦渗、 在計(jì)算節(jié)點(diǎn)上執(zhí)行下述命令挖诸,結(jié)果中“Name/IP address”一欄顯示的應(yīng)該是控制節(jié)點(diǎn)的hostname。

chronyc sources

2.4 啟用openstack庫(kù)

在所有節(jié)點(diǎn)執(zhí)行下列操作法精,啟用openstack庫(kù):

apt install software-properties-common
add-apt-repository cloud-archive:ocata
apt update
apt dist-upgrade    # 升級(jí)包
apt install python-openstackclient   #安裝openstack客戶端 

2.5安裝數(shù)據(jù)庫(kù)

1税灌、在控制節(jié)點(diǎn)安裝數(shù)據(jù)庫(kù)

apt install mariadb-server python-pymysql

2、創(chuàng)建/etc/mysql/mariadb.conf.d/99-openstack.cnf亿虽,并編輯內(nèi)容如下

bind-address = [controller-ip]
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

3、運(yùn)行mysql_secure_installation腳本來(lái)保證數(shù)據(jù)庫(kù)安全苞也,為root賬戶設(shè)置一個(gè)合適的密碼

 mysql_secure_installation

2.6 安裝消息隊(duì)列服務(wù)

1洛勉、使用RabbitMQ消息隊(duì)列服務(wù),在controller安裝消息隊(duì)列服務(wù)

apt install rabbitmq-server

2如迟、添加用戶收毫,用合適的密碼替代‘RABBIT_PASS’。

rabbitmqctl add_user openstack RABBIT_PASS

3殷勘、用戶權(quán)限配置

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

2.7 安裝memcache

1此再、認(rèn)證服務(wù)的認(rèn)證機(jī)制使用Memcached來(lái)緩存token,一般運(yùn)行在控制節(jié)點(diǎn)上玲销。在控制節(jié)點(diǎn)上執(zhí)行:

apt install memcached python-memcache

2输拇、編輯/etc/memcached.conf,將”-i 127.0.0.1“中的IP改成控制節(jié)點(diǎn)IP贤斜。
3策吠、重啟memcache服務(wù)

service memcached restart

3 認(rèn)證服務(wù)

用戶使用OpenStack時(shí)逛裤,通常第一個(gè)接觸的服務(wù)就是認(rèn)證服務(wù),只有經(jīng)過(guò)認(rèn)證服務(wù)認(rèn)證猴抹,用戶才能使用其他OpenStack服務(wù)带族。另外認(rèn)證服務(wù)還可以和一些外部用戶管理系統(tǒng)(如LDAP)進(jìn)行集成。認(rèn)證服務(wù)的主要組成包括:

  • Server:通過(guò)RESTful接口提供認(rèn)證蟀给、授權(quán)服務(wù)的中央服務(wù)器蝙砌;
  • Drivers:集成到中央服務(wù)器中,負(fù)責(zé)獲取OpenStack外部倉(cāng)庫(kù)中的認(rèn)證信息跋理。
  • Modules:運(yùn)行于使用認(rèn)證服務(wù)的OpenStack組件的地址空間中择克,負(fù)責(zé)攔截服務(wù)請(qǐng)求,提取用戶證書后發(fā)往中央服務(wù)器請(qǐng)求授權(quán)薪介。

認(rèn)證服務(wù)安裝在控制節(jié)點(diǎn)祠饺,以下就是具體安裝步驟。

3.1 先決條件

1汁政、使用root用戶進(jìn)入數(shù)據(jù)庫(kù)道偷,創(chuàng)建keystone數(shù)據(jù)庫(kù),并賦予適當(dāng)?shù)臋?quán)限:

mysql -u root -p
 >  CREATE DATABASE keystone;
 >  GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
 >  GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';

其中 'KEYSTONE_DBPASS'是自己設(shè)置的密碼记劈,由于安裝過(guò)程中設(shè)置的密碼較多勺鸦,建議設(shè)置成易記的密碼。

3.2安裝配置組件

1目木、安裝keystone

apt install keystone

2换途、編輯/etc/keystone/keystone.conf:

[database]
connection=mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone   
#KEYSTONE_DBPASS是創(chuàng)建keystone數(shù)據(jù)庫(kù)時(shí)設(shè)置的密碼
[token]
provider=fernet

3、同步認(rèn)證服務(wù)數(shù)據(jù)庫(kù)

su -s /bin/sh –c "keystone-manage db_sync" keystone

4刽射、初始化Fernet key倉(cāng)庫(kù)

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

5军拟、bootstrap認(rèn)證服務(wù)

keystone-manage bootstrap --bootstrap-password ADMIN_PASS  --bootstrap-admin-url http://controller:35357/v3/  --bootstrap-internal-url http://controller:5000/v3/  --bootstrap-public-url http://controller:5000/v3/  --bootstrap-region-id RegionOne

其中‘ADMIN_PASS’是admin用戶的密碼,請(qǐng)自行定義誓禁。

3.3. 配置Apache HTTP服務(wù)器

1懈息、 編輯/etc/apache2/apache2.conf,添加

ServerName controller

3.4 完成安裝

1摹恰、 重啟Apache服務(wù)辫继,刪除默認(rèn)的SQL數(shù)據(jù)庫(kù)

service apache2 restart
rm -f /var/lib/keystone/keystone.db

2、 配置管理員帳號(hào)

$ export OS_USERNAME=admin
$ export OS_PASSWORD=ADMIN_PASS
$ export OS_PROJECT_NAME=admin
$ export OS_USER_DOMAIN_NAME=Default
$ export OS_PROJECT_DOMAIN_NAME=Default
$ export OS_AUTH_URL=http://controller:35357/v3
$ export OS_IDENTITY_API_VERSION=3

ADMIN_PASS是bootstrap認(rèn)證服務(wù)時(shí)設(shè)置的密碼俗慈。
3姑宽、Identity service為其他OpenStack服務(wù)提供認(rèn)證服務(wù),而認(rèn)證服務(wù)需要domains, projects, users和roles闺阱。因此安裝好keystone后先創(chuàng)建service項(xiàng)目:

openstack project create --domain default --description "Service Project" service

4炮车、一般的操作無(wú)需使用admin用戶,創(chuàng)建一個(gè)demo項(xiàng)目和用戶,作為普通用戶使用示血。

#創(chuàng)建一個(gè)demo項(xiàng)目
openstack project create --domain default   --description "Demo Project" demo
#創(chuàng)建一個(gè)demo 用戶
openstack user create --domain default  --password-prompt demo

6棋傍、創(chuàng)建user角色,并且將user角色添加到demo項(xiàng)目和用戶中:

openstack role create user
openstack role add --project demo --user demo user

認(rèn)證服務(wù)到此安裝完成难审,在安裝其他服務(wù)前先驗(yàn)證認(rèn)證服務(wù)瘫拣。

3.5. 驗(yàn)證操作

1、安全起見告喊,禁用暫時(shí)的認(rèn)證令牌機(jī)制麸拄。編輯/etc/keystone/keystone-paste.ini,將[pipeline:public_api]黔姜、 [pipeline:admin_api]拢切、 [pipeline:api_v3] sections 中的admin_token_auth刪除。
2秆吵、取消設(shè)置臨時(shí)的OS_AUTH_URL和 OS_PASSWORD環(huán)境變量
unset OS_AUTH_URL OS_PASSWORD:

unset OS_AUTH_URL OS_PASSWORD

3淮椰、admin用戶請(qǐng)求認(rèn)證token

openstack --os-auth-url http://controller:35357/v3  --os-project-domain-name default --os-user-domain-name default  --os-project-name admin --os-username admin token issue

4、demo用戶請(qǐng)求認(rèn)證token

openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name default --os-user-domain-name default    --os-project-name demo --os-username demo token issue

3.6. 創(chuàng)建腳本

1纳寂、創(chuàng)建openstack客戶端環(huán)境腳本admin-openrc:

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS  #admin用戶的密碼
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

2主穗、為demo用戶創(chuàng)建demo-openrc腳本:

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS  #demo用戶的密碼
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

3、加載admin-openrc文件毙芜,作為admin用戶運(yùn)行客戶端忽媒,請(qǐng)求認(rèn)證token:

. admin-openrc
openstack token issue
圖片.png

4 鏡像服務(wù)

鏡像服務(wù)是IaaS的核心服務(wù),可以接受disk鏡像或server鏡像的API請(qǐng)求腋粥,也可以接受終端用戶和OpenStack計(jì)算組件的metadata定義晦雨,并且支持存儲(chǔ)鏡像到多種類型的倉(cāng)庫(kù)中,包括OpenStack的對(duì)象存儲(chǔ)中隘冲。用戶可以使用鏡像服務(wù)發(fā)現(xiàn)闹瞧、注冊(cè)、獲取虛擬機(jī)鏡像展辞,而且可以通過(guò)鏡像服務(wù)提供的rest api查詢虛擬機(jī)鏡像的metadata并獲取鏡像夹抗。鏡像服務(wù)的主要組件包括:

  • glance-api:接收鏡像API的調(diào)用,諸如鏡像發(fā)現(xiàn)纵竖、恢復(fù)、存儲(chǔ)杏愤。
  • glance-registry:存儲(chǔ)靡砌、處理、獲取鏡像的metadata珊楼,鏡像的metadata中包含鏡像的大小通殃、類型等信息。
  • Database:存儲(chǔ)鏡像metadata,可以根據(jù)喜好選擇數(shù)據(jù)庫(kù)画舌,通常用戶會(huì)選用MySQL 或 SQLite堕担。
  • Storage repository for image files:支持多種類型的倉(cāng)庫(kù),包括普通文件系統(tǒng)曲聂、對(duì)象存儲(chǔ)霹购、RADOS塊設(shè)備、VMware datastore以及HTTP朋腋。需要注意齐疙,其中一些倉(cāng)庫(kù)僅支持只讀方式使用。
  • Metadata definition service:為廠商旭咽、admin贞奋、服務(wù)、用戶提示的通用API穷绵,用于自定義metadata轿塔,定義的metadata可以用于各種各樣的資源,例如鏡像仲墨、卷勾缭、配額等。

鏡像服務(wù)也安裝在控制節(jié)點(diǎn)上宗收,以下是鏡像服務(wù)的具體安裝過(guò)程漫拭。

4.1. 先決條件

1、 進(jìn)入數(shù)據(jù)庫(kù)混稽,創(chuàng)建glance數(shù)據(jù)庫(kù)采驻,并賦權(quán)限

mysql -u root -p
> CREATE DATABASE glance;
> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY 'GLANCE_DBPASS';
> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY 'GLANCE_DBPASS';

將'GLANCE_DBPASS'替換成自定義的密碼。
2匈勋、 導(dǎo)入admin證書礼旅,獲取admin權(quán)限。

. admin-openrc

3洽洁、 創(chuàng)建glance用戶痘系,并設(shè)置密碼

openstack user create --domain default --password-prompt glance

4、 添加管理員角色到glance用戶和service項(xiàng)目中

openstack role add --project service --user glance admin

5饿自、添加glance服務(wù)實(shí)體

openstack service create --name glance --description "openstack image"  image

6汰翠、添加image服務(wù)api endpoint

openstack endpoint create --region RegionOne image public http://controller:9292
openstack endpoint create --region RegionOne image internal http://controller:9292
openstack endpoint create --region RegionOne image admin  http://controller:9292

4.2. 安裝配置組件

1、安裝glance

apt install glance

2昭雌、編輯/etc/glance/glance-api.conf文件

[database]
connection=mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
#glance數(shù)據(jù)庫(kù)密碼
[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=glance
password=GLANCE_PASS   #glance用戶密碼

[paste_deploy]
flavor = keystone

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

3复唤、編輯/etc/glance/glance-registry.conf

[database]
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance 
#glance數(shù)據(jù)庫(kù)密碼

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = GLANCE_PASS   #glance用戶密碼

[paste_deploy]
flavor = keystone

3、更新鏡像服務(wù)數(shù)據(jù)庫(kù)

su -s /bin/sh -c "glance-manage db_sync" glance

4烛卧、重啟鏡像服務(wù)

service glance-registry restart
service glance-api restart

4.3. 驗(yàn)證操作

1佛纫、以admin用戶身份運(yùn)行客戶端,并下載cirros鏡像

 . admin-openrc
wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img

2、以qcow2格式上傳鏡像到鏡像服務(wù)呈宇,設(shè)置為public確保其他服務(wù)可以使用該鏡像好爬。

openstack image create "cirros" --file cirros-0.3.5-x86_64-disk.img  --disk-format qcow2 --container-format bare --public
圖片.png

3、查看上傳好的鏡像

openstack image list
圖片.png

5 計(jì)算服務(wù)

5.1. 安裝配置控制節(jié)點(diǎn)

5.1.1 先決條件

1甥啄、進(jìn)入mysql存炮,創(chuàng)建數(shù)據(jù)庫(kù)nova_api、nova型豁、nova_cell0僵蛛,并賦予一定的權(quán)限。

create database nova_api;
create database nova;
create database nova_ce110;
grant all privileges on nova_api.* to 'nova'@'localhost' identified by 'NOVA_DBPASS';
grant all privileges on nova_api.* to 'nova'@'%' identified by 'NOVA_DBPASS';
grant all privileges on nova.* to 'nova'@'localhost' identified by 'NOVA_DBPASS';
grant all privileges on nova.* to 'nova'@'%' identified by 'NOVA_DBPASS';
grant all privileges on nova_ce110.* to 'nova'@'localhost' identified by 'NOVA_DBPASS';
grant all privileges on nova_ce110.* to 'nova'@'%' identified by 'NOVA_DBPASS';

其中'NOVA_DBPASS'是自定義的數(shù)據(jù)庫(kù)密碼迎变。操作完成后則退出數(shù)據(jù)庫(kù)充尉。
2、創(chuàng)建計(jì)算服務(wù)證書

#以admin身份運(yùn)行客戶端
. admin-openrc
#創(chuàng)建nova用戶
openstack user create --domain default --password-prompt nova
#將admin角色添加到nova用戶
openstack role add --project service --user nova admin
#創(chuàng)建nova服務(wù)體
openstack service create --name nova --description "openstack  compute" compute

3衣形、創(chuàng)建Compute API service endpoints:

openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute internal  http://controller:8774/v2.1
openstack endpoint create --region RegionOne compute admin  http://controller:8774/v2.1

4驼侠、創(chuàng)建placement服務(wù)用戶,并自行設(shè)置密碼

openstack user create --domain default --password-prompt placement

5谆吴、添加placement用戶到service項(xiàng)目中倒源,并賦予admin角色。

openstack role add --project service --user placement admin

創(chuàng)建placement api實(shí)體
openstack service create --name placement --description "placement api" placement
創(chuàng)建placement api服務(wù)endpoint
openstack endpoint create --region RegionOne placement public http://controller:8778
openstack endpoint create --region RegionOne placement internal http://controller:8778
openstack endpoint create --region RegionOne placement admin http://controller:8778

5.1.2安裝配置組件

1句狼、安裝nova組件

apt install nova-api nova-conductor nova-consoleauth nova-novncproxy nova-scheduler nova-placement-ap

2笋熬、編輯/etc/nova/nova.conf文件

[api_database]
connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api
#NOVA_DBPASS是nova數(shù)據(jù)庫(kù)的密碼

[database]
connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova

[DEFAULT]
transport_url=rabbit://openstack:RABBIT_PASS@controller
#RABBIT_PASS是在rabbitmq中創(chuàng)建的openstack帳號(hào)對(duì)應(yīng)的密碼

[api]
auth_strategy=keystone

[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=NOVA_PASS
#NOVA_PASS是nova用戶對(duì)應(yīng)的密碼

[DEFAULT]
my_ip=10.0.0.11
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
#注釋掉[default]中的log_dir

[vnc]
enabled=true
vncserver_listen=$my_ip
vncserver_proxyclient_address=$my_ip

[glance]
api_servers=http://controller:9292

[oslo_concurrency]
lock_path=/var/lib/nova/tmp

[placement]
os_region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http://controller:35357/v3
username=placement
password=PLACEMENT_PASS
#PLACEMENT_PASS是placement用戶對(duì)應(yīng)的密碼

3、更新nova-api數(shù)據(jù)庫(kù)

su -s /bin/sh -c "nova-manage api_db sync" nova

報(bào)錯(cuò)如下所示:

錯(cuò)誤1

解決方法:
編輯/etc/nova/nova.conf文件腻菇,注釋[database]和[api_database]中“connection=sqlite:////var/lib/nova/nova.sqlite”胳螟。再次執(zhí)行更新數(shù)據(jù)庫(kù)命令。

4筹吐、注冊(cè)cell0數(shù)據(jù)庫(kù)

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

5糖耸、創(chuàng)建cell1 cell

su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova

6、 更新nova數(shù)據(jù)庫(kù)

su -s /bin/sh -c "nova-manage db sync" nova

7丘薛、確認(rèn)cell0和cell1注冊(cè)成功

nova-manage cell_v2 list_cells
圖片.png

8嘉竟、重啟計(jì)算服務(wù)

service nova-api restart
service nova-consoleauth restart 
service nova-scheduler restart
service nova-conductor restart
service nova-novncproxy restart

5.2. 安裝配置計(jì)算節(jié)點(diǎn)

5.2.1. 安裝配置組件

1、安裝nova組件

apt install nova-compute

2洋侨、編輯/etc/nova/nova.conf文件

[DEFAULT]
transport_url=rabbit://openstack:RABBIT_PASS@controller
#RABBIT_PASS是在rabbitmq中創(chuàng)建的openstack帳號(hào)對(duì)應(yīng)的密碼

[api]
auth_strategy=keystone

[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=nova
password=NOVA_PASS
#NOVA_PASS是 nova用戶的密碼

[DEFAULT]
my_ip=MANAGEMENT_INTERFACE_IP_ADDRESS
use_neutron=True
firewall_driver=nova.virt.firewall.NoopFirewallDriver
#MANAGEMENT_INTERFACE_IP_ADDRESS是計(jì)算節(jié)點(diǎn)上管理網(wǎng)絡(luò)的IP舍扰。
#注釋掉[default]中的log_dir

[vnc]
enabled=true
vncserver_listen=0.0.0.0
vncserver_proxyclient_address=$my_ip
novncproxy_base_url=http://controller:6080/vnc_auto.html

[glance]
api_servers=http://controller:9292

[oslo_concurrency]
lock_path=/var/lib/nova/tmp


[placement]
os_region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http://controller:35357/v3
username=placement
password=PLACEMENT_PASS
#PLACEMENT_PASS是placement用戶的密碼

3、檢查硬件是否支持虛擬化希坚,返回值大于0則硬件支持虛擬化边苹,否則需要進(jìn)行額外的配置。

egrep -c '(vmx|svm)' /proc/cpuinfo

當(dāng)返回值為0時(shí)吏够,表明硬件不支持虛擬機(jī),則編輯/etc/nova/nova-compute.conf文件,將libvirt類型從kvm改成qemu锅知。

4播急、重啟服務(wù)

service nova-compute restart

5.2.2. 添加計(jì)算節(jié)點(diǎn)到cell數(shù)據(jù)庫(kù)

在控制節(jié)點(diǎn)執(zhí)行以下操作步驟
1、獲取admin權(quán)限售睹,確認(rèn)數(shù)據(jù)庫(kù)中有計(jì)算節(jié)點(diǎn)

. admin-openrc
openstack hypervisor list

2桩警、發(fā)現(xiàn)計(jì)算節(jié)點(diǎn),新增計(jì)算節(jié)點(diǎn)時(shí)都需要執(zhí)行該操作昌妹。

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

5.2.3. 確認(rèn)操作

1捶枢、確認(rèn)操作也在控制節(jié)點(diǎn)執(zhí)行,獲取admin權(quán)限飞崖,查看服務(wù)組件烂叔,應(yīng)該運(yùn)行著4個(gè)服務(wù),“nova-consoleauth”固歪、“nova-scheduler”蒜鸡、“nova-conductor”在控制節(jié)點(diǎn),"nova-compute"在計(jì)算節(jié)點(diǎn)牢裳。

. admin-openrc
openstack compute service list

nova-conductor服務(wù)起不來(lái)逢防,查看日志發(fā)現(xiàn)一直報(bào)錯(cuò):“AccessRefused: (0, 0): (403) ACCESS_REFUSED - Login was refused using authentication mechanism AMQPLAIN”。
解決方法:分析發(fā)現(xiàn)可能是因?yàn)閛penstack用戶創(chuàng)建不成功蒲讯,查看rabbitmqctl中的用戶忘朝,發(fā)現(xiàn)確實(shí)沒(méi)有用戶,重新創(chuàng)建openstack用戶判帮。

#查看rabbitmq中的用戶
rabbitmqctl list_users
#添加用戶局嘁,RABBIT_PASS是openstack用戶的密碼,須與之前配置的保持一致
rabbitmqctl add_user openstack RABBIT_PASS
#再次查看rabbitmq中的用戶
rabbitmqctl list_users

創(chuàng)建用戶后脊另,重啟nova服務(wù)导狡,再次執(zhí)行以上步驟確認(rèn)nova服務(wù)安裝完成。
2偎痛、列出認(rèn)證服務(wù)中的API endpoints旱捧,確認(rèn)認(rèn)證服務(wù)的連接性

openstack catalog list
圖片.png

3、列出鏡像踩麦,確認(rèn)鏡像服務(wù)的連接性

openstack image list
圖片.png

4枚赡、檢查cells和placement api正常運(yùn)行

nova-status upgrade check
圖片.png

6 網(wǎng)絡(luò)服務(wù)

neutron允許創(chuàng)建、插入其他OpenStack服務(wù)管理的接口設(shè)備谓谦,采用插件式結(jié)構(gòu)因此可以容納各種類型的網(wǎng)絡(luò)設(shè)備和軟件贫橙,提供了OpenStack架構(gòu)和部署的靈活性。neutron主要包括以下模塊:

  • neutron-server:接收和路由API請(qǐng)求到合適的OpenStack網(wǎng)絡(luò)插件反粥。
  • OpenStack網(wǎng)絡(luò)插件和代理:負(fù)責(zé)插卢肃、拔port疲迂,創(chuàng)建網(wǎng)絡(luò)和子網(wǎng),以及提供IP地址莫湘。
  • 消息隊(duì)列:通常安裝OpenStack的時(shí)候都會(huì)遇到尤蒿,負(fù)責(zé)在neutron-server和各種各樣的代理進(jìn)程之間路由信息,也可以作為數(shù)據(jù)庫(kù)存儲(chǔ)一些插件的網(wǎng)絡(luò)狀態(tài)幅垮。

6.1. 安裝配置控制節(jié)點(diǎn)

6.1.1. 先決條件

1腰池、登錄數(shù)據(jù)庫(kù),創(chuàng)建neutron數(shù)據(jù)庫(kù)忙芒,并賦予權(quán)限:

create database neutron;
#NEUTRON_DBPASS是數(shù)據(jù)庫(kù)密碼示弓,自行定義即可
grant all privileges on neutron.* to 'neutron'@'localhost' identified by 'NEUTRON_DBPASS';
grant all privileges on neutron.* to 'neutron'@'%' identified by 'NEUTRON_DBPASS';

2沥曹、獲取admin權(quán)限蝶防,創(chuàng)建網(wǎng)絡(luò)服務(wù)相關(guān)credentials:

. admin-openrc
#創(chuàng)建neutron用戶
openstack user create --domain default --password-prompt neutron
#添加admin角色到neutron用戶
openstack role add --project service --user neutron admin
#創(chuàng)建neutron服務(wù)體
openstack service create --name neutron --description "openstack networking" network

3、創(chuàng)建網(wǎng)絡(luò)服務(wù)api endpoint:

openstack endpoint create --region ReginOne network public http://controller:9696
openstack endpoint create --region ReginOne network internal  http://controller:9696
openstack endpoint create --region ReginOne network admin  http://controller:9696

部署Self-service 網(wǎng)絡(luò)

部署網(wǎng)絡(luò)服務(wù)有兩種選擇:
1)采用簡(jiǎn)單的結(jié)構(gòu)部署網(wǎng)絡(luò)服務(wù)悼做,僅支持實(shí)例連接provider 網(wǎng)絡(luò)(外部網(wǎng)絡(luò))甘桑,不支持私有網(wǎng)絡(luò)拍皮、路由服務(wù)、浮動(dòng)IP等跑杭。另外铆帽,只有admin或其他管理員用戶才能管理provide網(wǎng)絡(luò);
2)選項(xiàng)2在選項(xiàng)1的基礎(chǔ)上添加了三層服務(wù)德谅,支持實(shí)例連接私有網(wǎng)絡(luò)爹橱。普通用戶可以管理自己的私有網(wǎng)絡(luò),以及連接公網(wǎng)和私有的路由器窄做。另外愧驱,外部網(wǎng)絡(luò)可以借助浮動(dòng)IP地址訪問(wèn)私有網(wǎng)絡(luò)。

本次安裝中椭盏,選擇選項(xiàng)2:部署Self-service networks组砚。
1、在控制節(jié)點(diǎn)安裝服務(wù)組件掏颊。

apt install neutron-server neutron-plugin-ml2 neutron-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent

2糟红、編輯/etc/neutron/neutron.conf文件

[database]
connection=mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron
#NEUTRON_DBPASS是neutron數(shù)據(jù)庫(kù)密碼

[DEFAULT]
core_plugin=ml2
service_plugins=router
allow_overlapping_ips=true

[DEFAULT]
transport_url=rabbit://openstack:RABBIT_PASS@controller
auth_strategy=keystone
#RABBIT_PASS是在rabbitmq中創(chuàng)建的openstack帳號(hào)對(duì)應(yīng)的密碼

[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=neutron
password=NEUTRON_PASS
#NEUTRON_PASS是neutron用戶密碼

[DEFAULT]
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true

[nova]
auth_url=http://controller:35357
auth_type=password
project_domain_name=default
user_domain_name=default
region_name=RegionOne
project_name=service
username=nova
password=NOVA_PASS
#NOVA_PASS是nova用戶密碼

3、配置ML2插件乌叶,編輯/etc/neutron/plugins/ml2/ml2_conf.ini

[ml2] 
#配置支持的網(wǎng)絡(luò)類型
type_drivers=flat,vlan,vxlan    
#self-service網(wǎng)絡(luò)支持vxlan
tenant_network_types=vxlan
mechanism_drivers=linuxbridge,l2population
#注釋掉type_drivers的值

[ml2]
extension_drivers=port_security

[ml2_type_flat]
flat_networks=provider

[ml2_type_vxlan]
vni_ranges=1:1000

[securitygroup]
enable_ipset=true

4盆偿、配置Linux bridge代理,編輯/etc/neutron/plugins/ml2/linuxbridge_agent.ini:

[linux_bridge]
#映射provider虛擬網(wǎng)絡(luò)到provider物理網(wǎng)絡(luò)接口准浴,PROVIDER_INTERFACE_NAME是第二塊網(wǎng)卡名稱
physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME

#OVERLAY_INTERFACE_IP_ADDRESS是物理網(wǎng)絡(luò)接口的IP地址
[vxlan]
enable_vxlan=true
local_ip=OVERLAY_INTERFACE_IP_ADDRESS
l2_population=true

[securitygroup]
enable_security_group=true
firewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

5事扭、配置三層代理,編輯/etc/neutron/l3_agent.ini

[DEFAULT]
interface_driver=linuxbridge

6乐横、配置DHCP代理求橄,編輯/etc/neutron/dhcp_agent.ini

[DEFAULT]
interface_driver=linuxbridge
dhcp_driver=neutron.agent.linux.dhcp.Dnsmasq
enable_isolated_metadata=true

7今野、配置metadata agent,編輯/etc/neutron/metadata_agent.ini

#METADATA_SECRET是metadata proxy的密碼罐农,自行定義
[DEFAULT]
nova_metadata_ip=controller
metadata_proxy_shared_secret=METADATA_SECRET

8腥泥、配置計(jì)算服務(wù)使用網(wǎng)絡(luò)服務(wù),編輯/etc/nova/nova.conf

#NEUTRON_PASS是neutron用戶的密碼啃匿,METADATA_SECRET是metadata proxy的密碼
[neutron]
url=http://controller:9696
auth_url=http://controller:35357
auth_type=password
project_domain_name=default
user_domain_name=default
region_name=RegionOne
project_name=service
username=neutron
password=NEUTRON_PASS
service_metadata_proxy=true
metadata_proxy_shared_secret=METADATA_SECRET

9、更新數(shù)據(jù)庫(kù)

su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

10蛆楞、重啟計(jì)算API服務(wù)和網(wǎng)絡(luò)服務(wù)

service nova-api restart
service neutron-server restart
service neutron-linuxbridge-agent  restart
service neutron-dhcp-agent  restart
service neutron-metadata-agent  restart
#選擇網(wǎng)絡(luò)服務(wù)二溯乒,還需要重啟3層服務(wù)
service neutron-l3-agent restart

6.2. 安裝配置計(jì)算節(jié)點(diǎn)

計(jì)算節(jié)點(diǎn)負(fù)責(zé)處理實(shí)例的連接和安全組。

6.2.1. 安裝配置組件

1豹爹、安裝組件

apt install neutron-linuxbridge-agent

2裆悄、配置通用組件,編輯/etc/neutron/neutron.conf

[database]
[DEFAULT]
transport_url=rabbit://openstack:RABBIT_PASS@controller

[DEFAULT]
auth_strategy=keystone

[keystone_authtoken]
auth_uri=http://controller:5000
auth_url=http://controller:35357
memcached_servers=controller:11211
auth_type=password
project_domain_name=default
user_domain_name=default
project_name=service
username=neutron
password=NEUTRON_PASS

6.2.2.部署Self-service網(wǎng)絡(luò)

1臂聋、在計(jì)算節(jié)點(diǎn)上也配置網(wǎng)絡(luò)選項(xiàng)2:Self-service networks光稼,編輯/etc/neutron/plugins/ml2/linuxbridge_agent.ini

[linux_bridge]
#PROVIDER_INTERFACE_NAME是底層provider物理網(wǎng)絡(luò)接口,網(wǎng)卡2的名稱
physical_interface_mappings=provider:PROVIDER_INTERFACE_NAME

#OVERLAY_INTERFACE_IP_ADDRESS是物理網(wǎng)絡(luò)地址孩等,即計(jì)算節(jié)點(diǎn)的IP地址
[vxlan]
enable_vxlan = true
local_ip = OVERLAY_INTERFACE_IP_ADDRESS
l2_population = true

[securitygroup]
# ...
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

2艾君、配置計(jì)算服務(wù)使用網(wǎng)絡(luò)服務(wù),編輯/etc/nova/nova.conf

[neutron]
url=http://controller:9696
auth_url=http://controller:35357
auth_type=password
project_domain_name=default
user_domain_name=default
region_name=RegionOne
project_name=service
username=neutron
password=neutron

3肄方、完成安裝冰垄,重啟計(jì)算服務(wù)

service nova-compute restart
service neutron-linuxbridge-agent restart

4、驗(yàn)證安裝权她,在控制節(jié)點(diǎn)執(zhí)行:

. admin-openrc
openstack extension list --network
圖片.png

查看neutron服務(wù)的agent是否都啟動(dòng)虹茶,理論上控制節(jié)點(diǎn)上有4個(gè)agent,計(jì)算節(jié)點(diǎn)上各有1個(gè):

. admin-openrc
openstack network agent list
圖片.png

7 Dashboard

7.1. 安裝配置

1隅要、將 Dashboard安裝在控制節(jié)點(diǎn)上蝴罪,執(zhí)行以下命令安裝組件:

apt install openstack-dashboard

2、編輯/etc/openstack-dashboard/local_settings.py

OPENSTACK_HOST="controller"
##所有主機(jī)都可以訪問(wèn)
ALLOWED_HOSTS=‘*’   

SESSION_ENGINE='django.contrib.sessions.backends.cache'
CACHES={
'default': {
'BACKEND':'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION':'controller:11211',
    }
}

#啟用第三版認(rèn)證API
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

#配置為支持域
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

#配置API版本
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 2,
}

#通過(guò)dashboard創(chuàng)建的用戶的默認(rèn)域?yàn)閐efault
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"

#通過(guò)dashboard創(chuàng)建的用戶默認(rèn)角色為user
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

3步清、重新加載web 服務(wù)器配置

service apache2 reload

7.2. 驗(yàn)證

1要门、登錄http://controller/horizon,查看dashboard頁(yè)面尼啡,確認(rèn)dashboard安裝成功暂衡。默認(rèn)域?yàn)閐efault,可以使用admin用戶登錄崖瞭,也可以實(shí)驗(yàn)demo用戶登錄狂巢。

訪問(wèn)horizon,報(bào)錯(cuò)500书聚,網(wǎng)上解決方法如下

cd /var/lib/openstack-dashboard/
ls –ltrh
chown www-data:www-data /var/lib/openstack-dashboard/secret_key
ls –ltrh
service apache2 reload

2唧领、horizon頁(yè)面出來(lái)藻雌,輸入用戶名和密碼,報(bào)錯(cuò)如下:

圖片.png

查看/var/log/apache2/error.log日志斩个,錯(cuò)誤信息“RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable”
解決方法:

1)胯杭、修改/etc/openstack-dashboard/local_settings.py,
將‘SESSION_ENGINE = 'django.contrib.sessions.backends.cache'改成
’SESSION_ENGINE = 'django.contrib.sessions.backends.file'
2)受啥、重新加載web 服務(wù)器配置
service apache2 reload

3做个、登錄控制面板后創(chuàng)建flavor、創(chuàng)建實(shí)例滚局,訪問(wèn)實(shí)例控制器居暖,發(fā)現(xiàn)無(wú)法連接。因?yàn)関nc地址是127.0.0.1,而不是controller IP藤肢。
解決方法:

1)太闺、修改controller上的/etc/nova/nova.conf 
novncproxy_base_url=http://$my_ip:6080/vnc_auto.html
2)、修改computer上的/etc/nova/nova.conf
novncproxy_base_url=http://172.171.3.20:6080/vnc_auto.html
3)嘁圈、重啟nova相關(guān)服務(wù)
#控制節(jié)點(diǎn)
service nova-api restart
service nova-consoleauth restart 
service nova-scheduler restart
service nova-conductor restart
service nova-novncproxy restart
#計(jì)算節(jié)點(diǎn)
service nova-compute restart

安裝參考文檔鏈接:
http://www.10tiao.com/html/625/201703/2652502241/1.html
http://www.10tiao.com/html/625/201703/2652502241/3.html
https://docs.openstack.org/ocata/install-guide-ubuntu/InstallGuide.pdf
http://wangzhijian.blog.51cto.com/6427016/1912487
http://wangzhijian.blog.51cto.com/6427016/1913082?utm_source=tuicool&utm_medium=referral
https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/neutron.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末省骂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子最住,更是在濱河造成了極大的恐慌钞澳,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涨缚,死亡現(xiàn)場(chǎng)離奇詭異略贮,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)仗岖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門逃延,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人轧拄,你說(shuō)我怎么就攤上這事揽祥。” “怎么了檩电?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵拄丰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我俐末,道長(zhǎng)料按,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任卓箫,我火速辦了婚禮载矿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烹卒。我一直安慰自己闷盔,他們只是感情好弯洗,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逢勾,像睡著了一般牡整。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上溺拱,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天逃贝,我揣著相機(jī)與錄音,去河邊找鬼迫摔。 笑死秋泳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的攒菠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼歉闰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼辖众!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起和敬,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凹炸,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后昼弟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體啤它,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年舱痘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了变骡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡芭逝,死狀恐怖塌碌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旬盯,我是刑警寧澤台妆,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站胖翰,受9級(jí)特大地震影響接剩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萨咳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一懊缺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧培他,春花似錦桐汤、人聲如沸而克。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)员萍。三九已至,卻和暖如春拣度,著一層夾襖步出監(jiān)牢的瞬間碎绎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工抗果, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筋帖,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓冤馏,卻偏偏與公主長(zhǎng)得像日麸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逮光,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容