1. 程式人生 > >使用者雲端計算基礎架構服務平臺 手冊

使用者雲端計算基礎架構服務平臺 手冊

使用者雲端計算基礎架構服務平臺手冊

  ###   

版本:先電 iaas V2.2
釋出日期:2017年11月1日

南京第五十五所技術開發有限公司

版本修訂說明

修訂版本 修訂時間 修訂說明
Xiandian-iaas-v2.0 2016年10月28日 雲端計算基礎架構服務平臺使用者手冊2.0
Xiandian-iaas-v2.1 2017年04月20日 修改上個版本已知錯誤,部分配置檔案進行修改優化,修改資料庫連線,新增Trove元件,新增系統解除安裝指令碼
Xiandian-iaas-v2.2 2017年11月1日 新增Lbaas元件、Fwaas元件,新增nginx模板使用。

目 錄

  1. List item

1 基本環境配置 9
1.1安裝CentOS7說明 10
1.2配置網路、主機名 10
1.3配置yum源 12
1.4編輯環境變數 14
1.5通過指令碼安裝服務 15
1.6安裝Openstack包 16
1.7配置域名解析 16
1.8配置防火牆和Selinux 16
1.9安裝ntp服務 17
1.10通過指令碼安裝服務 17
1.11安裝Mysql資料庫服務 17
1.12安裝Mongo資料庫服務 18
1.13安裝RabbitMQ服務 19
1.14安裝memcahce 19
2 安裝Keystone認證服務 19
2.1 通過指令碼安裝keystone服務 19
2.2安裝keystone服務軟體包 20
2.3建立Keystone資料庫 20
2.4配置資料庫連線 20
2.5為keystone服務建立資料庫表 20
2.6建立令牌 20
2.7建立簽名金鑰和證書 21
2.8定義使用者、租戶和角色 22

2.9建立admin-openrc.sh 23
3 安裝Glance映象服務 24
3.1 通過指令碼安裝glance服務 24
3.2 安裝Glance映象服務軟體包 24
3.3建立Glance資料庫 24
3.4配置檔案建立資料庫連線 24
3.5為映象服務建立資料庫表 25
3.6建立使用者 25
3.7配置映象服務 25
3.8建立Endpoint和API端點 27
3.9啟動服務 27
3.10上傳映象 27
4 安裝Nova計算服務 27
4.1通過指令碼安裝nova服務 28
4.2安裝Nova 計算服務軟體包 28
4.3建立Nova資料庫 28
4.4建立計算服務表 29
4.5建立使用者 29
4.6配置計算服務 29
4.7建立Endpoint和API端點 31
4.8啟動服務 31
4.9驗證Nova 31
4.10安裝Nova計算服務軟體包 31
4.11配置Nova服務 32
4.12檢查系統處理器是否支援虛擬機器的硬體加速 33
4.13啟動 33
4.14 清除防火牆 34
5 安裝Neutron網路服務 34
5.1通過指令碼安裝neutron服務 34
5.2通過指令碼建立neutron網路 34
5.3建立Neutron資料庫 35
5.4建立使用者 35
5.5建立Endpoint和API端點 35
5.6安裝neutron網路服務軟體包 36
5.7配置Neutron服務 36
5.8 編輯核心 41
5.9 建立資料庫 41
5.10 啟動服務和建立網橋 41
5.11 安裝軟體包 42
5.12 配置Neutron服務 42
5.13 編輯核心 45
5.14 啟動服務進而建立網橋 45
5.15 選擇Neutron網路模式 45
5.15.1 Flat 45
5.15.2 Gre 48
5.15.3 Vlan 51
5.16 網路高階應用 54
5.16.1 負載均衡操作 54
5.16.2 防火牆操作 59
6 安裝Dashboard服務 63
6.1通過指令碼安裝dashboard服務 63
6.2安裝Dashboard服務軟體包 63
6.3配置 63
6.4啟動服務 67
6.5訪問 67
6.6建立雲主機(gre/vlan) 67
7 安裝Cinder塊儲存服務 67
7.1 通過指令碼安裝Cinder服務 67
7.2 安裝Cinder塊儲存服務軟體包 68
7.3 建立資料庫 68
7.4 建立使用者 68
7.5 建立Endpoint和API端點 69
7.6 配置Cinder服務 69
7.7 建立資料庫 70
7.8 啟動服務 71
7.9 安裝塊儲存軟體 71
7.10 建立LVM物理和邏輯卷 71
7.11 修改Cinder配置檔案 71
7.12 重啟服務 73
7.13 驗證 73
8 安裝Swift物件儲存服務 73
8.1通過指令碼安裝Swift服務 73
8.2建立使用者 74
8.3建立Endpoint和API端點 74
8.4 編輯/etc/swift/proxy-server.conf 74
8.5 建立賬號、容器、物件 77
8.6 編輯/etc/swift/swift.conf檔案 77
8.7 啟動服務和賦予許可權 78
8.8 安裝軟體包 78
8.9 配置rsync 78
8.10 配置賬號、容器和物件 80
8.11 修改Swift配置檔案 82
8.12 重啟服務和賦予許可權 83
9 安裝Trove服務 84
9.1 執行指令碼進行安裝 84
9.2 安裝Trove資料庫服務的軟體包 84
9.3 建立資料庫 84
9.4 建立使用者 84
9.5 建立Endpoint和API端點 85
9.6 配置trove.conf檔案 85
9.7 配置trove-taskmanager.conf 87
9.8 配置trove-conductor.conf檔案 88
9.9 配置trove-guestagent.conf檔案 89
9.10 同步資料庫 91
9.11 啟動服務 91
9.12 上傳映象 91
9.13 建立資料庫儲存 91
9.14 使用上傳的映象更新資料庫 91
10 安裝Heat編配服務 92
10.1通過指令碼安裝heat服務 92
10.2安裝heat編配服務軟體包 92
10.3建立資料庫 92
10.4建立使用者 93
10.5建立Endpoint和API端點 93
10.6配置Heat服務 94
10.7建立資料庫 96
10.8啟動服務 96
10.9 nginx模板 96
11 安裝Ceilometer監控服務 99
11.1通過指令碼安裝Ceilometer服務 99
11.2 安裝Ceilometer監控服務軟體包 99
11.3 建立資料庫 100
11.4 建立使用者 100
11.5 建立Endpoint和API端點 100
11.6 配置Ceilometer 100
11.7 啟動服務 102
11.8 監控元件 102
11.9 安裝軟體包 104
11.10 配置Ceilometer 104
12 安裝Alarm監控服務 106
12.1通過指令碼安裝alarm服務 106
12.2 建立資料庫 106
12.3 建立keystone使用者 107
12.4 建立Endpoint和API 107
12.5 安裝軟體包 107
12.6 配置aodh 107
12.7 同步資料庫 109
12.8 啟動服務 109
13 新增控制節點資源到雲平臺 110
13.1
修改openrc.sh
110
13.2 執行iaas-install-nova-compute.sh 110
14 系統解除安裝 110
15 Xindian-IaaS-2.2版本升級說明: 110

