玩轉(zhuǎn)OpenStack(三)架構(gòu)、安裝、screen

終于開始 OpenStack 的介紹了。
本節(jié)將介紹 OpenStack 架構(gòu)和安裝。模塊的詳細功能將在后面的小節(jié)中介紹。

一、概念架構(gòu)(Conceptual Architecture)

概念架構(gòu)

1. 核心模塊說明

  • Nova: 管理計算資源,管理虛擬機的生命周期

  • Neutron:管理網(wǎng)絡(luò)資源,負(fù)責(zé)創(chuàng)建和管理 L2,L3 網(wǎng)絡(luò),為虛擬機提供虛擬網(wǎng)絡(luò)和物理網(wǎng)絡(luò)

  • Glance:管理虛擬機的啟動鏡像,Nova 創(chuàng)建虛擬機時將使用 Glance 提供的鏡像

  • Cinder:為虛擬機提供塊存儲服務(wù),Cinder 提供虛擬機的虛擬硬盤,一般作為數(shù)據(jù)盤

  • Keystone:為各種服務(wù)提供認(rèn)證和權(quán)限管理服務(wù)。OpenStack 的每個操作必須通過 Keystone 的審核

2. 可選服務(wù)

  • Swift:對象存儲服務(wù)

  • Ceilometer:提供 OpenStack 監(jiān)控和計量服務(wù),為報警、統(tǒng)計或計費提供數(shù)據(jù)

  • Horzon:Web 操作頁面

  • Ironic:是一個進行裸機部署安裝的模塊,可以很方便的對指定的一臺或多臺裸機,執(zhí)行硬盤 RAID、分區(qū)和格式化;安裝操作系統(tǒng)、驅(qū)動程序;安裝應(yīng)用程序的操作

  • Trove:為用戶提供的數(shù)據(jù)庫即服務(wù) (DBaaS)

  • Heat:Heat 是 OpenStack 提供的自動編排功能的組件,基于描述性的模板,來編排復(fù)合云應(yīng)用程序。

  • Sahara:為用戶提供簡單部署 Hadoop 集群的能力,比如通過簡單的配置:Hadoop 版本、集群結(jié)構(gòu)、節(jié)點硬件信息等。在用戶提供了這些參數(shù)后,Sahara 迅速把 Hadoop 集群部署起來。同時也支持集群的擴容和減容。

二、 邏輯架構(gòu)(Logical Architecture)

邏輯架構(gòu)

在邏輯架構(gòu)中可以看到每個服務(wù)由若干個組件組成。每個組件的詳細信息后面的章節(jié)會逐個介紹。

三、安裝OpenStack

我使用的是 OpenStack 的 DevStack 進行開發(fā)環(huán)境的部署。
DevStack 有豐富的選項讓我們能夠靈活的選擇和部署想要的 OpenStack 服務(wù)。

1. 部署拓?fù)?/h2>
  • 控制節(jié)點(Controller Node)

管理 OpenStack,運行的服務(wù)有 Keystone、Glance、Horizon、Nove 和 Neutron 中管理相關(guān)的組件。
運行支持 OpenStack 的服務(wù),如:數(shù)據(jù)庫(MySQL)、消息隊列(RabbitMQ)和網(wǎng)絡(luò)時間服務(wù) NTP。

  • 網(wǎng)絡(luò)節(jié)點(Network Node)

運行的服務(wù)為 Neutron 為 OpenStack 提供 L2 和 L3 網(wǎng)絡(luò)。包含虛擬機網(wǎng)絡(luò)、DHCP、路由、NAT 等。

