国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

openstack單機部署

這篇具有很好參考價值的文章主要介紹了openstack單機部署。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

OpenStack部署

一、OpenStack環(huán)境部署

1. 虛擬機配置

controller 192.168.34.10 2c6g50g
compute01 192.168.34.20 2c4g50g

2. 設置主機名

hostnamectl set-hostname controller
hostnamectl set-hostname compute01
修改host文件
vim /etc/hosts
192.168.34.10 controller
192.168.34.20 compute01

3. 時間同步

controller時間同步
vim /etc/chrony.conf
#server 0.centos.pool.ntp.org#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org#server 3.centos.pool.ntp.org iburst
server ntp.aliyun.comserver ntp.aliyun.com iburst
27 allow 192.168.0.0/24 #配置允許訪問的客戶端
31 local stratum 10 #本地的優(yōu)先級
systemctl restart chronyd
conpute01時間同步
vim /etc/chrony.conf
#server 2.centos.pool.ntp.org#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server controller iburst
systemctl restart chronyd

4. 安裝openStack倉庫

controller和compute都要安裝
#下載T版本的OpenStack倉庫
yum -y install centos-release-openstack-train
#安裝RDO倉庫RPM來啟用OpenStack倉庫
yum -y install https://rdoproject.org/repos/rdo-release.rpm
#安裝客戶端工具
yum -y install python-openstackclient

5. 安裝MySQL數(shù)據(jù)庫

controller節(jié)點安裝
yum -y install mariadb mariadb-server python2-PyMySQL
vim /etc/my.cnf.d/openstack.cnf
[mysqld] bind-address = 192.168.0.50 default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8
systemctl enable mariadb.service && systemctl start
#對數(shù)據(jù)庫進行初始化操作 mysql_secure_installation
輸入root密碼:——》[回車]
是否設置root密碼?——[y]
直接設置root密碼——》[123456]
是否刪除匿名用戶?——》[y]
不允許root用戶遠程登錄?——》[y]
是否刪除測試數(shù)據(jù)庫?——》[y]
是否重新加載授權表?——》[y]

6. 安裝rabbitMQ消息隊列

controller節(jié)點安裝
yum -y install rabbitmq-server
systemctl enable rabbitmq-server.service && systemctl start rabbitmq-server.service
#增加賬戶失敗,執(zhí)行 su -
rabbitmqctl add_user openstack 123456
#設置賬戶權限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

7. 安裝memcacheh數(shù)據(jù)庫

controller節(jié)點安裝
yum -y install memcached python-memcached
vim /etc/sysconfig/memcached
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1,::1,controller"
systemctl enable memcached.service && systemctl start memcached.service
netstat -ntlp | grep 11211

8. 安裝etcd數(shù)據(jù)庫

controller節(jié)點安裝
yum -y install etcd
vi /etc/etcd/etcd.conf
#[Member] ETCD_DATA_DIR="/var/lib/etcd/default.etcd" ETCD_LISTEN_PEER_URLS=" http://10.0.0.11:2380" ETCD_LISTEN_CLIENT_URLS=" http://10.0.0.11:2379" ETCD_NAME="controller" #[Clustering] ETCD_INITIAL_ADVERTISE_PEER_URLS=" http://10.0.0.11:2380" ETCD_ADVERTISE_CLIENT_URLS=" http://10.0.0.11:2379" ETCD_INITIAL_CLUSTER="controller= http://10.0.0.11:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new"
#替換
sed -i 's/10.0.0.11/192.168.10.10/g' /etc/etcd/etcd.conf
systemctl enable etcd && systemctl start etcd
netstat -ntlp | egrep '2379|2380'

9. 基礎環(huán)境安裝完成,檢查安裝服務

systemctl is-active chronyd mariadb.service rabbitmq-server.service memcached.service etcd.service

二、Keystone安裝

1. mysql創(chuàng)建keystone賬號

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

2. keystone服務安裝與配置

yum -y install openstack-keystone httpd mod_wsgi #修改keystone.conf 配置文件 #查看文件屬性,必須是keystone組 ll /etc/keystone/keystone.conf -rw-r----- 1 root keystone 106413 6月 8 2021 /etc/keystone/keystone.conf #提前備份配置文件 cp /etc/keystone/keystone.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf #查看文件屬性(確定歸屬關系沒有發(fā)生改變) ll /etc/keystone/keystone.conf -rw-r----- 1 root keystone 601 12月 8 20:56 /etc/keystone/keystone.conf #修改文件內容 vim /etc/keystone/keystone.conf [database] #配置keystone訪問數(shù)據(jù)庫的密碼 connection = mysql+pymysql://keystone:123456@controller/keystone [token] #配置Fernet令牌,方便其他程序通過令牌來連接keyston進行驗證 provider = fernet

3. 初始數(shù)據(jù)庫

su -s /bin/sh -c "keystone-manage db_sync" keystone
驗證數(shù)據(jù)庫
mysql -u keystone -p123456 use keystone show tables;

4. 初始數(shù)據(jù)庫

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
引導身份服務,使得keystone可以在所有網卡的5000端口上運行,這里的 ADMIN_PASS(管理員密碼)改為:123456
keystone-manage bootstrap --bootstrap-password 123456 \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne

5. 配置HTTP服務