1 基本環境配置
雲端計算平臺的拓撲圖如圖1所示,IP地址規劃如圖1所示。

圖1雲端計算平臺拓撲圖

本次搭建採用雙節點安裝,即controller node控制節點和compute node計算節點。enp8s0為外部網路,enp9s0為內部管理網路。儲存節點安裝作業系統時劃分兩個空白分割槽以sda,sdb為例。作為cinder和swift儲存磁碟,搭建 ftp伺服器作為搭建雲平臺的yum源。配置檔案中密碼需要根據實際環境進行配置。
1.1安裝CentOS7說明
【CentOS7版本】
CentOS7系統選擇1511版本:CentOS-7-x86_64-DVD-1511.iso
【空白分區劃分】
CentOS7的安裝與CentOS6.5的安裝有明顯的區別。在CentOS7安裝過程中,設定分割槽都需要一個掛載點,這樣一來就無法建立兩個空白的磁碟分割槽作為cinder服務和swift服務的儲存磁碟了。
所以我們應該在系統安裝過程中留下足夠的磁碟大小,系統安裝完成後,使用命令parted劃分新分割槽,然後使用mkfs.xfs進行檔案系統格式化,完成空白分割槽的劃分。具體命令如下:
[[email protected] ~]# parted /dev/md126
(parted) mkpart swift 702G 803G //建立swift分割槽,從702G到803G
[[email protected] ~]# mkfs.xfs /dev/md126p5
1.2配置網路、主機名
修改和新增/etc/sysconfig/network-scripts/ifcfg-enp*(具體的網口)檔案。
(1)controller節點
配置網路:
enp8s0: 192.168.100.10
DEVICE=enp8s0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.1

enp9s0: 192.168.200.10
DEVICE=enp9s0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.200.10
PREFIX=24
配置主機名:

hostnamectl set-hostname controller

按ctrl+d 退出 重新登陸
(2)compute 節點
配置網路:
enp8s0: 192.168.100.20
DEVICE=enp8s0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.100.20
PREFIX=24
GATEWAY=192.168.100.1

enp9s0: 192.168.200.20
DEVICE=enp9s0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.200.20
PREFIX=24

配置主機名:

hostnamectl set-hostname compute

按ctrl+d 退出 重新登陸

1.3配置yum源
#Controller和compute節點
(1)yum源備份
#mv /etc/yum.repos.d/* /opt/
(2)建立repo檔案
【controller】
在/etc/yum.repos.d建立centos.repo原始檔
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas-repo
gpgcheck=0
enabled=1

【compute】
在/etc/yum.repos.d建立centos.repo原始檔
[centos]
name=centos
baseurl=ftp://192.168.100.10/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.100.10/iaas-repo
gpgcheck=0
enabled=1