邏輯上,OpenStack 至少包括下面幾類網(wǎng)絡(luò):

  • Management 網(wǎng)絡(luò)
    用于節(jié)點之間的 message queue 內(nèi)部通信以及訪問 database 服務(wù),所有的節(jié)點都需要連接到 management 網(wǎng)絡(luò)。

  • API 網(wǎng)絡(luò)
    OpenStack 各組見通過該網(wǎng)絡(luò)向用戶暴露 API 服務(wù)。Keystone、Nova、Neutron、Glance、Cinder、Horizon 的 Endpoint 均配置在 API 網(wǎng)絡(luò)上。

  • VM 網(wǎng)絡(luò)
    VM 網(wǎng)絡(luò)也叫 Tenant 網(wǎng)絡(luò),用于 Instance 之間通訊。VM 網(wǎng)絡(luò)可以選擇的類型包括 local、flat、vlan、vxlan 和 gre。VM 網(wǎng)絡(luò)由 Neutron 配置和管理。

  • External 網(wǎng)絡(luò)
    External 網(wǎng)絡(luò)指的是 VM 網(wǎng)絡(luò)之外的網(wǎng)絡(luò),該網(wǎng)絡(luò)不由 Neutron 管理。Neutron 可以將 router 連接到 External 網(wǎng)絡(luò),為 Instance 提供可以訪問外部網(wǎng)絡(luò)的能力。

這幾類網(wǎng)絡(luò)只是邏輯上的劃分,物理實現(xiàn)上可以有非常大的自由度。我可以為每個網(wǎng)絡(luò)分配單獨的網(wǎng)卡,也可以多種網(wǎng)絡(luò)使用一個網(wǎng)卡。

  • 存儲節(jié)點 (Storage Node)

提供塊存儲(Cinder)或?qū)ο蟠鎯Γ⊿wift)服務(wù)。

  • 計算節(jié)點(Compute Node)

運行 Hypervisor (默認(rèn)使用KVM)服務(wù)。同時運行 Neuron 服務(wù)的 agent,為虛擬機提供網(wǎng)絡(luò)支持。

以上節(jié)點是從功能上進行的邏輯劃分,在實際中可以根據(jù)需求配置。

2. 開發(fā)環(huán)境

  • 兩臺虛擬機

  • devstack-controller:控制節(jié)點 + 網(wǎng)絡(luò)節(jié)點 + 塊存儲節(jié)點 + 計算節(jié)點

  • devstack-compute:計算節(jié)點

拓?fù)鋱D如下:


開發(fā)環(huán)境拓?fù)鋱D
  • 虛擬機配置

  • devstack-controller:
    CPU 1~2
    Memory 8 GB
    Disk 100 GB
    NIC 3
    System Ubuntu-16.04

  • devstack-compute:
    CPU 2~4+
    Memory 8+ GB
    Disk 100+ GB
    NIC 2
    System Ubuntu-16.04

  • 網(wǎng)絡(luò)規(guī)劃

  • devstack-controller:
    eth0:內(nèi)部管理,如服務(wù)之間的通信問題??梢院屯獠烤W(wǎng)絡(luò)共用一個。
    eth1:部署的虛擬機所使用的網(wǎng)絡(luò)。內(nèi)部私有網(wǎng)絡(luò)(Tenant Network)。
    eth2:外部網(wǎng)絡(luò)(External Network)。

  • devstack-compute:
    eth0:內(nèi)部管理用的管理網(wǎng)絡(luò)。
    eth1:部署虛擬機使用的網(wǎng)絡(luò)。

  • 虛擬機網(wǎng)卡配置信息如下

  • devstack-controller:
    /etc/network/interfaces 配置文件

root@controller:~# vim /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens35
iface ens35 inet static
     address 172.16.245.138
     netmask 255.255.255.0
     gateway 172.16.245.2
dns-nameservers 172.16.245.2

auto ens33
iface ens33 inet manual

auto ens34
iface ens34 inet manual

網(wǎng)卡信息

root@controller:~# ifconfig
ens33     Link encap:Ethernet  HWaddr 00:0c:29:45:54:1b
          inet6 addr: fe80::20c:29ff:fe45:541b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45867 errors:0 dropped:0 overruns:0 frame:0
          TX packets:119 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2758193 (2.7 MB)  TX bytes:10194 (10.1 KB)
          Interrupt:19 Base address:0x2000

ens34     Link encap:Ethernet  HWaddr 00:0c:29:45:54:25
          inet6 addr: fe80::20c:29ff:fe45:5425/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:1048 (1.0 KB)
          Interrupt:16 Base address:0x2080