配置 ServerName選項為控制器節(jié)點名
vim /etc/httpd/conf/httpd.conf ''' ServerName controller
創(chuàng)建文件鏈接,這個文件是keystone給生成好的,用于訪問keystone的 5000端口
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
設置開機啟動并啟動http服務
systemctl enable httpd.service && systemctl start httpd.service 啟動失敗關閉selinux vi /etc/sysconf/selinux SELINUX=enforcing 改為 selinux=distabled 重啟reboot
http服務正常啟動,keystone的5000端口已經打開
netstat -tunpl | grep httpd
配置admin管理員環(huán)境變量,定義admin管理員的密碼為123456
export OS_USERNAME=admin export OS_PASSWORD=123456 export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL= http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3

6. 創(chuàng)建認證賬號

controller
openstack domain create --description "An Example Domain" example #查看域列表 openstack domain list #查看指定域詳細信息 openstack domain show default #接著創(chuàng)建project項目:項目名稱service,并指定放在default域中 openstack project create --domain default --description "Service Project" service #查看項目列表 openstack project list #查看指定項目詳細信息 openstack project show service #創(chuàng)建一個project項目:項目名稱myproject ,并指定放在default域中 openstack project create --domain default --description "Demo Project" myproject #創(chuàng)建非特權user用戶:用戶名稱myuser ,用戶的密碼:123456 openstack user create --domain default --password-prompt myuser #查看用戶列表 openstack user list #創(chuàng)建role角色:角色名稱為myrole openstack role create myrole #查看指定角兒詳細信息 openstack role show myrole #角色綁定:myrole角色綁定到myuser用戶與myproject項目上 openstack role add --project myproject --user myuser myrole

7. 驗證操作

#取消環(huán)境變量 unset OS_AUTH_URL OS_PASSWORD #向keyston獲取token令牌,如果能成功獲取那么說明keyston服務就是沒有問題的了 #以admin用戶獲取token令牌 openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue +------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | expires | 2023-02-09T09:03:03+0000 | | id | gAAAAABj5Ki3cXW8JWZBKEuARdXMUkiOcH7Qkk4t15W_5B8jcT34T_xJ38ThIYtf1fFL_NrU1oJfq-V8r0j6g1eoQCe53AJA8GhtOzE0yQBzKypz5H_00NkDVMReCYg2yLP1ZmMPZ1eqasxK6Q3aVYUz1c3JywloE6-JgC47dwxqGYLXj6yQGiA | | project_id | 4e7ac5f573e3448e9bee261cd77342e0 | | user_id | 707f1c2474304821a36521d08f699eee | +------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ #以myuser用戶獲取token令牌 openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name myproject --os-username myuser token issue +------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | expires | 2023-02-09T09:04:05+0000 | | id | gAAAAABj5Kj1fSp7MT1irSSjwK8EXk-8CJui7wC7I25FGziM1e3gnyEKS4lsXHb1AgYzJU2XfA3TZyDXudXThD1Q8elx9cO9aWpYwRUz4tc78we146q0FMcELS60A9oDLwsMMK0BkbqYl-BkGvHBhPBScSA8Wm601EG4shOTE5PUMT-1gwsKaQs | | project_id | 43cb5e5d08c04302a74aec23595ea3c4 | | user_id | 994b9e52e67b47f99a9ec4e9467cc306 | +------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

8. 創(chuàng)建環(huán)境變量腳本

#admin用戶腳本(用戶密碼:123456) vim 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=123456 export OS_AUTH_URL= http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 #myuser用戶腳本(用戶密碼:123456) vim demo-openrc export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=myproject export OS_USERNAME=myuser export OS_PASSWORD=123456 export OS_AUTH_URL= http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 #切換用戶身份只需執(zhí)行腳本即可 source admin-openrc #查看自己的token令牌 openstack token issue source demo-openrc #查看自己token令牌 openstack token issue

9. 總結

到現(xiàn)在為止我們keystone服務就部署完成了,kystone服務可以說是 OpenStack環(huán)境最重要的一個服務,他的主要功能就是負責發(fā)布token【令 牌】,給用戶發(fā)布令牌并且提供驗證服務。

三、 glance數(shù)據(jù)庫配置

controller節(jié)點操作

1. mysql創(chuàng)建glance數(shù)據(jù)庫和賬號

mysql -u root -p123456 #創(chuàng)建庫 CREATE DATABASE glance; #授權用戶本地登錄并設置密碼(這里的密碼設置:123456) GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' IDENTIFIED BY '123456'; #授權用戶遠程登錄并設置密碼(這里的密碼設置:123456) GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '123456';

2. 創(chuàng)建認證賬號

切換到admin用戶,創(chuàng)建glance用戶(密碼:123456)
#使用創(chuàng)建的admin-openrc切換Openstack的admin賬號 source admin-openrc #創(chuàng)建用戶glance,密碼設置為123456 openstack user create --domain default --password-prompt glance User Password:[123456] Repeat User Password:[123456] #查看用戶列表 openstack user list #將glance用戶添加到service項目中擁有admin權限 openstack role add --project service --user glance admin #創(chuàng)建一個service服務(供其他服務訪問)名稱為glance,類型為image openstack service create --name glance --description "OpenStack Image" image #通過 openstack service list 查看服務 openstack service list +----------------------------------+----------+----------+ | ID | Name | Type | +----------------------------------+----------+----------+ | 077fc2589677488b9a190a7a351f1be9 | glance | image | | 5e23f560a82c4c87828b9595d5540bb4 | keystone | identity | +----------------------------------+----------+----------+

3. 創(chuàng)建glance服務API端點

API端點是OpenStack中提供給客戶或者與其他核心服務之間的交互的入 口,而glance服務的api端點用于接受請求,響應鏡像查詢,獲取和存儲的 調用,OpenStack使用三種API端點代表三種服務:admin、internal、 public
admin:管理員訪問的API端點
internal:內部服務訪問的API端點
public: 可以被所有項目訪問的API端點
#創(chuàng)建public端點 openstack endpoint create --region RegionOne image public http://controller:9292 #創(chuàng)建internal端點 openstack endpoint create --region RegionOne image internal http://controller:9292 #創(chuàng)建admin端點 openstack endpoint create --region RegionOne image admin http://controller:9292 #通過openstack endpoint list查看端點 openstack endpoint list

4. glance服務安裝和配置

安裝glance軟件包
yum -y install openstack-glance
修改glance文件,對接mysql,對接keystone,配置文件: /etc/glance/glance-api.conf
#查看文件屬性 ll /etc/glance/glance-api.conf -rw-r----- 1 root glance 192260 8月 12 2020 /etc/glance/glance-api.conf #提前備份配置文件 cp /etc/glance/glance-api.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/glance/glance-api.conf.bak > /etc/glance/glance-api.conf #查看文件屬性 ll /etc/glance/glance-api.conf -rw-r----- 1 root glance 476 12月 8 21:45/etc/glance/glance-api.conf #修改文件內容 vim /etc/glance/glance-api.conf [database] connection = mysql+pymysql://glance:123456@controller/glance #接著是glance找keystone需要做驗證,配置keystone認證信息 #訪問glance數(shù)據(jù)庫使用的用戶及密碼:123456 [keystone_authtoken] #指定keystone的api,到此url去認證 www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 #指定memcache的地址 memcached_servers = controller:11211 #指定身份驗證方式為password密碼驗證方式 auth_type = password #指定項目所在的域Default project_domain_name = Default #指定用戶所在的域Default user_domain_name = Default #指定項目名稱service project_name = service #指定認證用戶是glance username = glance #指定用戶密碼 password = 123 #指定提供認證的服務為keystone [paste_deploy] flavor = keystone #指定存儲 [glance_store] #file:文件方式,http:基于api調用的方式,把鏡像放到其他存儲上 stores = file,http #存儲類型默認 default_store = file #指定鏡像存放目錄 filesystem_store_datadir = /var/lib/glance/images/
初始化glance數(shù)據(jù)庫,生成相關表結構(會有很多的輸出)
su -s /bin/sh -c "glance-manage db_sync" glance
查看數(shù)據(jù)庫表結構
mysql -u glance -p123 use glance; show tables;
開啟glance服務(此處開啟之后會生成存放鏡像的目 錄/var/lib/glance/images)
systemctl enable openstack-glance-api.service systemctl start openstack-glance-api.service
查看端口
netstat -natp | grep 9292

5. 服務驗證

使用CirrOS(一個小型Linux鏡像(13M大?。蓭椭鷾y試OpenStack 部署)驗證Image Service的運行
source admin-openrc wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img
創(chuàng)建鏡像到glance服務
glance image-create --name "cirros" \ --file cirros-0.4.0-x86_64-disk.img \ --disk-format qcow2 \ --container-format bare \ --visibility public ### openstack image create "cirros" \ --創(chuàng)建的鏡像名 --file cirros-0.3.5-x86_64-disk.img \ --創(chuàng)建鏡像所需文件,當前目錄,或帶文件位置 --disk-format qcow2 \ --鏡像格式 qcow2 --container-format bare \ --可以接受的鏡像容器格式包含:ami,ari, aki, bare, and ovf --public --共享此鏡像,所有用戶可見
查看鏡像方式
openstack image list

6. 總結

到這里為止OpenStack中glance服務就部署完成了,而且也已經驗證過 了,glance組件的命令是比較少的,工作中常用到的就三類命令:上傳、 查看、刪除。 而且當我們部署好OpenStack環(huán)境之后,我們是需要根據(jù)需求來準備鏡像 上傳到glance,注意ISO鏡像上傳上去是沒法直接使用的,需要將ISO鏡像 轉變成qcow2磁盤文件,然后上傳磁盤文件,就可以創(chuàng)建云主機。

四、部署Placement服務

controller節(jié)點文章來源地址http://www.zghlxwxcb.cn/news/detail-698213.html

Placement服務是從nova服務中拆分出來的組件,Placement組件應該在 Nova之前安裝;
Placement服務用于跟蹤節(jié)點資源(比如計算節(jié)點,存儲資源池,網絡資 源池等)的使用情況,提供自定義資源的能力,為分配資源提供服務。

1. mysql創(chuàng)建placement賬號和數(shù)據(jù)庫

mysql -u root -p123456 #創(chuàng)建庫 CREATE DATABASE placement; #授權用戶本地登錄并設置密碼(這里的密碼設置:123) GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' IDENTIFIED BY '123456'; #授權用戶遠程登錄并設置密碼(這里的密碼設置:123) GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' IDENTIFIED BY '123456';

2. 創(chuàng)建認證賬號

為placement創(chuàng)建用戶、授權、創(chuàng)建placement服務、創(chuàng)建url訪問地址, 其目的是讓keystone可以識別placement身份
source admin-openrc openstack user create --domain default --password-prompt placement User Password:[123] Repeat User Password:[123] #查看用戶列表 openstack user list #將placement用戶添加到service項目中擁有admin權限 openstack role add --project service --user placement admin #創(chuàng)建一個service服務(供其他服務訪問)名稱為placement,類型為placement openstack service create --name placement --description "Placement API" placement

3. 創(chuàng)建placement服務API端點

admin:管理員訪問的API端點
internal:內部服務訪問的API端點
public: 可以被所有項目訪問的API端點
#創(chuàng)建public端點 openstack endpoint create --region RegionOne placement public http://controller:8778 #創(chuàng)建internal端點 openstack endpoint create --region RegionOne placement internal http://controller:8778 #創(chuàng)建admin端點 openstack endpoint create --region RegionOne placement admin http://controller:8778

4. Placement服務安裝和配置

安裝glance軟件包
yum -y install openstack-placement-api
修改placement文件,對接mysql,對接keystone,配置文 件: /etc/placement/placement.conf
#查看文件屬性 ll /etc/placement/placement.conf -rw-r----- 1 root placement 25512 2月 17 2021 /etc/placement/placement.conf #提前備份配置文件 cp /etc/placement/placement.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/placement/placement.conf.bak > /etc/placement/placement.conf #查看文件屬性 ll /etc/placement/placement.conf -rw-r----- 1 root placement 102 12月 8 22:18 /etc/placement/placement.conf #修改文件內容 vim /etc/placement/placement.conf #訪問placement數(shù)據(jù)庫使用的用戶及密碼:123456 [placement_database] connection = mysql+pymysql://placement:123456@controller/placement #認證類型為keyston [api] auth_strategy = keystone #配置keystone認證信息 [keystone_authtoken] #指定keystone的api,到此url去認證 auth_url = http://controller:5000/v3 #指定memcache的地址 memcached_servers = controller:11211 #指定身份驗證方式為password密碼驗證方式 auth_type = password #指定項目所在的域Default project_domain_name = Default #指定用戶所在的域Default user_domain_name = Default #指定項目名稱service project_name = service #指定認證用戶是placement username = placement #指定用戶的密碼123456 password = 123456
初始化placement數(shù)據(jù)庫,生成相關表結構(會有一個Warning警告信 息,可忽略)
su -s /bin/sh -c "placement-manage db sync" placement
查看數(shù)據(jù)庫表結構
mysql -uplacement -p123456 show databases; use placement; show tables;
修改Apache配置文件
允許apache訪問/usr/bin目錄,否則/usr/bin/placement-api不能被訪問
vim /etc/httpd/conf.d/00-placement-api.conf ... #末行添加如下內容 <Directory /usr/bin> <IfVersion >= 2.4> Require all granted </IfVersion> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> </Directory>
重啟httpd服務
systemctl restart httpd
查看端口
netstat -ntlp | grep 8778

5. 服務驗證

切換admin身份進行驗證
source admin-openrc
執(zhí)行狀態(tài)檢查命令
placement-status upgrade check ?``` +----------------------------------+ | Upgrade Check Results | +----------------------------------+ | Check: Missing Root Provider IDs | | Result: Success | | Details: None | +----------------------------------+ | Check: Incomplete Consumers | | Result: Success | | Details: None | +----------------------------------+
public static void main(String agrs[]){
    system.out.println("hello word!");
}

五、 controller部署nova服務

nova服務是OpenStack service計算服務,負責維護和管理云環(huán)境的計算 資源,例如: 接收客戶端請求需要的計算資源、確定實例在哪個物理機上 創(chuàng)建、通過虛機化的方式將實例啟動運行等工作。

1. mysql創(chuàng)建nova賬號和數(shù)據(jù)庫

在安裝和配置nova服務之前,必須創(chuàng)建服務對應的數(shù)據(jù)庫用于存儲相關數(shù)據(jù), 然后授權nova用戶本地訪問和遠程訪問兩種訪問權限
mysql -u root -p123456 #創(chuàng)建庫,需要創(chuàng)建三個數(shù)據(jù)庫 # nova_api數(shù)據(jù)庫中存放全局信息,如:實例模型、實例組、實例配額 CREATE DATABASE nova_api; #存儲nova本身元數(shù)據(jù)信息 CREATE DATABASE nova; #nova_cell0數(shù)據(jù)庫的模式與nova一樣,主要用途就是當實例調度失敗時,實例的信息放到nova_cell0數(shù)據(jù)庫中 CREATE DATABASE nova_cell0; #對以上三個庫授權用戶本地登錄并設置密碼(這里的密碼設置:123456) GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123456'; #對以上三個庫授權用戶遠程登錄并設置密碼(這里的密碼設置:123456) GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123456';

2. 創(chuàng)建認證賬號

#切換到admin用戶,創(chuàng)建nova用戶(密碼:123456) source admin-openrc openstack user create --domain default --password-prompt nova #查看用戶列表 openstack user list #將nova用戶添加到service項目中擁有admin權限 openstack role add --project service --user nova admin #創(chuàng)建一個service服務(供其他服務訪問)名稱為nova,類型為compute openstack service create --name nova --description "OpenStack Compute" compute

3. 創(chuàng)建nova服務API端點

admin:管理員訪問的API端點
internal:內部服務訪問的API端點
public: 可以被所有項目訪問的API端點
#創(chuàng)建public端點 openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1 #創(chuàng)建internal端點 openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1 #創(chuàng)建admin端點 openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1

4. nova服務安裝和配置

安裝nova軟件包:
nova-api:用于響應客戶的調度;
nova-conductor:用于和數(shù)據(jù)庫交互;
nova-novncproxy:用于通過vnc方式連接實例;
nova-scheduler:用于調度虛擬機實例在那臺計算節(jié)點運行;
yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
修改nova配置文件,配置文件:/etc/nova/nova.conf
#查看文件屬性 ll /etc/nova/nova.conf -rw-r----- 1 root nova 220499 3月 16 2021 /etc/nova/nova.conf #提前備份配置文件 cp /etc/nova/nova.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/nova/nova.conf.bak > /etc/nova/nova.conf #查看文件屬性 ll /etc/nova/nova.conf -rw-r----- 1 root nova 736 12月 12 16:51 /etc/nova/nova.conf #修改文件內容 vim /etc/nova/nova.conf ... #指定nova支持的api類型、指定連接的rabbitmq的用戶密碼123456、通過neutron獲取虛擬機實例IP地址、禁用nova服務的防火墻驅動、否則會與網絡服務neutron防火墻驅動沖突 [DEFAULT] enabled_apis = osapi_compute,metadata transport_url = rabbit://openstack:123456@controller:5672/ #定義本機IP,別復制我的IP,切記! my_ip = 192.168.10.10 use_neutron = true firewall_driver = nova.virt.firewall.NoopFirewallDriver #認證服務為keystone [api] auth_strategy = keystone #訪問nova_api數(shù)據(jù)庫使用的用戶及密碼:123456 [api_database] connection = mysql+pymysql://nova:123456@controller/nova_api #訪問nova數(shù)據(jù)庫使用的用戶及密碼:123456 [database] connection = mysql+pymysql://nova:123456@controller/nova #指定glacne的api,nova啟動實例需要找glance要鏡像 [glance] api_servers = http://controller:9292 #配置keystone認證信息,密碼123456 [keystone_authtoken] www_authenticate_uri = http://controller:5000/ auth_url = http://controller:5000/ memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = 123456 #啟動vnc、指定vnc的監(jiān)聽地址為本機IP、server客戶端地址為本機地址,此地址是管理網的地址 [vnc] enabled = true server_listen = $my_ip server_proxyclient_address = $my_ip #配置lock鎖的臨時存放目錄,鎖的作用是創(chuàng)建虛擬機時,在執(zhí)行某個操作的時候,需要等此步驟執(zhí)行完后才能執(zhí)行下一個步驟,不能并行執(zhí)行,保證操作是一步一步的執(zhí)行 [oslo_concurrency] lock_path = /var/lib/nova/tmp #nova需要訪問placement獲取計算節(jié)點的資源使用情況,注意這里的placement密碼是:123456 [placement] region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = 123456
初始化 nova_api 數(shù)據(jù)庫
su -s /bin/sh -c "nova-manage api_db sync" nova
注冊cell0數(shù)據(jù)庫
#一般情況下 nova需要依賴一個邏輯的數(shù)據(jù)庫和消息隊列來進行組件之間的相互交換,這就會給整個系統(tǒng)的擴容和災難遷移帶來困難。而數(shù)據(jù)庫和消息隊列正在成為openstack擴展的瓶頸。尤其是消息隊列,伴隨著集群規(guī)模的擴展,其性能下降尤其明顯。通常當集群規(guī)模擴展到200個節(jié)點,一個消息可能要十幾秒后才會響應,集群的整體性能大大下降。針對nova的這個問題,提出了nova-cell的概念,這個概念的提出主要是把計算節(jié)點分成更多個更小的單元,每一個單元都有自己的數(shù)據(jù)庫和消息隊列 su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova 創(chuàng)建cell1單元格 su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova
初始化nova數(shù)據(jù)庫
su -s /bin/sh -c "nova-manage db sync" nova
驗證cell0和cell1是否注冊成功
su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova
查看下數(shù)據(jù)庫中情況
mysql -u nova -p123456 show databases; ?``` +--------------------+ | Database | +--------------------+ | information_schema | | nova | | nova_api | | nova_cell0 | +--------------------+ ?``` use nova; show tables; use nova_api; show tables; use nova_cell0; show tables;
啟動Nova服務
#設置服務自啟動 systemctl enable \ openstack-nova-api.service \ openstack-nova-scheduler.service \ openstack-nova-conductor.service \ openstack-nova-novncproxy.service #啟動服務 systemctl start \ openstack-nova-api.service \ openstack-nova-scheduler.service \ openstack-nova-conductor.service \ openstack-nova-novncproxy.service #查看服務狀態(tài) systemctl is-active \ openstack-nova-api.service \ openstack-nova-scheduler.service \ openstack-nova-conductor.service \ openstack-nova-novncproxy.service #提示:每次系統(tǒng)關機重啟后,需要再次確認nova服務的狀態(tài),如果有相關服務沒有啟動,則重啟nova服務 systemctl restart \ openstack-nova-api.service \ openstack-nova-scheduler.service \ openstack-nova-conductor.service \ openstack-nova-novncproxy.service
上面已經將controller節(jié)點的nova安裝好了,接著安裝compute節(jié)點 的nova服務;

六、compute部署nova服務

Nova-compute在計算節(jié)點上運行,負責管理節(jié)點上的實例,例如:創(chuàng) 建、關閉、重啟、掛起、恢復、中止、調整大小、遷移、快照等操作都是 通過nova-compute實現(xiàn)的。 通常一個主機運行一個Nova-compute服務,一個實例部署在哪個可用的 主機上取決于調度算法,OpenStack對實例的操作,最后都是提交給 Nova-compute來完成 。

1. 安裝nova-compute組件

compute節(jié)點
yum -y install openstack-nova-compute
修改配置文件:
vim /etc/nova/nova.conf #查看文件屬性 ll /etc/nova/nova.conf -rw-r----- 1 root nova 220499 3月 16 2021 /etc/nova/nova.conf #備份配置文件 cp /etc/nova/nova.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/nova/nova.conf.bak > /etc/nova/nova.conf #查看文件屬性 ll /etc/nova/nova.conf -rw-r----- 1 root nova 220499 3月 16 2021 /etc/nova/nova.conf #修改文件內容 vi /etc/nova/nova.conf [DEFAULT] #指定nova支持的api類型 enabled_apis = osapi_compute,metadata #指定連接的rabbitmq的用戶密碼:123456 transport_url = rabbit://openstack:123456@controller my_ip = 192.168.10.20 #通過neutron獲取虛擬機實例IP地址 use_neutron = true #禁用nova服務的防火墻驅動,否則會與網絡服務neutron防火墻驅動沖突 firewall_driver = nova.virt.firewall.NoopFirewallDriver [api] #指定使用keystone認證 auth_strategy = keystone #配置keystone認證信息,密碼:123456 [keystone_authtoken] www_authenticate_uri = http://controller:5000/ auth_url = http://controller:5000/ memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = 123456 [vnc] #啟動vnc enabled = true #指定vnc的監(jiān)聽地址 server_listen = 0.0.0.0 #server客戶端地址為本機IP server_proxyclient_address = $my_ip #通過內網IP來訪問vnc server時的地址 novncproxy_base_url = http://controller:6080/vnc_auto.html [glance] #指定glacne的api,nova啟動實例需要找glance要鏡像 api_servers = http://controller:9292 [oslo_concurrency] #配置lock鎖的臨時存放目錄,鎖的作用是創(chuàng)建虛擬機時,在執(zhí)行某個操作的時候,需要等此步驟執(zhí)行完后才能執(zhí)行下一個步驟,不能并行執(zhí)行,保證操作是一步一步的執(zhí)行 lock_path = /var/lib/nova/tmp #nova需要訪問placement獲取計算節(jié)點的資源使用情況,注意這里的placement密碼是:123456 [placement] region_name = RegionOne project_domain_name = Default project_name = service auth_type = password user_domain_name = Default auth_url = http://controller:5000/v3 username = placement password = 123456
檢查CPU虛擬化功能是否開啟,compute節(jié)點負責啟動虛機,所以需要開 啟cpu虛擬化
egrep -c '(vmx|svm)' /proc/cpuinfo 2 #返回值2為開啟,0未開啟
設置開機自啟并啟動服務
systemctl enable libvirtd.service openstack-nova-compute.service systemctl start libvirtd.service openstack-nova-compute.service systemctl is-active libvirtd.service openstack-nova-compute.service

2. 注冊compute節(jié)點

接下來在controller節(jié)點查看compute節(jié)點是否注冊到controller上
掃描當前openstack中有哪些計算節(jié)點可用
source admin-openrc openstack compute service list --service nova-compute
將新的計算節(jié)點添加到openstack集群
su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova ?``` #會有如下輸出: Found 2 cell mappings. Skipping cell0 since it does not contain hosts. Getting computes from cell 'cell1': 24509e4d-be39-48b6-a740-bb4b82bfa273 Checking host mapping for compute host 'compute01':c65aa14f-1cac-4504-9060-8397bd2fa18e Creating host mapping for compute host 'compute01':c65aa14f-1cac-4504-9060-8397bd2fa18e Found 1 unmapped computes in cell: 24509e4d-be39-48b6-a740-bb4b82bfa273
定義Nova自動發(fā)現(xiàn)新主機的時間間隔
vim /etc/nova/nova.conf ?``` [scheduler] discover_hosts_in_cells_interval = 300
檢查 nova 的各個服務是否都是正常,以及 compute 服務是否注冊成功
source admin-openrc openstack compute service list
查看各個組件的 api 是否正常
openstack catalog list
查看是否能夠獲取鏡像
openstack image list
查看cell的api和placement的api是否正常,只要其中一個有誤,后期無法 創(chuàng)建虛擬機
nova-status upgrade check

七、 controller部署 neutron服務

Neutron為整個openstack提供虛擬化的網絡支持,主要功能包括二層交 換、三層路由、防火墻、VPN,以及負載均衡等。

1. mysql配置 neutron賬號和數(shù)據(jù)庫

mysql -u root -p123456 #創(chuàng)建庫 CREATE DATABASE neutron; #授權用戶本地登錄并設置密碼(這里的密碼設置:123456) GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '123456'; #授權用戶遠程登錄并設置密碼(這里的密碼設置:123456) GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY '123456';
創(chuàng)建認賬賬號
source admin-openrc openstack user create --domain default --password-prompt neutron
將neutron用戶添加到service項目中擁有管理員權限
openstack role add --project service --user neutron admin
創(chuàng)建一個service服務(供其他服務訪問)名稱為neutron,類型為 network
openstack service create --name neutron --description "OpenStack Networking" network
創(chuàng)建neutron服務API端點
#admin:管理員訪問的API端點 #internal:內部服務訪問的API端點 #public: 可以被所有項目訪問的API端點 #創(chuàng)建public端點 openstack endpoint create --region RegionOne network public http://controller:9696 #創(chuàng)建internal端點 openstack endpoint create --region RegionOne network internal http://controller:9696 #創(chuàng)建admin端點 openstack endpoint create --region RegionOne network admin http://controller:9696

2. 創(chuàng)建提供商網絡(橋接)

provider提供商網絡 :他是通過我們最初在本機添的那塊物理網卡來與虛 擬機實例進行通訊,如果那塊網卡的網絡模式是NAT模式了,那么我們使 用provider網絡創(chuàng)建出來的虛擬機實例會與該網卡進行橋接,那虛擬機實 例就可以連通的外網了;

self-service自服務網絡:他說白了就是內部網絡,就像ipv4地址中的私有 網段一樣,他可以創(chuàng)建網絡但是僅限于內部的實例來進行通信是沒法連接 外網的; 如果你想要通過self-service網絡來連接外網的話,那么你是需要將 provider網絡配置好,并且創(chuàng)建出一個provider類型的網絡,然后設置為 路由綁定到你創(chuàng)建的self-service網絡上面,這樣self-service網絡才可以訪 問外網。

安裝相關的軟件包
yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
修改neutron配置文件:/etc/neutron/neutron.conf
#查看文件屬性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron 39708 5月 11 2021 /etc/neutron/neutron.conf #備份配置文件 cp /etc/neutron/neutron.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf #查看文件屬性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron 216 12月 12 17:13 /etc/neutron/neutron.conf #修改文件內容 vi /etc/neutron/neutron.conf [DEFAULT] #啟用二層網絡插件 core_plugin = ml2 #service_plugins 默認為空,如果值是 router 表示支持路由模式(三層網絡)即 vxlan service_plugins = #指定連接的rabbitmq的用戶密碼:123456 transport_url = rabbit://openstack:123456@controller #指定使用keystone認證 auth_strategy = keystone #當網絡接口發(fā)生變化時,通知給nova notify_nova_on_port_status_changes = true #當端口數(shù)據(jù)發(fā)生變化,通知給nova notify_nova_on_port_data_changes = true [database] #訪問neutron數(shù)據(jù)庫使用的用戶及密碼:123456 connection = mysql+pymysql://neutron:123456@controller/neutron #配置keystone認證信息,注意將用戶neutron密碼改為:123456 [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = 123456 #neutron需要給nova通知計算節(jié)點網絡拓撲變化,指定nova的用戶信息,注意將nova用戶密碼改為:123456 #默認配置文件沒有提供該模塊,在文件最后添加即可 [nova] auth_url = http://controller:5000#查看文件屬性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron 39708 5月 11 2021 /etc/neutron/neutron.conf #備份配置文件 cp /etc/neutron/neutron.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf #查看文件屬性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron 216 12月 12 17:13 /etc/neutron/neutron.conf #修改文件內容 vi /etc/neutron/neutron.conf [DEFAULT] #啟用二層網絡插件 core_plugin = ml2 #service_plugins 默認為空,如果值是 router 表示支持路由模式(三層網絡)即 vxlan service_plugins = #指定連接的rabbitmq的用戶密碼:123456 transport_url = rabbit://openstack:123456@controller #指定使用keystone認證 auth_strategy = keystone #當網絡接口發(fā)生變化時,通知給nova notify_nova_on_port_status_changes = true #當端口數(shù)據(jù)發(fā)生變化,通知給nova notify_nova_on_port_data_changes = true [database] #訪問neutron數(shù)據(jù)庫使用的用戶及密碼:123456 connection = mysql+pymysql://neutron:123456@controller/neutron #配置keystone認證信息,注意將用戶neutron密碼改為:123456 [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = 123456 #neutron需要給nova通知計算節(jié)點網絡拓撲變化,指定nova的用戶信息,注意將nova用戶密碼改為:123456 #默認配置文件沒有提供該模塊,在文件最后添加即可 [nova] auth_url = http://controller:5000 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = nova password = 123456 [oslo_concurrency] #配置鎖路徑 lock_path = /var/lib/neutron/tmp
修改ML2(二層網絡)插件配置文 件: /etc/neutron/plugins/ml2/ml2_conf.ini
#查看文件屬性 ll /etc/neutron/plugins/ml2/ml2_conf.ini -rw-r----- 1 root neutron 6524 5月 11 2021 /etc/neutron/plugins/ml2/ml2_conf.ini #備份配置文件 cp /etc/neutron/plugins/ml2/ml2_conf.ini{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/plugins/ml2/ml2_conf.ini.bak > /etc/neutron/plugins/ml2/ml2_conf.ini #查看文件屬性 ll /etc/neutron/plugins/ml2/ml2_conf.ini -rw-r----- 1 root neutron 10 12月 12 17:18 /etc/neutron/plugins/ml2/ml2_conf.ini #修改文件內容 vim /etc/neutron/plugins/ml2/ml2_conf.ini [ml2] #配置類型驅動:讓二層網絡支持橋接,支持基于vlan做子網劃分 type_drivers = flat,vlan #租戶網絡類型(vxlan),默認官方文檔沒有定義vxlan網絡類型 tenant_network_types = #啟用Linuxbridge網橋過濾 mechanism_drivers = linuxbridge #啟用端口安全擴展驅動程序,基于iptables實現(xiàn)訪問控制;但配置了擴展安全組會導致一些端口限制,造成一些服務無法啟動 extension_drivers = port_security [ml2_type_flat] #將provider(提供商網絡)設置為flat(橋接)類型 flat_networks = provider [securitygroup] #啟用 ipset 增加安全組的安全性 enable_ipset = true
修改linuxbridge(網橋)插件配置文 件: /etc/neutron/plugins/ml2/linuxbridge_agent.ini
#查看文件屬性 ll /etc/neutron/plugins/ml2/linuxbridge_agent.ini -rw-r----- 1 root neutron 6524 5月 11 2021 /etc/neutron/plugins/ml2/linuxbridge_agent.ini #備份配置文件 cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak > /etc/neutron/plugins/ml2/linuxbridge_agent.ini #查看文件屬性 ll /etc/neutron/plugins/ml2/linuxbridge_agent.ini -rw-r----- 1 root neutron 10 12月 12 17:19 /etc/neutron/plugins/ml2/linuxbridge_agent.ini #修改文件內容 vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini [linux_bridge] #指定上個文件中的橋接網絡provider與本機ens34物理網卡做關聯(lián),后期給虛擬機分配external(外部)網絡地址,然后虛擬機就可以通過ens34上外網;橋接的物理網卡名有可能是bind0、br0等 physical_interface_mappings = provider:ens34 [vxlan] #不啟用vxlan enable_vxlan = false [securitygroup] #啟用安全組并配置 Linux 橋接 iptables 防火墻驅動 enable_security_group = true firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
確保系統(tǒng)內核支持網橋過濾器
#加載modprobe br_netfilter網橋過濾器模塊 modprobe br_netfilter && lsmod | grep br_netfilter br_netfilter 22256 0 bridge 151336 1 br_netfilter #修改內核配置文件/etc/sysctl.conf,開啟ipv4與ipv6的網絡過濾功能 vim /etc/sysctl.conf ... net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 #重新加載配置文件 sysctl -p
修改dhcp_agent( 為虛擬網絡提供 DHCP 服務)插件配置文件: /etc/neutron/dhcp_agent.ini
#查看文件屬性 ll /etc/neutron/dhcp_agent.ini -rw-r----- 1 root neutron 6524 5月 11 2021 /etc/neutron/dhcp_agent.ini #備份配置文件 cp /etc/neutron/dhcp_agent.ini{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/dhcp_agent.ini.bak > /etc/neutron/dhcp_agent.ini #查看文件屬性 ll /etc/neutron/dhcp_agent.ini -rw-r----- 1 root neutron 10 12月 12 17:21 /etc/neutron/dhcp_agent.ini #修改文件內容 vi /etc/neutron/dhcp_agent.ini [DEFAULT] #指定默認接口驅動為linux網橋 interface_driver = linuxbridge #指定DHCP驅動 dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq #開啟iso元數(shù)據(jù) enable_isolated_metadata = true
配置元數(shù)據(jù)代理:用于配置橋接與自服務網絡的通用配置 ,修改配置文件:/etc/neutron/metadata_agent.ini
#查看文件屬性 ll /etc/neutron/metadata_agent.ini -rw-r----- 1 root neutron 11011 5月 11 2021 /etc/neutron/metadata_agent.ini #備份配置文件 cp /etc/neutron/metadata_agent.ini{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/metadata_agent.ini.bak > /etc/neutron/metadata_agent.ini #查看文件屬性 ll /etc/neutron/metadata_agent.ini -rw-r----- 1 root neutron 18 12月 12 17:22 /etc/neutron/metadata_agent.ini #修改文件內容 vi /etc/neutron/metadata_agent.ini [DEFAULT] #元數(shù)據(jù)代理主機 nova_metadata_host = controller #元數(shù)據(jù)代理的共享密鑰 metadata_proxy_shared_secret = METADATA_SECRET
修改nova配置文件,用于neutron交互,配置文件: /etc/nova/nova.conf
vi /etc/nova/nova.conf [neutron] auth_url = http://controller:5000 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron #指定neutron用戶密碼:123456 password = 123456 service_metadata_proxy = true metadata_proxy_shared_secret = METADATA_SECRET
創(chuàng)建ML2插件文件鏈接
ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
上述配置同步到數(shù)據(jù)庫
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
重啟nova-api服務
systemctl restart openstack-nova-api.service
開啟neutron服務、設置開機自啟動
systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service systemctl start neutron-server.service \ neutron-linuxbridge-agent.service neutron-dhcp-agent.service \ neutron-metadata-agent.service systemctl is-active neutron-server.service \ neutron-linuxbridge-agent.service neutron-dhcp-agent.service \ neutron-metadata-agent.service openstack-nova-api.service

八、compute部署neutron服務

1. neutron服務安裝和配置

yum -y install openstack-neutron-linuxbridge ebtablesipset
修改配置文件:/etc/neutron/neutron.conf
#查看文件屬性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron 39708 5月 11 2021 /etc/neutron/neutron.conf #備份配置文件 cp /etc/neutron/neutron.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf #查看文件屬性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron 216 12月 7 17:25 /etc/neutron/neutron.conf #修改文件內容 vi /etc/neutron/neutron.conf #指定連接的rabbitmq的用戶密碼123456,指定使用keystone認證 [DEFAULT] transport_url = rabbit://openstack:123456@controller auth_strategy = keystone #配置keystone認證信息,注意將用戶neutron密碼改為:123456 [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000#查看文件屬性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron 39708 5月 11 2021 /etc/neutron/neutron.conf #備份配置文件 cp /etc/neutron/neutron.conf{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/neutron.conf.bak > /etc/neutron/neutron.conf #查看文件屬性 ll /etc/neutron/neutron.conf -rw-r----- 1 root neutron 216 12月 7 17:25 /etc/neutron/neutron.conf #修改文件內容 vi /etc/neutron/neutron.conf #指定連接的rabbitmq的用戶密碼123456,指定使用keystone認證 [DEFAULT] transport_url = rabbit://openstack:123456@controller auth_strategy = keystone #配置keystone認證信息,注意將用戶neutron密碼改為:123456 [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = 123456 #配置鎖路徑 [oslo_concurrency] lock_path = /var/lib/neutron/tmp
修改linuxbridge(網橋)插件配置文件: /etc/neutron/plugins/ml2/linuxbridge_agent.ini
#查看文件屬性 ll /etc/neutron/plugins/ml2/linuxbridge_agent.ini -rw-r----- 1 root neutron 6524 5月 11 2021 /etc/neutron/plugins/ml2/linuxbridge_agent.ini #備份配置文件 cp /etc/neutron/plugins/ml2/linuxbridge_agent.ini{,.bak} #重新生成配置文件 egrep -v '^#|^$' /etc/neutron/plugins/ml2/linuxbridge_agent.ini.bak > /etc/neutron/plugins/ml2/linuxbridge_agent.ini #查看文件屬性 ll /etc/neutron/plugins/ml2/linuxbridge_agent.ini -rw-r----- 1 root neutron 10 12月 12 17:26 /etc/neutron/plugins/ml2/linuxbridge_agent.ini #修改文件內容 vi /etc/neutron/plugins/ml2/linuxbridge_agent.ini [linux_bridge] #指定橋接網絡provider與本機ens34物理網卡做關聯(lián),后期給虛擬機分配external(外部)網絡地址,然后虛擬機就可以通過ens34上外網;橋接的物理網卡名有可能是bind0、br0等 physical_interface_mappings = provider:ens36 [vxlan] #不啟用vxlan enable_vxlan = false [securitygroup] #啟用安全組并配置 Linux 橋接 iptables 防火墻驅動 enable_security_group = true firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
確保系統(tǒng)內核支持網橋過濾器
#加載modprobe br_netfilter網橋過濾器模塊 modprobe br_netfilter && lsmod | grep br_netfilter br_netfilter 22256 0 bridge 151336 1 br_netfilter #修改內核配置文件/etc/sysctl.conf,開啟ipv4與ipv6的網絡過濾功能 vim /etc/sysctl.conf ... net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 #重新加載配置文件 sysctl -p
修改nova配置文件,用于neutron交互,配置文件: /etc/nova/nova.conf
vim /etc/nova/nova.conf #指定neutron用戶密碼:123456 [neutron] auth_url = http://controller:5000 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = 123456
重啟nova-api服務
systemctl restart openstack-nova-compute.service
開啟neutron服務、設置開機自啟動
systemctl enable neutron-linuxbridge-agent.service systemctl restart neutron-linuxbridge-agent.service systemctl is-active neutron-linuxbridge-agent.service openstack-nova-compute.service

2. 服務驗證

controller節(jié)點

切換admin身份查看下網絡服務
source admin-openrc openstack network agent list

總結:到這里為止我們的網絡服務neutron就搭建完畢了,現(xiàn)在我們的 OpenStack環(huán)境就已經達到了啟動實例的條件了。

九、創(chuàng)建provider實例

controller節(jié)點

1. 創(chuàng)建一個provider網絡,網絡類型為external

source admin-openrc openstack network create --share --external \ --provider-physical-network provider \ --provider-network-type flat provider ### --share: 允許所有項目都可以使用該網絡; --external: 類型為連通外部的虛擬網絡; --provider-physical-network:指定網絡的提供者為provider,由 ml2_conf.ini文件的flat_networks定義; --provider-network-type flat:映射到主機的網卡ens34,由linuxbridge_agent.ini文件的physical_interface_mappings定義; openstack subnet create --network provider \ --allocation-pool start=192.168.10.50,end=192.168.10.250 \ --dns-nameserver 223.5.5.5 --gateway 192.168.10.254 \ --subnet-range 192.168.10.0/24 provider
查看網絡
openstack network list +--------------------------------------+----------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+----------+--------------------------------------+ | ae2b47b8-3eb2-4d14-911d-b86212c8ccdb | provider | 417a2deb-572d-4dc1-9d38-245b2a68e80a | +--------------------------------------+----------+--------------------------------------+
創(chuàng)建VM實例規(guī)格flavor
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano #參數(shù)說明: --id: 規(guī)格ID; --vcpus: cpu數(shù)量; --ram: 內存大小,單位Mb; --disk: 磁盤空間大小,單位Gb;

2. 配置密鑰

openstack支持用戶使用公鑰認證的方式創(chuàng)建實例,而不是傳統(tǒng)的密碼認 證。 在啟動實例之前,必須向計算服務添加公鑰。
#切換到普通用戶(以普通租戶身份創(chuàng)建實例) source demo-openrc #生成密鑰 ssh-keygen -q -N "" Enter file in which to save the key (/root/.ssh/id_rsa): [回車] #創(chuàng)建密鑰到openstack中,并指定密鑰名稱mykey openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey +-------------+-------------------------------------------------+ | Field | Value | +-------------+-------------------------------------------------+ | fingerprint | 40:e2:bd:bd:c7:ac:cd:c0:48:38:f0:07:20:94:ab:58 | | name | mykey | | user_id | 994b9e52e67b47f99a9ec4e9467cc306 | +-------------+-------------------------------------------------+ #檢查密鑰 openstack keypair list +-------+-------------------------------------------------+ | Name | Fingerprint | +-------+-------------------------------------------------+ | mykey | 40:e2:bd:bd:c7:ac:cd:c0:48:38:f0:07:20:94:ab:58 | +-------+-------------------------------------------------+

3. 添加安全組

在安全組規(guī)則中默認拒絕遠程訪問實例,所以需要放行安全組規(guī)則,允許 ICMP(ping)和SSH訪問
查看安全組
source demo-openrc openstack security group list
添加ssh規(guī)則
openstack security group rule create --proto tcp --dst-port 22 default
查看安全組規(guī)則
openstack security group rule list

4. provider網絡啟動實例

要啟動實例,至少必須指定flavor、glance名稱、網絡、安全組(ID)、密鑰 和實例名稱。
#切換到普通用戶 source demo-openrc #查看實例可用的規(guī)則 openstack flavor list #查看實例可用的安全組 openstack security group list #查看實例可用的鏡像 openstack image list #查看實例可用的網絡 openstack network list
創(chuàng)建實例
source demo-openrc openstack server create --flavor m1.nano --image cirros \ --nic net-id=319a4f5b-fa5c-4e93-859c-810bcd5ec54d --security-group default \ --key-name mykey provider-instance 參數(shù)說明: --flavor: 指定實例使用的規(guī)則; --image: 指定虛擬機使用的鏡像文件; --nic: 指定虛擬網卡使用的網絡,net-id=網絡ID; --security-group: 指定虛擬機使用的安全組; --key-name: 指定虛擬機使用的秘鑰對名稱;
查看實例
openstack server list
在計算節(jié)點查看實例
virsh list

5. 訪問實例

此時的實例默認無法訪問,應為該實例的網段地址我們并沒有在物理節(jié)點 配置過對應的網關,所以先按照官方提供的方案,先獲取虛擬機的VNC地址
查看實例VNC地址
openstack console url show provider-instance
通過瀏覽器訪問
提示:如果在windows沒有配置controller的域名解析,可以把地址欄中的controller換成IP地址
查看是實例沒有正常創(chuàng)建,卡在grub系統(tǒng)引導這里了, 這種情況是因為我 使用的vmware虛機虛擬磁盤格式和驅動程序的問題,導致創(chuàng)建的實例無法 正常的啟動,我們需要做如下操作
#查看鏡像 source admin-openrc openstack image list #提示:VMware環(huán)境需通過下邊命令修改磁盤的類型為IDE(物理機不需要) openstack image set \ --property hw_disk_bus=ide \ --property hw_vif_model=e1000 \ aa292008-25be-42b6-89b1-2f07407eb042 #將鏡像ID替換為查詢出來的ID #刪除當前實例 source demo-openrc openstack server delete provider-instance #重新創(chuàng)建實例 .#查看網絡ID openstack network list #創(chuàng)建實例(提示:net-id=網絡ID) source demo-openrc openstack server create --flavor m1.nano --image cirros \ --nic net-id=319a4f5b-fa5c-4e93-859c-810bcd5ec54d --security-group default \ --key-name mykey demo #查看實例 openstack server list #查看實例VNC地址 openstack console url show provider-instance #根據(jù)提示輸入用戶名和密碼就可以進入系統(tǒng)了
總結:到現(xiàn)在為止,OpenStack環(huán)境搭建完成了,網絡可以正常創(chuàng)建,實例也能 夠正常的創(chuàng)建,這就證明這套私有云平臺搭建完成了

十、 安裝dashboard

controller節(jié)點

安裝軟件包
yum -y install openstack-dashboard
配置dashboard
#查看文件屬性 ll /etc/openstack-dashboard/local_settings -rw-r----- 1 root apache 12972 12月 10 12:53 /etc/openstack-dashboard/local_settings #備份配置文件(無需重新生成) cp /etc/openstack-dashboard/local_settings{,.bak} #修改文件內容 vim /etc/openstack-dashboard/local_settings #在本機上配置儀表盤以使用OpenStack服務 OPENSTACK_HOST = "controller" # *允許所有主機訪問儀表盤 ALLOWED_HOSTS = [' horizon.example.com', '*'] #配置緩存會話存儲服務 SESSION_ENGINE = 'django.contrib.sessions.backends.cache' #指定memcached服務地址及端口 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'controller:11211', } } #啟用第3版認證API(如果是v3版本則不需要修改) OPENSTACK_KEYSTONE_URL = " http://%s:5000/v3"#查看文件屬性 ll /etc/openstack-dashboard/local_settings -rw-r----- 1 root apache 12972 12月 10 12:53 /etc/openstack-dashboard/local_settings #備份配置文件(無需重新生成) cp /etc/openstack-dashboard/local_settings{,.bak} #修改文件內容 vim /etc/openstack-dashboard/local_settings #在本機上配置儀表盤以使用OpenStack服務 OPENSTACK_HOST = "controller" # *允許所有主機訪問儀表盤 ALLOWED_HOSTS = ['horizon.example.com', '*'] #配置緩存會話存儲服務 SESSION_ENGINE = 'django.contrib.sessions.backends.cache' #指定memcached服務地址及端口 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'controller:11211', } } #啟用第3版認證API(如果是v3版本則不需要修改) OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % #啟用對域的支持(默認不存在,添加到文件最后) OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True #配置API版本(默認不存在,手動添加) OPENSTACK_API_VERSIONS = { "identity": 3, "image": 2, "volume": 3, } #通過儀表盤創(chuàng)建用戶時的默認域配置為 default(默認不存在,添加到文件最后即可) OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default" #通過儀表盤創(chuàng)建的用戶默認角色配置為 user(默認不存在,添加到文件最后即可) OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" #如果選擇網絡選項1,也就是公共網絡,則需要禁用對第3層網絡服務的支持 OPENSTACK_NEUTRON_NETWORK = { 'enable_lb': False, #默認不存在,手動添加 'enable_firewall': False, #默認不存在,手動添加 'enable_vpn': False, #默認不存在,手動添加 'enable_auto_allocated_network': False, 'enable_distributed_router': False, 'enable_fip_topology_check': False, #改為False 'enable_ha_router': False, 'enable_ipv6': False, #改為False 'enable_quotas': False, #改為False 'enable_rbac_policy': False, #改為False 'enable_router': False, #改為False } #配置時區(qū) TIME_ZONE = "Asia/Shanghai" #文件最后增加頁面的訪問路徑 WEBROOT="/dashboard"
修改配置文件: /etc/httpd/conf.d/openstack-dashboard.conf
vim /etc/httpd/conf.d/openstack-dashboard.conf #...在前三行下增加,使Apache支持WSGI協(xié)議(用來支持Web服務器和Web應用程序交互) WSGIApplicationGroup %{GLOBAL}
重啟httpd、memcached
systemctl restart httpd.service memcached.service
訪問dashboard
訪問頁面登錄: http://controller/dashboard

到了這里,關于openstack單機部署的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • openstack單機部署

    1. 虛擬機配置 controller 192.168.34.10 2c6g50g compute01 192.168.34.20 2c4g50g 2. 設置主機名 hostnamectl set-hostname controller hostnamectl set-hostname compute01 修改host文件 vim /etc/hosts 192.168.34.10 controller 192.168.34.20 compute01 3. 時間同步 controller時間同步 vim /etc/chrony.conf #server 0.centos.pool.ntp.org#server 0.centos

    2024年02月09日
    瀏覽(15)
  • 手動部署OpenStack社區(qū)Train版本非容器化單機環(huán)境操作步驟

    對于OpenStack初學者來說,由于OpenStack涉及的組件眾多,直接閱讀OpenStack代碼較為困難,并且亟需一套OpenStack環(huán)境進行實際操作,在實踐中學習OpenStack架構及原理。下面將介紹基于CentOS7.6 mini操作系統(tǒng)手動部署OpenStack Train版本環(huán)境步驟。 執(zhí)行yum upgrade命令更新每個節(jié)點上的pack

    2023年04月13日
    瀏覽(23)
  • Discuz論壇網站標題欄Powered by Discuz!版權信息如何去除或是修改?

    Discuz論壇網站標題欄Powered by Discuz!版權信息如何去除或是修改?

    當我們搭建好DZ論壇網站后,為了美化網站,想把標題欄的Powered?by?Discuz!去除或是修改,應該如何操作呢?今天飛飛和你分享,在操作前務必把網站源碼和數(shù)據(jù)庫都備份到本地或是網盤。 ? Discuz的版權信息存在兩處地方,一個是標題欄,一個是底部。一般為了美化修改個標

    2024年02月08日
    瀏覽(96)
  • (C#) IIS 響應標頭過濾敏感信息(如:Server/X-Powered-By等) 運維知識

    (C#) IIS 響應標頭過濾敏感信息(如:Server/X-Powered-By等) 運維知識

    再一次凈網行動中,客戶要求安全改造發(fā)現(xiàn)了接口請求的header標頭中出現(xiàn)如圖中的敏感信息。 ? 其意義在于告知瀏網站是用什么語言或者框架編寫的。解決辦法就是修改該響應頭為一個錯誤的值,將攻擊者導向一個錯誤的方向。 這里只說windows 的iis環(huán)境,不考慮其他服務器的

    2024年02月11日
    瀏覽(115)
  • OpenStack云計算平臺部署 單節(jié)點

    OpenStack云計算平臺部署 單節(jié)點

    虛擬機(centos7 、內存8G、硬盤300G、處理器4核并開啟intel vt-x,網絡模式設置為NAT,虛擬機網絡一定要設置好,并可以ping通baidu,不然有中途掉IP的情況發(fā)生) 點擊查看執(zhí)行結果 博客園地址點擊此處!

    2024年02月17日
    瀏覽(56)
  • OpenStack云計算(-) 簡介與部署Keystone

    OpenStack云計算(-) 簡介與部署Keystone

    什么是云計算:云計算是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網絡訪問,進入可配置的計算資源共享池(資源包括網絡,服務器,存儲,應用軟件,服務) 云計算所包含的幾個層次服務: SaaS ( Software as a Service ) :把在線軟件作為一種服務。 Paas ( Platform as a S

    2024年02月03日
    瀏覽(28)
  • 云計算學習1——OpenStack云計算安裝部署步驟圖文并茂(先電2.2)

    云計算學習1——OpenStack云計算安裝部署步驟圖文并茂(先電2.2)

    聲明:原創(chuàng)作品,嚴禁用于商業(yè)目的。 如有任何技術問題,歡迎和我交流:408797506(微信同號)。 騰訊課堂鏈接 B站試看視頻鏈接 創(chuàng)建兩個虛擬機(控制結點和計算結點) 2.1 創(chuàng)建結點虛擬機 (1) 虛擬機新建系統(tǒng),設置參數(shù) (2)結點系統(tǒng)安裝完成后,使用root賬號登陸系統(tǒng),配置靜

    2023年04月08日
    瀏覽(16)
  • 云計算:OpenStack 分布式架構部署(單控制節(jié)點與單計算節(jié)點)

    云計算:OpenStack 分布式架構部署(單控制節(jié)點與單計算節(jié)點)

    目錄 一、實驗 1.環(huán)境 2.OpenStack包安裝 3.數(shù)據(jù)庫安裝 4.消息隊列安裝 5.令牌緩存安裝 6.認證服務安裝 7.鏡像服務安裝 8. 計算服務安裝(控制節(jié)點) 9. 計算服務安裝(計算節(jié)點) 10. 網絡服務安裝(控制節(jié)點) 11. 網絡服務安裝(計算節(jié)點) 12. Dashboard圖形化界面安裝(控制節(jié)點) (1) 主機 表

    2024年02月03日
    瀏覽(14)
  • 金山辦公推出WPS AI,開放應用于智能文檔

    金山辦公推出WPS AI,開放應用于智能文檔

    ?? AI新聞 ?? 金山辦公推出WPS AI,開放應用于智能文檔 摘要:金山辦公宣布WPS AI正式面向社會開放,首先用于WPS智能文檔,該產品支持內容生成、表達優(yōu)化、文檔理解及處理等功能。用戶可通過WPS客戶端、App、金山文檔小程序以及官網進行體驗。WPS智能文檔具備內容生成、

    2024年02月09日
    瀏覽(28)
  • AIGC席卷智慧辦公,金山辦公如何架構文檔智能識別與理解的通用引擎?

    AIGC席卷智慧辦公,金山辦公如何架構文檔智能識別與理解的通用引擎?

    如今,智慧辦公是企業(yè)辦公領域數(shù)字化轉型的題中之義。作為國內最早開發(fā)的軟件辦公系統(tǒng)之一,金山辦公如何應用深度學習實現(xiàn)復雜場景文檔圖像識別和技術理解?本文將從復雜場景文檔的識別與轉化、非文本元素檢測與文字識別、文本識別中的技術難點等多個方面進行深

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包