OpenStack平臺的使用

王智剛發表於2021-11-19

一、如何建立雲主機

使用雙節點部署,控制節點(controller):192.168.16.10,計算節點(compute):192.168.16.20

(一)、建立映象

1、在控制節點中找到qcow2映象

[root@controller ~]# cd /opt/iaas/images/
[root@controller images]# ls
CentOS_6.5_x86_64_XD.qcow2 CentOS_7.2_x86_64_XD.qcow2 MySQL_5.6_XD.qcow2

2、通過glance命令,將qcow2映象上傳到平臺

[root@controller images]# source /etc/keystone/admin-openrc.sh
[root@controller images]# glance image-create --name "centos7.2" --disk-format qcow2 --container-format bare --progress < CentOS_7.2_x86_64_XD.qcow2

(二)、建立網路

開啟瀏覽器,訪問http://192.168.16.10/dashboard地址,域:demo,使用者名稱:admin,密碼:000000。

1、建立外部網路
選擇選單欄:專案 -> 網路 -> 網路。單擊“建立網路”,來建立虛擬機器網路。

建立網路名稱為net-gre,配置子網名稱為net-subnet,網路地址為192.168.20.0/24,閘道器為192.168.20.2。

再配置DHCP地址池,啟用DHCP,配置DNS為114.114.114.114。點選“已建立”建立網路。

選擇選單欄:管理員 -> 系統 -> 網路。對已建立的net-gre網路,點選 “編輯網路”,在彈框中勾選“外部網路”。

2、建立內部網路
選擇選單欄:專案 -> 網路 -> 網路。單擊“建立網路”,來建立虛擬機器網路。

建立網路名稱為int-gre,配置子網名稱為int-subnet,網路地址為10.10.0.0/24,閘道器為10.10.0.1。

配置DHCP地址池,啟用DHCP。點選“已建立”建立網路。

(三)、建立路由

1、建立路由
選擇選單欄:專案 -> 網路 -> 路由。單擊“新建路由”,來建立路由。

建立路由名稱為route,外部網路選擇“net-gre”。點選“新建路由”建立路由。

2、新增內部網路埠
單擊新建的路由名稱,選擇“介面”標籤。點選“增加介面”按鈕。

在彈框中,選擇“int-gre”內部網路,再點選“提交”。

(四)、管理安全組

1、管理default預設安全組
選擇選單欄:專案 -> 計算 -> 訪問&安全。單擊default安全組“管理規則”按鈕。

2、新增放行策略
點選“新增規則”,選擇“所有ICMP協議”,單擊“新增”按鈕;選擇“所有TCP協議”,單擊“新增”按鈕;選擇“所有UDP協議”,單擊“新增”按鈕。

(五)、建立雲主機

1、建立雲主機
選擇選單欄:專案 -> 計算 -> 雲主機。單擊“建立雲主機”按鈕。

雲主機名稱為:test,數量為:1。選擇centos7.2映象;選擇m1.small資源型別;選擇int-gre網路。然後單擊“啟動例項”按鈕建立例項。

2、繫結浮動IP
在主機下拉框中選擇“繫結浮動IP”選單命令。

在彈框中點選“+”分配一個地址,單擊“分配IP”按鈕。點選“關聯”按鈕,關聯浮動IP地址。

(六)、連線雲主機

1、測試連通性
建立完成後,可看到建立的雲主機狀態為“執行”。開啟CMD視窗,通過ping命令測試連通雲主機。

2、連線雲主機
使用secureCRT工具,連線雲主機,使用者名稱:root,密碼:000000。


二、Keystone服務操作

Keystone是OpenStack中的一個獨立的提供安全認證的模組,主要負責openstack使用者的身份認證、令牌管理、提供訪問資源的服務目錄(指引路徑)、以及基於使用者角色的訪問控制。

(一)、keystone運維命令

1、環境配置
[root@controller ~]# source /etc/keystone/admin-openrc.sh

2、建立使用者
語法:openstack user create --password 使用者的密碼 --email 郵箱 --domain demo 使用者名稱
[root@controller ~]# openstack user create --password 000000 --email wzg@example.com --domain demo wzg

3、建立專案
語法:openstack project create --domain demo 專案名
[root@controller ~]# openstack project create --domain demo acme

4、建立角色
語法:openstack role create 角色名
[root@controller ~]# openstack role create compute-user

5、繫結使用者和專案許可權
語法:openstack role add --user 使用者名稱 --project 專案名 角色名
[root@controller ~]# openstack role add --user wzg --project acme compute-user

(二)、keystone查詢命令

1、查詢使用者列表
[root@controller ~]# openstack user list

2、查詢wzg使用者的詳細資訊
[root@controller ~]# openstack user show wzg

3、查詢專案列表
[root@controller ~]# openstack project list

4、查詢acme專案的詳情資訊
[root@controller ~]# openstack project show acme

5、查詢角色列表
[root@controller ~]# openstack role list