ens35     Link encap:Ethernet  HWaddr 00:0c:29:45:54:2f
          inet addr:172.16.245.138  Bcast:172.16.245.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe45:542f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:719810 errors:122 dropped:4 overruns:0 frame:0
          TX packets:414852 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1022413200 (1.0 GB)  TX bytes:30446706 (30.4 MB)
          Interrupt:17 Base address:0x2400
  • devstack-compute:
    /etc/network/interfaces 配置文件
root@compute:~# vim /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet static
     address 172.16.245.140
     netmask 255.255.255.0
     gateway 172.16.245.2
dns-nameservers 172.16.245.2

auto ens34
iface ens34 inet manual

網(wǎng)卡信息

root@compute:~# ifconfig
ens33     Link encap:Ethernet  HWaddr 00:0c:29:cd:cf:60
          inet addr:172.16.245.140  Bcast:172.16.245.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fecd:cf60/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:201970 errors:81 dropped:81 overruns:0 frame:0
          TX packets:105843 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:291109470 (291.1 MB)  TX bytes:6866198 (6.8 MB)
          Interrupt:19 Base address:0x2000

ens34     Link encap:Ethernet  HWaddr 00:0c:29:cd:cf:6a
          inet6 addr: fe80::20c:29ff:fecd:cf6a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:648 (648.0 B)
          Interrupt:16 Base address:0x2080

3. 開始安裝

  • 更新 apt-get
# apt-get update
# apt-get upgrade

\color{red}{注意}apt-get的源建議不要修改,雖然會很慢。有些源內(nèi)容不完整,會有很多錯誤哦。
以下源我使用安裝的目前沒有報錯。/etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
  • 安裝并且更新 pip
# apt-get install python-pip
# pip install --upgrade pip
# pip install -U os-testr

\color{red}{注意}:如果pip版本很舊的話在安裝 DevStack 時會報錯

  • 設(shè)定時區(qū)

設(shè)定時區(qū): Asia -> Shanghai -> OK

# dpkg-reconfigure tzdata
  • 同步時間

安裝時間同步工具 ntpdate

# apt-get install ntpdate

與網(wǎng)絡(luò)服務(wù)器同步時間

# ntpdate cn.pool.ntp.org

查看是否成功

# date
  • 安裝 git
# apt-get install git
  • 創(chuàng)建stack用戶并設(shè)置權(quán)限
# sudo useradd -s /bin/bash -d /opt/stack -m stack
# echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

\color{red}{注意}:因為stack賬戶會修改系統(tǒng)的權(quán)限,所以要給一個高級權(quán)限。

  • 進入 stack 賬戶
# su - stack
  • 下載 devstack

為了方便將 devstack 放在 /opt/stack/ 目錄下

# cd /opt/stack
# git clone https://github.com/openstack-dev/devstack -b stable/ocata

devstack 有很多分支,可以去這里 https://git.openstack.org/cgit/openstack-dev/devstack 查看

  • 配置 Devstack 編輯 local.conf 文件
  • devstack-controller
    目錄:/opt/stack/devstack/local.conf
    內(nèi)容如下:
    HOST_IP 為控制節(jié)點內(nèi)部管理IP;
    # Credentials 相關(guān)服務(wù)的密碼
    # Branches 是安裝的版本(也就是分支名);

[[local|localrc]]
MULTI_HOST=true
GIT_BASE=http://git.trystack.cn
# management & api network
HOST_IP=172.16.245.138
LOGFILE=/opt/stack/logs/stack.sh.log
# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
# enable neutron-ml2-vlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas,q-vpn

enable_plugin neutron-fwaas http://git.trystack.cn/openstack/neutron-fwaas.git
enable_plugin neutron-fwaas-dashboard http://git.trystack.cn/openstack/neutron-fwaas-dashboard.git
enable_plugin neutron-lbaas http://git.trystack.cn/openstack/neutron-lbaas.git
enable_plugin neutron-lbaas-dashboard http://git.trystack.cn/openstack/neutron-lbaas-dashboard.git

Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# Branches
# KEYSTONE_BRANCH=stable/ocata
# NOVA_BRANCH=stable/ocata
# NEUTRON_BRANCH=stable/ocata
# SWIFT_BRANCH=stable/ocata
# GLANCE_BRANCH=stable/ocata
# CINDER_BRANCH=stable/ocat