(3)掛載iso檔案
【掛載CentOS-7-x86_64-DVD-1511.iso】
[[email protected] ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt/
[[email protected] ~]# mkdir /opt/centos
[[email protected] ~]# cp -rvf /mnt/* /opt/centos/
[[email protected] ~]# umount /mnt/

【掛載XianDian-IaaS-v2.2.iso】
[[email protected] ~]# mount -o loop XianDian-IaaS-v2.2.iso /mnt/
[[email protected] ~]# cp -rvf /mnt/* /opt/
[[email protected] ~]# umount /mnt/

(4)搭建ftp伺服器,開啟並設定自啟
[[email protected] ~]# yum install vsftpd –y
[[email protected] ~]# vi /etc/vsftpd/vsftpd.conf
新增anon_root=/opt/
儲存退出

[[email protected] ~]# systemctl start vsftpd
[[email protected] ~]# systemctl enable vsftpd

(5)關閉防火牆並設定開機不自啟
【controller/compute】
systemctl stop firewalld
systemctl disable firewalld

(6)清除快取,驗證yum源
【controller/compute】

yum clean all

yum list

1.4編輯環境變數

controller和compute節點

yum install iaas-xiandian -y

編輯檔案/etc/xiandian/openrc.sh,此檔案是安裝過程中的各項引數,根據每項引數上一行的說明及伺服器實際情況進行配置。
HOST_IP=192.168.100.10
HOST_NAME=controller
HOST_IP_NODE=192.168.100.20
HOST_NAME_NODE=compute
RABBIT_USER=openstack
RABBIT_PASS=000000
DB_PASS=000000
DOMAIN_NAME=demo(自定義)
ADMIN_PASS=000000
DEMO_PASS=000000
KEYSTONE_DBPASS=000000
GLANCE_DBPASS=000000
GLANCE_PASS=000000
NOVA_DBPASS=000000
NOVA_PASS=000000
NEUTRON_DBPASS=000000
NEUTRON_PASS=000000
METADATA_SECRET=000000
INTERFACE_NAME=enp9s0(外網網絡卡名)
CINDER_DBPASS=000000
CINDER_PASS=000000
TROVE_DBPASS=000000
TROVE_PASS=000000
BLOCK_DISK=md126p4(空白分割槽名)
SWIFT_PASS=000000
OBJECT_DISK=md126p5(空白分割槽名)
STORAGE_LOCAL_NET_IP=192.168.100.20
HEAT_DBPASS=000000
HEAT_PASS=000000
CEILOMETER_DBPASS=000000
CEILOMETER_PASS=000000
AODH_DBPASS=000000
AODH_PASS=000000

1.5通過指令碼安裝服務
1.6-1.9的基礎配置操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下:

Controller節點和Compute節點

執行指令碼iaas-pre-host.sh進行安裝

安裝完成後同時重啟

[[email protected] ~]# reboot

1.6安裝Openstack包

controller和compute節點

yum -y install openstack-utils openstack-selinux python-openstackclient

yum upgrade

1.7配置域名解析
修改/etc/hosts新增一下內容
(1)controller 節點
20.0.0.10 controller
20.0.0.20 compute
(2)compute 節點
20.0.0.10 controller
20.0.0.20 compute
1.8配置防火牆和Selinux
編輯selinux檔案

vi /etc/selinux/config

SELINUX=permissive
關閉防火牆並設定開機不自啟

systemctl stop firewalld.service

systemctl disable firewalld.service

yum remove -y NetworkManager firewalld

yum -y install iptables-services

systemctl enable iptables

systemctl restart iptables

iptables -F

iptables -X

iptables -X

service iptables save

1.9安裝ntp服務
(1)controller和compute節點

yum -y install ntp

(2)配置controller節點
編輯/etc/ntp.conf檔案
新增以下內容(刪除預設sever規則)
server 127.127.1.0
fudge 127.127.1.0 stratum 10
啟動ntp伺服器

service ntpd start

chkconfig ntpd on

(3)配置compute節點

ntpdate controller

chkconfig ntpdate on

1.10通過指令碼安裝服務
1.11-1.14基礎服務的操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下:

Controller節點

執行指令碼iaas-install-mysql.sh進行安裝

1.11安裝Mysql資料庫服務

yum install mysql mysql-server MySQL-python

修改 /etc/my.cnf檔案[mysqld]中新增
max_connections=10000
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = ‘SET NAMES utf8’
character-set-server = utf8
啟動服務
#systemctl enable mariadb.service
#systemctl start mariadb.service
配置Mysql
#mysql_secure_installation
修改/usr/lib/systemd/system/mariadb.service
[Service]
新新增兩行如下引數:
LimitNOFILE=10000
LimitNPROC=10000
重新載入系統服務,並重啟mariadb服務

systemctl daemon-reload

service mariadb restart

按enter確認後設置資料庫root密碼
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
(2)compute節點
#yum -y install MySQL-python
1.12安裝Mongo資料庫服務
#yum install -y mongodb-server mongodb
編輯 /etc/mongod.conf檔案
刪除bind_ip行
修改 smallfiles = true
#systemctl enable mongod.service
#systemctl start mongod.service
1.13安裝RabbitMQ服務

yum install -y rabbitmq-server

systemctl enable rabbitmq-server.service
systemctl restart rabbitmq-server.service
rabbitmqctl add_user openstack 000000
rabbitmqctl set_permissions openstack “." ".” “.*”
1.14安裝memcahce
#yum install memcached python-memcached
systemctl enable memcached.service
systemctl restart memcached.service
2 安裝Keystone認證服務
#Controller
2.1 通過指令碼安裝keystone服務
2.2-2.9的認證服務的操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下:

Controller節點

執行指令碼iaas-install-keystone.sh進行安裝。

2.2安裝keystone服務軟體包
yum install -y openstack-keystone htsRtpd mod_wsgi
2.3建立Keystone資料庫

mysql –u root -p(此處資料庫密碼為之前安裝Mysql設定的密碼) mysql> CREATE a kDATABASE keystone; mysql> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@‘localhost’ IDENTIFIED BY ‘KEYSTONE_DBPASS’; mysql> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’ IDENTIFIED BY ‘KEYSTONE_DBPASS’; mysql> exit

2.4配置資料庫連線
#openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:[email protected]/keystone
2.5為keystone服務建立資料庫表
#su -s /bin/sh -c “keystone-manage db_sync” keystone
2.6建立令牌
#ADMIN_TOKEN=$(openssl rand -hex 10)
#openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN
#openstack-config --set /etc/keystone/keystone.conf token provider fernet
2.7建立簽名金鑰和證書
#keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
修改/etc/httpd/conf/httpd.conf配置檔案將ServerName www.example.com:80 替換為ServerName controller
建立/etc/httpd/conf.d/wsgi-keystone.conf檔案,內容如下:
Listen 5000
Listen 35357

<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat “%{cu}t %M”
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
    Require all granted
</Directory>

<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat “%{cu}t %M”
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
    Require all granted
</Directory>
#systemctl enable httpd.service #systemctl start httpd.service 2.8定義使用者、租戶和角色 (1)設定環境變數 export OS_TOKEN=$ADMIN_TOKEN export OS_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 (2)建立keystone相關內容 openstack service create --name keystone --description "OpenStack Identity" identity openstack endpoint create --region RegionOne identity public http://controller:5000/v3 openstack endpoint create --region RegionOne identity internal http://controller:5000/v3 openstack endpoint create --region RegionOne identity admin http://controller:35357/v3 openstack domain create --description "Default Domain" default openstack project create --domain default --description "Admin Project" admin openstack user create --domain default --password 000000 admin openstack role create admin openstack role add --project admin --user admin admin openstack project create --domain default --description "Service Project" service openstack project create --domain default --description "Demo Project" demo openstack user create --domain default --password 000000 demo openstack role create user openstack role add --project demo --user demo user (3)清除環境變數 #unset OS_TOKEN OS_URL 2.9建立admin-openrc.sh 建立admin環境變數admin-openrc.sh export OS_PROJECT_DOMAIN_NAME=default export OS_USER_DOMAIN_NAME=default export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=000000 export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 生效環境變數 #source admin-openrc.sh 3 安裝Glance映象服務 #Controller 3.1 通過指令碼安裝glance服務 3.2-3.9的映象服務的操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下: # Controller 節點 執行指令碼iaas-install-glance.sh進行安裝

3.2 安裝Glance映象服務軟體包

yum install -y openstack-glance

3.3建立Glance資料庫
#mysql -u root -p
mysql> CREATE DATABASE glance;
mysql> GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@‘localhost’ IDENTIFIED BY ‘GLANCE_DBPASS’;
mysql> GRANT ALL PRIVILEGES ON glance.* TO ‘glance’@’%’ IDENTIFIED BY ‘GLANCE_DBPASS’;
3.4配置檔案建立資料庫連線

openstack-config --set /etc/glance/glance-api.conf database connection mysql+pymysql://glance:[email protected]/glance

#openstack-config --set /etc/glance/glance-registry.conf database connection mysql+pymysql://glance:[email protected]/glance
3.5為映象服務建立資料庫表

su -s /bin/sh -c “glance-manage db_sync” glance

3.6建立使用者
openstack user create --domain default --password 000000 glance
openstack role add --project service --user glance admin
3.7配置映象服務
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-api.conf keystone_authtoken password 000000
openstack-config --set /etc/glance/glance-api.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-api.conf paste_deploy config_file /usr/share/glance/glance-api-dist-paste.ini
openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http
openstack-config --set /etc/glance/glance-api.conf glance_store default_store file
openstack-config --set /etc/glance/glance-api.conf glance_store filesystem_store_datadir /var/lib/glance/images/
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken auth_type password
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken project_name service
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken username glance
openstack-config --set /etc/glance/glance-registry.conf keystone_authtoken password 000000
openstack-config --set /etc/glance/glance-registry.conf paste_deploy flavor keystone
openstack-config --set /etc/glance/glance-registry.conf paste_deploy config_file /usr/share/glance/glance-registry-dist-paste.ini
3.8建立Endpoint和API端點
openstack service create --name glance --description “OpenStack Image” image
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
3.9啟動服務
systemctl enable openstack-glance-api.service openstack-glance-registry.service
systemctl restart openstack-glance-api.service openstack-glance-registry.service
3.10上傳映象
首先下載(Wget)提供的系統映象到本地,本次以上傳CentOS6.5x86_64映象為例。
可以安裝Wget,從Ftp伺服器上下載映象到本地。

source /etc/keystone/admin-openrc.sh

glance image-create --name “CentOS7.0” --disk-format qcow2 --container-format bare --progress < /opt/iaas/images/centos_7-x86_64_xiandian.qcow2

4 安裝Nova計算服務
#Controller
4.1通過指令碼安裝nova服務
4.2-4.14計算服務的操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下:
#Controller節點
執行指令碼iaas-install-nova-controller.sh進行安裝
#Compute節點
執行指令碼iaas-install-nova-compute.sh進行安裝

4.2安裝Nova 計算服務軟體包

yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler

4.3建立Nova資料庫

mysql -u root -p

mysql> CREATE DATABASE nova;
mysql> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘NOVA_DBPASS’;
mysql> GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’%’ IDENTIFIED BY ‘NOVA_DBPASS’;
mysql> create database IF NOT EXISTS nova_api;
mysql> GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘NOVA_DBPASS’ ;
mysql> GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@’%’ IDENTIFIED BY ‘NOVA_DBPASS’ ;
修改資料庫連線
openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:[email protected]/nova
openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:[email protected]/nova_api
4.4建立計算服務表
su -s /bin/sh -c “nova-manage db sync” nova
su -s /bin/sh -c “nova-manage api_db sync” nova
4.5建立使用者
openstack user create --domain default --password 000000 nova
openstack role add --project service --user nova admin
4.6配置計算服務
openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 20.0.0.10
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf DEFAULT metadata_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf DEFAULT metadata_listen_port 8775
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password 000000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password 000000
openstack-config --set /etc/nova/nova.conf vnc vncserver_listen 20.0.0.10
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address 20.0.0.10
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
4.7建立Endpoint和API端點
openstack service create --name nova --description “OpenStack Compute” compute
openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%(tenant_id)s
openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%(tenant_id)s
openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%(tenant_id)s
4.8啟動服務
systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
systemctl start openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
4.9驗證Nova
#nova image-list

#Compute
4.10安裝Nova計算服務軟體包
yum install lvm2 -y
yum install openstack-nova-compute -y
4.11配置Nova服務
openstack-config --set /etc/nova/nova.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/nova/nova.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/nova/nova.conf oslo_messaging_rabbit rabbit_password 000000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password 000000
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 20.0.0.20
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf vnc enabled True
openstack-config --set /etc/nova/nova.conf vnc vncserver_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc vncserver_proxyclient_address 20.0.0.20
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://20.0.0.10:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf glance api_servers http://controller:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf libvirt inject_key True
4.12檢查系統處理器是否支援虛擬機器的硬體加速
執行命令
#egrep -c ‘(vmx|svm)’ /proc/cpuinfo
(1)如果該命令返回一個1或更大的值,說明你的系統支援硬體加速,通常不需要額外的配置。
(2)如果這個指令返回一個0值,說明你的系統不支援硬體加速,你必須配置libvirt取代KVM來使用QEMU。

openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu

4.13啟動
systemctl enable libvirtd.service openstack-nova-compute.service
systemctl start libvirtd.service openstack-nova-compute.service
4.14 清除防火牆
controller和compute節點
iptables -F
iptables -X
iptables -Z
/usr/libexec/iptables/iptables.init save
5 安裝Neutron網路服務
#Controller節點
5.1通過指令碼安裝neutron服務
5.3-5.14網路服務的操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下:
#Controller節點
執行指令碼iaas-install-neutron-controller.sh進行安裝
#Compute節點
執行指令碼iaas-install-neutron-compute.sh進行安裝

5.2通過指令碼建立neutron網路
5.15網路服務的操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下:

建立flat網路
#Controller節點
執行指令碼iaas-install-neutron-controller-flat.sh進行安裝
#Compute節點
執行指令碼iaas-install-neutron-compute-flat.sh進行安裝

建立gre網路
#Controller節點
執行指令碼iaas-install-neutron-controller-gre.sh進行安裝
#Compute節點
執行指令碼iaas-install-neutron-compute-gre.sh進行安裝

建立vlan網路
#Controller節點
執行指令碼iaas-install-neutron-controller-vlan.sh進行安裝
#Compute節點
執行指令碼iaas-install-neutron-compute-vlan.sh進行安裝

5.3建立Neutron資料庫
#mysql -u root -p
mysql> CREATE DATABASE neutron;
mysql> GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’@‘localhost’ IDENTIFIED BY ‘000000’;
mysql> GRANT ALL PRIVILEGES ON neutron.* TO ‘neutron’@’%’ IDENTIFIED BY ‘000000’;
5.4建立使用者
openstack user create --domain default --password 000000 neutron
openstack role add --project service --user neutron admin
5.5建立Endpoint和API端點
openstack service create --name neutron --description “OpenStack Networking” network
openstack endpoint create --region RegionOne network public http://controller:9696
openstack endpoint create --region RegionOne network internal http://controller:9696
openstack endpoint create --region RegionOne network admin http://controller:9696
5.6安裝neutron網路服務軟體包

yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables openstack-neutron-openvswitch openstack-neutron-lbaas python-neutron-lbaas haproxy openstack-neutron-fwaas

5.7配置Neutron服務
openstack-config --set /etc/neutron/neutron.conf database connection mysql://neutron:[email protected]/neutron
openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_password 000000
openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router
openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_overlapping_ips True
openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name service
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password 000000
openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_status_changes True
openstack-config --set /etc/neutron/neutron.conf DEFAULT notify_nova_on_port_data_changes True
openstack-config --set /etc/neutron/neutron.conf nova auth_url http://controller:35357
openstack-config --set /etc/neutron/neutron.conf nova auth_type password
openstack-config --set /etc/neutron/neutron.conf nova project_domain_name default
openstack-config --set /etc/neutron/neutron.conf nova user_domain_name default
openstack-config --set /etc/neutron/neutron.conf nova region_name RegionOne
openstack-config --set /etc/neutron/neutron.conf nova project_name service
openstack-config --set /etc/neutron/neutron.conf nova username nova
openstack-config --set /etc/neutron/neutron.conf nova password 000000
openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,vlan,gre,vxlan,local
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers openvswitch,l2population
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset True
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_security_group true
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup firewall_driver iptables_hybrid
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT dhcp_driver neutron.agent.linux.dhcp.Dnsmasq
openstack-config --set /etc/neutron/dhcp_agent.ini DEFAULT enable_isolated_metadata True
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini agent l2_population True
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini agent prevent_arp_spoofing True
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs integration_bridge br-int
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini securitygroup firewall_driver iptables_hybrid
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_ip 20.0.0.10
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT metadata_proxy_shared_secret 000000
openstack-config --set /etc/neutron/metadata_agent.ini DEFAULT nova_metadata_port 8775
openstack-config --set /etc/nova/nova.conf DEFAULT auto_assign_floating_ip True
openstack-config --set /etc/nova/nova.conf DEFAULT metadata_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf DEFAULT metadata_listen_port 8775
openstack-config --set /etc/nova/nova.conf DEFAULT scheduler_default_filters ‘AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter’
openstack-config --set /etc/nova/nova.conf DEFAULT compute_driver libvirt.LibvirtDriver
openstack-config --set /etc/nova/nova.conf neutron url http://controller:9696
openstack-config --set /etc/nova/nova.conf neutron auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf neutron auth_type password
openstack-config --set /etc/nova/nova.conf neutron project_domain_name default
openstack-config --set /etc/nova/nova.conf neutron user_domain_name default
openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne
openstack-config --set /etc/nova/nova.conf neutron project_name service
openstack-config --set /etc/nova/nova.conf neutron username neutron
openstack-config --set /etc/nova/nova.conf neutron password 20.0.0.10
openstack-config --set /etc/nova/nova.conf neutron service_metadata_proxy True
openstack-config --set /etc/nova/nova.conf neutron metadata_proxy_shared_secret 000000
5.8 編輯核心
編輯檔案/etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
生效配置
sysctl –p
5.9 建立資料庫
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
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
5.10 啟動服務和建立網橋
systemctl restart openvswitch
systemctl enable openvswitch
ovs-vsctl add-br br-int
systemctl restart openstack-nova-api.service
systemctl enable neutron-server.service neutron-openvswitch-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
systemctl restart neutron-server.service neutron-openvswitch-agent neutron-dhcp-agent.service neutron-metadata-agent.service
systemctl enable neutron-l3-agent.service
systemctl restart neutron-l3-agent.service
#Compute節點
5.11 安裝軟體包
yum install openstack-neutron-linuxbridge ebtables ipset openstack-neutron openstack-neutron-ml2 openstack-neutron-openvswitch –y
5.12 配置Neutron服務
openstack-config --set /etc/neutron/neutron.conf DEFAULT rpc_backend rabbit
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_host controller
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_userid openstack
openstack-config --set /etc/neutron/neutron.conf oslo_messaging_rabbit rabbit_password 000000
openstack-config --set /etc/neutron/neutron.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/neutron/neutron.conf DEFAULT core_plugin ml2
openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router
openstack-config --set /etc/neutron/neutron.conf DEFAULT allow_overlapping_ips True
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_uri http://controller:5000
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_url http://controller:35357
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken memcached_servers controller:11211
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken auth_type password
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken user_domain_name default
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken project_name service
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken username neutron
openstack-config --set /etc/neutron/neutron.conf keystone_authtoken password 000000
openstack-config --set /etc/neutron/neutron.conf oslo_concurrency lock_path /var/lib/neutron/tmp
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers flat,vlan,gre,vxlan,local
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers openvswitch,l2population
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 extension_drivers port_security
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_ipset True
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_security_group true
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup firewall_driver iptables_hybrid
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini agent l2_population True
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini agent prevent_arp_spoofing True
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs integration_bridge br-int
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini securitygroup firewall_driver iptables_hybrid
openstack-config --set /etc/nova/nova.conf neutron url http://controller:9696
openstack-config --set /etc/nova/nova.conf neutron auth_url http://controller:35357
openstack-config --set /etc/nova/nova.conf neutron auth_type password
openstack-config --set /etc/nova/nova.conf neutron project_domain_name default
openstack-config --set /etc/nova/nova.conf neutron user_domain_name default
openstack-config --set /etc/nova/nova.conf neutron region_name RegionOne
openstack-config --set /etc/nova/nova.conf neutron project_name service
openstack-config --set /etc/nova/nova.conf neutron username neutron
openstack-config --set /etc/nova/nova.conf neutron password 000000
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron True
openstack-config --set /etc/nova/nova.conf DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf DEFAULT vif_plugging_is_fatal True
openstack-config --set /etc/nova/nova.conf DEFAULT vif_plugging_timeout 300
5.13 編輯核心
編輯檔案/etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
生效配置
sysctl –p
5.14 啟動服務進而建立網橋
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
systemctl restart openvswitch
systemctl enable openvswitch
ovs-vsctl add-br br-int
systemctl restart openstack-nova-compute.service
systemctl restart openstack-nova-compute neutron-metadata-agent
systemctl restart neutron-openvswitch-agent
systemctl enable neutron-openvswitch-agent neutron-metadata-agent
5.15 選擇Neutron網路模式
以下任意選擇一種方式進行安裝
5.15.1 Flat
#Controller節點
# source /etc/xiandian/openrc.sh

source /etc/keystone/admin-openrc.sh

ovs-vsctl add-br br-ex

修改/etc/sysconfig/network-scripts/ifcfg-enp9s0配置如下:
DEVICE=enp9s0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
修改完成後執行以下命令

ovs-vsctl add-port br-ex enp9s0

systemctl restart network

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks physnet1

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types flat

openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs bridge_mappings physnet1:br-ex

systemctl restart neutron-openvswitch-agent

配置lbaas服務
openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router,lbaas
openstack-config --set /etc/neutron/neutron_lbaas.conf service_providers service_provider LOADBALANCER:Haproxy:neutron_lbaas.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
openstack-config --set /etc/neutron/lbaas_agent.ini DEFAULT device_driver neutron_lbaas.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
openstack-config --set /etc/neutron/lbaas_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
openstack-config --set /etc/neutron/lbaas_agent.ini haproxy user_group haproxy
建立資料庫
neutron-db-manage --service lbaas upgrade head
重啟服務
systemctl restart neutron-server neutron-lbaas-agent
systemctl enabled neutron-server neutron-lbaas-agent
#Compute節點

ovs-vsctl add-br br-ex

修改/etc/sysconfig/network-scripts/ifcfg-enp9s0配置如下:
DEVICE=enp9s0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
修改完成後執行以下命令

ovs-vsctl add-port br-ex enp9s0

systemctl restart network

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks physnet1

openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types flat

openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs bridge_mappings physnet1:br-ex

systemctl restart neutron-openvswitch-agent

建立FLAT網路

Controller節點

tenantID=openstack project list | grep service | awk '{print $2}'
neutron net-create --tenant-id KaTeX parse error: Expected 'EOF', got '#' at position 108: …t1 5.15.2 Gre #̲Controller節點 op…minvlan:KaTeX parse error: Expected 'EOF', got '#' at position 655: …tron-l3-agent #̲Compute節點 opens…minvlan:$maxvlan(最小vlan號:最大vlanID號)
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini securitygroup firewall_driver iptables_hybrid
openstack-config --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-ex
openstack-config --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs bridge_mappings physnet1:br-ex
ovs-vsctl add-br br-ex
修改/etc/sysconfig/network-scripts/ifcfg-enp9s0配置如下:
DEVICE=enp9s0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
修改完成後執行以下命令
ovs-vsctl add-port br-ex enp9s0
systemctl restart network
systemctl restart neutron-openvswitch-agent
配置lbaas服務
openstack-config --set /etc/neutron/neutron.conf DEFAULT service_plugins router,lbaas,firewall
openstack-config --set /etc/neutron/neutron_lbaas.conf service_providers service_provider LOADBALANCER:Haproxy:neutron_lbaas.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
openstack-config --set /etc/neutron/lbaas_agent.ini DEFAULT device_driver neutron_lbaas.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyNSDriver
openstack-config --set /etc/neutron/lbaas_agent.ini DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
openstack-config --set /etc/neutron/lbaas_agent.ini haproxy user_group haproxy
配置fwaas服務
openstack-config --set /etc/neutron/neutron.conf service_providers FIREWALL:Iptables:neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver:default
openstack-config --set /etc/neutron/fwaas_driver.ini fwaas driver neutron_fwaas.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver
openstack-config --set /etc/neutron/fwaas_driver.ini fwaas enabled True
建立資料庫
neutron-db-manage --service lbaas upgrade head
neutron-db-manage --subproject neutron-fwaas upgrade head
重啟服務
systemctl restart neutron-server neutron-lbaas-agent systemctl restart neutron-l3-agent
systemctl enabled neutron-lbaas-agent
建立Vlan網路

Controller節點

neutron net-create ext-net --router:external True --provider:physical_network physnet1 --provider:network_type flat
neutron net-create demo-net --tenant-id openstack project list |grep -w admin |awk '{print $2}' --provider:network_type vlan
5.16 網路高階應用
5.16.1 負載均衡操作
(1)新增資源池

(2)為負載均衡資源池新增雲主機成員(web頁面),選擇要新增的資源池以及成員雲主機,設定協議埠。

(3)負載均衡資源池新增VIP,VIP子網需可以和雲主機成員子網通訊

(4)新增監控,建立成員雲主機監控規則。

設定資源池關聯監控

選擇監控規則

(5)負載均衡器繫結浮動IP,(此網路模式為gre網路,需繫結浮動IP;flat網路模式不需要繫結浮動IP,即直接訪問資源池VIP即可;vlan網路模式,如VIP為外部可訪問地址,也可直接訪問VIP地址,否則,需繫結浮動IP。)

分配訪問浮動IP地址

訪問負載均衡IP地址:http://172.30.11.7/

5.16.2 防火牆操作
GRE和VLAN網路模式可以使用fwaas防火牆服務,Flat不能使用防火牆功能。

(1)新建防火牆規則

(2)新建防火牆策略

在防火牆策略中新增防火牆規則。

(3)建立防火牆

防火牆選擇所作用於的路由。

(4)web-2是一個nginx伺服器,通過頁面訪問http://172.30.11.4

6 安裝Dashboard服務
6.1通過指令碼安裝dashboard服務
6.2-6.4dashboard的操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下:
#Controller
執行指令碼iaas-install-dashboard.sh進行安裝

6.2安裝Dashboard服務軟體包

yum install openstack-dashboard –y

6.3配置
修改/etc/openstack-dashboard/local_settings內容如下
修改
import os
from django.utils.translation import ugettext_lazy as _
from openstack_dashboard import exceptions
from openstack_dashboard.settings import HORIZON_CONFIG
DEBUG = False
TEMPLATE_DEBUG = DEBUG
WEBROOT = ‘/dashboard/’
ALLOWED_HOSTS = [’’,‘localhost’]
OPENSTACK_API_VERSIONS = {
“identity”: 3,
“volume”: 2,
“compute”: 2,
}
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = ‘default’
LOCAL_PATH = ‘/tmp’
SECRET_KEY=‘e2cf67af77d15971b311’
SESSION_ENGINE = ‘django.contrib.sessions.backends.cache’
CACHES = {
‘default’: {
‘BACKEND’: ‘django.core.cache.backends.memcached.MemcachedCache’,
‘LOCATION’: ‘127.0.0.1:11211’,
},
}
EMAIL_BACKEND = ‘django.core.mail.backends.console.EmailBackend’
OPENSTACK_HOST = “controller”
OPENSTACK_KEYSTONE_URL = “http://%s:5000/v3” % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = “user”
OPENSTACK_KEYSTONE_BACKEND = {
‘name’: ‘native’,
‘can_edit_user’: True,
‘can_edit_group’: True,
‘can_edit_project’: True,
‘can_edit_domain’: True,
‘can_edit_role’: True,
}
OPENSTACK_HYPERVISOR_FEATURES = {
‘can_set_mount_point’: False,
‘can_set_password’: False,
‘requires_keypair’: False,
}
OPENSTACK_CINDER_FEATURES = {
‘enable_backup’: False,
}
OPENSTACK_NEUTRON_NETWORK = {
‘enable_router’: True,
‘enable_quotas’: True,
‘enable_ipv6’: True,
‘enable_distributed_router’: False,
‘enable_ha_router’: False,
‘enable_lb’: True,
‘enable_firewall’: True,
‘enable_vpn’: True,
‘enable_fip_topology_check’: True,
‘default_ipv4_subnet_pool_label’: None,
‘default_ipv6_subnet_pool_label’: None,
‘profile_support’: None,
‘supported_provider_types’: [’
’],
‘supported_vnic_types’: [’*’],
}
OPENSTACK_HEAT_STACK = {
‘enable_user_pass’: True,
}
IMAGE_CUSTOM_PROPERTY_TITLES = {
“architecture”: _(“Architecture”),
“kernel_id”: _(“Kernel ID”),
“ramdisk_id”: _(“Ramdisk ID”),
“image_state”: _(“Euca2ools state”),
“project_id”: _(“Project ID”),
“image_type”: _(“Image Type”),
}
IMAGE_RESERVED_CUSTOM_PROPERTIES = []
API_RESULT_LIMIT = 1000
API_RESULT_PAGE_SIZE = 20
SWIFT_FILE_TRANSFER_CHUNK_SIZE = 512 * 1024
DROPDOWN_MAX_ITEMS = 30
TIME_ZONE = “UTC”
POLICY_FILES_PATH = ‘/etc/openstack-dashboard’
LOGGING = {

}
SECURITY_GROUP_RULES = {

}
REST_API_REQUIRED_SETTINGS = [‘OPENSTACK_HYPERVISOR_FEATURES’,
‘LAUNCH_INSTANCE_DEFAULTS’]
6.4啟動服務

systemctl restart httpd.service memcached.service

6.5訪問
開啟瀏覽器訪問Dashboard
http://controller(或本機內網ip)/dashboard
注:檢查防火牆規則,確保允許http服務相關埠通行,或者關閉防火牆。

6.6建立雲主機(gre/vlan)
(1)管理員 → 網路 → 建立網路(內外網) → 建立子網(外網填伺服器的外網網段)

(2)專案 → 網路 → 路由 → 新建路由 → 新增閘道器和內網介面

(3)專案 → 計算 → 訪問安全 → 管理規則 → 新增規則(ICMP、TCP、UDP)

(4)專案 → 計算 → 雲主機 → 建立雲主機 → 繫結浮動IP

7 安裝Cinder塊儲存服務
7.1 通過指令碼安裝Cinder服務
7.2-7.13塊儲存服務的操作命令已經編寫成shell指令碼,通過指令碼進行一鍵安裝。如下:
#Controller
執行指令碼iaas-install-cinder-controller.sh進行安裝
#Compute節點
執行指令碼iaas-install-cinder-compute.sh進行安裝

7.2 安裝Cinder塊儲存服務軟體包

yum install openstack-cinder

修改許可權配置檔案,修改檔案/etc/cinder/policy.json,將consistencygroup許可權修改為空