6、查詢compute-user角色的詳細資訊
[root@controller ~]# openstack role show compute-user

7、檢視平臺所有服務所使用的端點地址
[root@controller ~]# openstack endpoint list


三、Neutron服務操作

Neutron是一個用python寫的分散式軟體專案,用來實現OpenStack中的網路服務。

(一)、網路管理

1、檢視網路列表
[root@controller ~]# neutron net-list

2、建立外部網路
語法:neutron net-create --shared --router:external=true --provider:network_type 網路型別 外網名稱
[root@controller ~]# neutron net-create --shared --router:external=true --provider:network_type gre net-gre

3、建立內部網路
語法:neutron net-create --shared --provider:network_type 網路型別 內網名稱
[root@controller ~]# neutron net-create --shared --provider:network_type gre int-gre

4、檢視網路詳情資訊
[root@controller ~]# neutron net-show int-gre

5、更新網路
語法:penstack network set 網路名稱 --name 新網路名稱 --disable --no-share
[root@controller ~]# openstack network set nett-gre --name net-gre01 --disable --no-share

6、刪除網路
[root@controller ~]# neutron net-delete int-gre

(二)、子網管理

1、檢視子網列表
[root@controller ~]# neutron subnet-list

2、建立外網子網
語法:neutron subnet-create 外網名稱 外網網段 --name 外網子網名稱 --gateway 閘道器地址 --allocation-pool start=開始地址,end=結束地址 --enable-dhcp --dns-nameserver 8.8.8.8
[root@controller ~]# neutron subnet-create net-gre 192.168.20.0/24 --name net-subnet01 --gateway 192.168.20.2 --allocation-pool start=192.168.20.101,end=192.168.20.240 --enable-dhcp --dns-nameserver 8.8.8.8

3、建立內網子網
語法:neutron subnet-create 內網名稱 內網網段 --name 內網子網名稱 --gateway 閘道器地址 --allocation-pool start=開始地址,end=結束地址 --enable-dhcp
[root@controller ~]# neutron subnet-create int-gre 10.10.1.0/24 --name int-subnet01 --gateway 10.10.1.2 --allocation-pool start=10.10.1.101,end=10.10.1.240 --enable-dhcp

4、檢視子網詳細資訊
[root@controller ~]# neutron subnet-show net-subnet01

5、修改子網
語法:neutron subnet-update 子網名稱 --name 新子網名稱 --no-gateway(不加閘道器) --allocation-pool start=開始地址,end=結束地址
[root@controller ~]# neutron subnet-update net-subnet01 --name net-subnet-test --no-gateway --allocation-pool start=192.168.20.99,end=192.168.20.110

6、刪除子網
[root@controller ~]# neutron subnet-delete int-subnet01

(三)、路由管理

1、檢視路由列表
[root@controller ~]# neutron router-list

2、建立路由
語法:neutron router-create 路由名稱
[root@controller ~]# neutron router-create router

3、檢視路由詳情資訊
[root@controller ~]# neutron router-show router

4、刪除路由
[root@controller ~]# neutron router-delete router

5、新增外部閘道器
語法:neutron router-gateway-set 路由名稱 外網名稱(用neutron net-list檢視)
[root@controller ~]# neutron router-gateway-set router net-gre

6、刪除外部閘道器
[root@controller ~]# neutron router-gateway-clear router

7、檢視路由埠資訊列表
[root@controller ~]# neutron router-port-list router

8、新增內部介面
語法:neutron router-interface-add 路由名稱 內網名稱(用neutron int-list檢視)
[root@controller ~]# neutron router-interface-add router int-subnet01

9、刪除內部介面
語法:neutron router-interface-delete 路由名稱 subnet=內網名稱
[root@controller ~]# neutron router-interface-delete router subnet=int-subnet

(四)、埠管理

1、檢視埠列表
[root@controller ~]# neutron port-list

2、建立埠
語法:neutron port-create 內網名稱 --name 埠名稱
[root@controller ~]# neutron port-create int-gre --name test-port

3、修改埠
語法:neutron port-update 埠名稱 --name 新埠名稱 --security-group 安全組
[root@controller ~]# neutron port-update test-port --name test-port-8080 --security-group 54c9ccb7-7f00-4485-898f-e4bbebafa73b

4、檢視埠詳情資訊
語法:neutron port-show 埠id
[root@controller ~]# neutron port-show 1b46a0d6-0df6-4f96-b3a3-d47aae6ed589

5、刪除埠
[root@controller ~]# neutron port-delete test-port

四、Nova組建操作

Nova是Openstack雲中的計算組織控制器;管理OpenStack雲中例項的生命週期的所有活動;是管理計算資源、網路認證所需的可擴充套件性平臺。

(一)、安全組操作:

1、檢視安全組列表
[root@controller ~]# nova secgroup-list

2、建立安全組
語法:nova secgroup-create 安全組名稱 '描述資訊'
[root@controller ~]# nova secgroup-create wzg 'Most great security group'