enable_service 服務(wù)介紹

服務(wù) 介紹
q-agt Core Agent,包括 Linux Bridge Agent 和 Open vSwitch Agent
q-dhcp dhcp agent
q-l3 L3 Agent 提供 routing 服務(wù)
q-meta Neutron Metadata Agent
q-lbaas Load Balance Agent
q-fwaas Firewall 服務(wù)
q-vpn VPN Agent 提供 VPN as a Service
  • devstack-compute
    目錄:/opt/stack/devstack/local.conf
    內(nèi)容如下:
    HOST_IP 為計算節(jié)點內(nèi)部管理IP;
    # Credentials 相關(guān)服務(wù)的密碼
    SERVICE_HOST 為控制節(jié)點IP;
    # Branches是安裝的版本(也就是分支名);
    # vnc config 為vnc 配置信息;
[[local|localrc]]
MULTI_HOST=true
GIT_BASE=http://git.trystack.cn
# management & api network
HOST_IP=172.16.245.140
# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
# Service information
SERVICE_HOST=172.16.245.138
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
Q_HOST=$SERVICE_HOST
KEYSTONE_AUTH_HOST=$SERVICE_HOST
KEYSTONE_SERVICE_HOST=$SERVICE_HOST
CEILOMETER_BACKEND=mongodb
DATABASE_TYPE=mysql
ENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN
LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# Branches
# KEYSTONE_BRANCH=stable/ocata
# NOVA_BRANCH=stable/ocata
# NEUTRON_BRANCH=stable/ocata
# SWIFT_BRANCH=stable/ocata
# GLANCE_BRANCH=stable/ocata
# CINDER_BRANCH=stable/ocata
# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
  • 可以使用國內(nèi)源安裝 OpenStack

[[local|localrc]] 添加下面代碼即可,國內(nèi)源

GIT_BASE=http://git.trystack.cn

\color{red}{注意}: 國內(nèi)源存在同步滯后,可能包不兼容或者下載某些包失敗問題,出現(xiàn)這種情況時只需要重新替換原來的鏡像源,然后重新運行 ./stack.sh 即可。

  • 部署其它 OpenStack 服務(wù)

使用 enable_plugin plugin_name [code repo] [branch] 即可如下

enable_plugin neutron-fwaas http://git.trystack.cn/openstack/neutron-fwaas.git
enable_plugin neutron-fwaas-dashboard http://git.trystack.cn/openstack/neutron-fwaas-dashboard.git
enable_plugin neutron-lbaas http://git.trystack.cn/openstack/neutron-lbaas.git
enable_plugin neutron-lbaas-dashboard http://git.trystack.cn/openstack/neutron-lbaas-dashboard.git

配置安裝防火墻和負(fù)載均衡服務(wù)。

  • 開始安裝
# /opt/stack/devstack/stack.sh

時間超長等待即可。如果提示time out重新執(zhí)行就可以;

安裝成功后,如果重啟系統(tǒng),需要手動啟動OpenStack

# su stack
# screen -c stack-screenrc

關(guān)于 screen 后面有介紹。

  • 控制節(jié)點安裝成功返回如下信息:


  • 計算節(jié)點安裝成功返回如下信息:


  • 訪問
  • 登錄
    用戶名:admin,我這里設(shè)置的密碼也是admin
    http://172.16.245.138/dashboard

    登錄頁面

  • 確認(rèn)服務(wù)正常


    系統(tǒng)信息
系統(tǒng)信息
系統(tǒng)信息
  • 刪除測試網(wǎng)絡(luò)

在部署完成時會自動創(chuàng)建幾個測試網(wǎng)絡(luò),為了一個干凈的環(huán)境刪掉即可
Admin -> 系統(tǒng) -> 路由
Admin -> 系統(tǒng) -> 網(wǎng)絡(luò)
把這兩個里面的內(nèi)容刪掉,就可以得到一個干凈的環(huán)境了。

三、可能遇到的錯誤

  • 執(zhí)行./stack.sh1. If you wish to run this script anyway run with FORCE=yes