3、更新安全組
語法:nova secgroup-update ID號 新名稱 '新描述資訊'
[root@controller ~]# nova secgroup-update 218faa36-c250-40d5-9775-534049e5771a wzg01 'One of the most great security group'

4、刪除安全組
[root@controller ~]# nova secgroup-delete wzg

5、檢視安全組規則詳情資訊
[root@controller ~]# nova secgroup-list-rules wzg

6、新增安全組規則

[root@controller ~]# nova secgroup-add-rule wzg icmp -1 -1 0.0.0.0/0
[root@controller ~]# nova secgroup-add-rule wzg udp 1 65535 0.0.0.0/0
[root@controller ~]# nova secgroup-add-rule wzg tcp 1 65535 0.0.0.0/0

7、刪除安全組規則
[root@controller ~]# nova secgroup-delete-rule wzg icmp -1 -1 0.0.0.0/0

(二)、雲主機型別操作

1、檢視雲主機型別列表
[root@controller ~]# nova flavor-list

2、新增雲主機型別
語法:nova flavor-create 型別名稱 ID號 1024 10 1
[root@controller ~]# nova flavor-create m1.wzg 6 1024 10 1

點選檢視詳情
[root@controller ~]# nova flavor-create m1.wzg 6 1024 10 1
+----+--------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name   | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+----+--------+-----------+------+-----------+------+-------+-------------+-----------+
| 6  | m1.wzg | 1024      | 10   | 0         |      | 1     | 1.0         | True      |
+----+--------+-----------+------+-----------+------+-------+-------------+-----------+

3、檢視雲主機型別詳情資訊
[root@controller ~]# nova flavor-show m1.wzg

4、刪除雲主機型別
[root@controller ~]# nova flavor-delete m1.wzg

(三)、雲主機例項操作

1、檢視例項列表
[root@controller ~]# nova list

2、建立例項
語法:nova boot --image OpenStack平臺的使用 --availability-zone nova --flavor --security-groups --nic <net-id=net-uuid>

[root@controller ~]# nova boot    \
--image centos7.2      \
--availability-zone nova  \
--flavor m1.wzg    \
--security-groups wzg  \
--nic net-id=64306052-bcec-4209-ac4c-45b9d2de4dde  \
wzg-server

需要先查詢出:

1)檢視映象
[root@controller ~]# glance image-list
2)檢視規格(雲主機型別)
[root@controller ~]# nova flavor-list
3)檢視安全組
[root@controller ~]# nova secgroup-list
4)檢視可用的網路
[root@controller ~]# neutron net-list

3、檢視例項詳情資訊
[root@controller ~]# nova show wzg-server

4、啟動例項
[root@controller ~]# nova start wzg-server

5、停止例項
[root@controller ~]# nova stop wzg-server

6、重啟例項
[root@controller ~]# nova reboot wzg-server

7、掛起例項
[root@controller ~]# nova pause wzg-server

8、刪除例項
[root@controller ~]# nova delete wzg-server


(四)、浮動IP

1、檢視浮動IP列表
[root@controller nova]# nova floating-ip-list

2、建立浮動IP
語法:nova floating-ip-create 浮動IP地址池
[root@controller nova]# nova floating-ip-create net-gre

3、檢視浮動IP地址池資訊
[root@controller nova]# nova floating-ip-pool-list

4、檢視浮動IP詳細資訊
語法:openstack ip floating show 浮動IP
[root@controller nova]# openstack ip floating show 192.168.100.4

5、關聯浮動IP例項
語法:nova floating-ip-associate 雲主機名稱 浮動ip
[root@controller nova]# nova floating-ip-associate wzg-server 192.168.100.4

6、解除關聯浮動IP例項
語法:nova floating-ip-disassociate 雲主機名稱 浮動ip
[root@controller nova]# nova floating-ip-disassociate wzg-server 192.168.100.4

7、刪除浮動IP
[root@controller nova]# nova floating-ip-delete 192.168.100.4

(五)、金鑰管理

1、檢視金鑰列表
[root@controller ~]# nova keypair-list

2、建立金鑰
語法:nova keypair-add 金鑰名稱 --key-type ssh
[root@controller ~]# nova keypair-add wzg --key-type ssh

3、檢視金鑰詳情資訊
[root@controller ~]# nova keypair-show wzg

4、刪除金鑰
[root@controller ~]# nova keypair-delete wzg

卷掛載

1、卷建立
[root@controller ~]# cinder create --name test --description 'new volume' --availability-zone nova 2

2、修改卷狀態為available
[root@controller ~]# cinder reset-state --state available test

3、卷列表檢視
[root@controller ~]# cinder list

4、卷掛載到雲主機
[root@controller cinder]# nova volume-attach wzg-server f594e936-05e2-4a8c-b4c9-b96bbe7e2c82 /dev/vdb

5、檢視所有掛載到雲主機上的卷
[root@controller cinder]# nova volume-attachments wzg-server

相關文章