# FORCE=yes ./stack.sh
  • 在執(zhí)行安裝前一定要把 pip 升級,升級可能遇到的錯誤如下

Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

刪除 /usr/bin/pip, 然后重新軟連ln -s /usr/local/bin/pip /usr/bin/pip;
\color{red}{注意} :這個操作切換到root用戶下執(zhí)行。

  • 錯誤 Unable to locate package libsystemd-dev

ubuntu 16.04

# apt-get install libsystemd-dev

ubuntu 14.04

# apt-get install libsystemd-daemon-dev
  • 加載不到模塊 openstack_auth

ImportError: No module named openstack_auth

解決辦法:
進入 root 用戶下,卸載 openstack_auth pip uninstall django_openstack_auth 。
然后升級 pip 到最新,我目前是 19.X。然后再用最新的 pip 重新安裝 pip install django_openstack_auth 然后就可以了。
蛋疼啊~~

  • 執(zhí)行過程中需要重新執(zhí)行

如果安裝過程中某個包提示找不到,則需要重新執(zhí)行 ./stack.sh(如果有其他問題則需要先 ./unstack.sh)。在整個 devstack 安裝過程中會有很多次重新執(zhí)行 ./stack.sh

  • 安裝過程 pip 報錯 from pip._internal import main

修改/opt/stack/.local/bin/pip2.7

將 from pip._internal import main
改 from pip import main
  • 安裝計算節(jié)點時報錯 Didn't find service registered by hostname after 120 seconds。

在計算節(jié)點的 local.conf 中添加placement-api.。如下

ENABLED_SERVICES=n-cpu,q-agt,neutron,placement-api
或者直接
enable_service placement-api
  • 在創(chuàng)建 Instance 時使用 cirros 測試鏡像報錯,計算節(jié)點找不到硬盤。

Booting from Hard Disk...GRUB

修改計算節(jié)點 /etc/nova/nova.confvirt_type=kvm 改為 virt_type=qemu 重啟 nova 服務(wù)即可

  • 在創(chuàng)建 Instance 時使用 cirros 測試鏡像報錯,cpu x86-64錯誤時

This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.

因為當(dāng)前計算節(jié)點的操作系統(tǒng)不是 x86-64 的系統(tǒng)。所以不能跑 x86-64 的鏡像。

四、screen工具的使用

1. 查看

stack@controller:~/devstack$ screen -ls
There is a screen on:
    16041.stack (Saturday, February 23, 2019 06:56:47 CST)  (Detached)
1 Socket in /var/run/screen/S-stack.

2. 進入

stack@controller:~/devstack$ screen -x 16041

screen -x stack 進入

可以看見 Terminal 最下方有一串白色的字符串,其中的每一個數(shù)字對應(yīng)一個子 screen 也就是一個 Openstack services 。 下圖:


3. 退出 ctrl + a + d

4. 切換子screen

  • ctrl + a + p:切換到上一個 screen
  • ctrl + a + n:切換到下一個 screen
  • ctrl + a + a:返回上一個 screen
  • ctrl + a + 等一秒 + shift + '(單引號): 顯示所有的子 screen 的列表
  • ctrl + a + 數(shù)字: 切換到數(shù)字所對應(yīng)的子screen中,當(dāng)需切換至10以上的子
  • ctrl+a+'(單引號) 切換10以上時使用, 屏幕下出現(xiàn) Switch to window: + 數(shù)字 。
  • ctrl + a + ?:幫助,同樣 ctrl+a 按一會兒松開后在按 shift + ?
  • ctrl + [:開始滾動模式 ,然后可以使用上下左右鍵滾屏
  • ctrl + ]:退出滾動模式

5. 第一次出現(xiàn)問題 Cannot open your terminal '/dev/pts/0' - please check.

# script /dev/null  

5. 退出和重啟任務(wù)

  • ctrl + c:終止一個 screen
  • 進入希望 Restart 的 Openstack Services 的 screen 中,然后輸入 ctrl + c 結(jié)束這個進程,輸入 并重新執(zhí)行上一條指令。

以上就是本節(jié)全部內(nèi)容。
下一節(jié)將介紹 Keystone、Glance 模塊

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

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

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