OpenStack
1. 什么是 OpenStack
1.1 OpenStack 發展史
2006 年亞馬遜推出 AWS,正式開啟云計算的新紀元
2010 年 7 月美國國家航空航天局(NASA)與 Rackspace 合作,共同宣布 OpenStack 開放源碼計劃,由此開啟了屬于 OpenStack 的時代
OpenStack 從誕生之初對標 AWS,一直在向 AWS 學習,同時開放接口去兼容各種 AWS 服務
1.2 OpenStack 是什么
OpenStack 是虛擬機、裸金屬和容器的云基礎架構,其可控制整個數據中心的大型計算、存儲和網絡資源池,所有資源都通過 API 或 Web 界面進行管理
OpenStack 本質是由一系列叫腳本的命令組成,這些腳本會被捆綁到名為項目的軟件包中,這些軟件包則用于傳遞創建云環境的任務
為了創建這些環境,OpenStack 還會使用 2 種其他類型的軟件:
- 虛擬化軟件,用于創建從硬件中抽象出來的虛擬資源層
- 基礎操作系統(OS),用于執行 OpenStack 腳本發出的命令
OpenStack 本身不會虛擬化資源,但會使用虛擬化資源來構建云,OpenStack、虛擬化和基礎操作系統,這 3 種技術協同工作服務用戶
1.3 OpenStack 版本
OpenStack 每年兩個大版本,一般在 4 月和 10 月中旬發布,版本命名首字母按照 A-Z 循環更替
1.4 OpenStack 與虛擬化
OpenStack 不是虛擬化,OpenStack 只是系統的控制面,不包括系統的數據面組件,如Hypervisor、存儲和網絡設備等。虛擬化只是 OpenStack 底層的技術實現手段之一,但并非核心關注點
OpenStack 與虛擬化的關鍵區別在于
- OpenStack 本身不提供虛擬化技術,其通過調用多種技術實現多資源池管理,對外提供統一管理接口
- 虛擬化使虛擬與物理環境隔離,實現資源復用、降低隔離損耗、提升運行效率、提供高級虛擬化特性
2. OpenStack 架構
每個 OpenStack 服務內部是由多個進程組成。所有服務(Keystone除外)都至少有一個 API 進程,負責監聽 API 請求,對請求進行預處理并將它們傳遞給服務的其他部分
每個 OpenStack 服務的進程之間的通信,使用 AMQP 消息代理。服務的狀態存儲在數據庫中。在部署和配置 OpenStack 云時,管理員可以在多種消息代理和數據庫解決方案中進行選擇,例如 RabbitMQ、MySQL、MariaDB 和 SQLite
用戶可以通過 Web 用戶界面、命令行客戶端以及通過瀏覽器插件或 curl 等工具發出 API 請求來訪問 OpenStack
OpenStack 的核心服務如下:
服務名 | 服務類型 | 作用 |
---|---|---|
HORIZON | 界面管理服務 | 提供基于 Web 的控制界面,使云管理員和用戶能夠管理各種 OpenStack 資源和服務 |
KEYSTONE | 認證服務 | 提供身份驗證,服務發現和分布式多租戶授權,支持 LDAP、OAuth、OpenID Connect、SAML 和 SQL |
GLANCE | 鏡像服務 | 提供發現、注冊和檢索虛擬機鏡像功能,提供的虛擬機實例鏡像可以存放在不同地方,例如本地文件系統、Swift對象存儲、Cinder塊存儲等 |
NOVA | 計算服務 | 提供大規模、可擴展、按需自助服務的計算資源,支持管理裸機,虛擬機和容器 |
CINDER | 塊存儲服務 | 提供塊存儲服務,為虛擬機實例提供持久化存儲,調用不同存儲接口驅動,將存儲設備轉化成塊存儲池,用戶無需了解存儲實際部署位置或設備類型 |
SWIFT | 對象存儲服務 | 提供高度可用、分布式、最終一致的對象存儲服務,可以高效、安全且廉價地存儲大量數據,非常適合存儲需要彈性擴展的非結構化數據 |
NEUTRON | 網絡服務 | 負責管理虛擬網絡,專注于為 OpenStack 提供網絡即服務,依賴 Keystone 認證服務 |
HEAT | 編排服務 | 為云應用程序編排 OpenStack 基礎架構資源,提供 OpenStack 原生 REST API 和 CloudFormation 兼容的查詢 API |
CEILOMETER | 計量服務 | Ceilometer項目是一項數據收集服務,提供跨當前 OpenStack 核心組件規范化和轉換數據的能力,其數據可為所有 OpenStack 核心組件提供客戶計費、資源跟蹤和警報功能 |
3. 安裝 OpenStack
3.1 配置模板機
從模板機中克隆一臺虛擬機作為 OpenStack 模板機使用,配置信息如下:
- CPU: 不低于 4 核
- 內存: 不低于 8 GB
- 磁盤: 不低于 100 GB
- 網卡: 1 張,NAT 模式
- 操作系統: CentOS 8 Stream(可視情況而定)
- 配置 yum 源
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# cat <<EOF > /etc/yum.repos.d/openstack.repo
[centos-openstack-victoria]
name=CentOS 8 - OpenStack victoria
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/cloud/x86_64/openstack-victoria/
gpgcheck=0
enabled=1[highavailability]
name=CentOS Stream 8 - HighAvailability
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/HighAvailability/x86_64/os/
gpgcheck=0
enabled=1[nfv]
name=CentOS Stream 8 - NFV
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/NFV/x86_64/os/
gpgcheck=0
enabled=1[rt]
name=CentOS Stream 8 - RT
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/RT/x86_64/os/
gpgcheck=0
enabled=1[resilientstorage]
name=CentOS Stream 8 - ResilientStorage
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/ResilientStorage/x86_64/os/
gpgcheck=0
enabled=1[extras-common]
name=CentOS Stream 8 - Extras packages
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/extras/x86_64/extras-common/
gpgcheck=0
enabled=1[extras]
name=CentOS Stream $releasever - Extras
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/extras/x86_64/os/
gpgcheck=0
enabled=1[centos-ceph-pacific]
name=CentOS - Ceph Pacific
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/storage/x86_64/ceph-pacific/
gpgcheck=0
enabled=1[centos-rabbitmq-38]
name=CentOS-8 - RabbitMQ 38
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/messaging/x86_64/rabbitmq-38/
gpgcheck=0
enabled=1[centos-nfv-openvswitch]
name=CentOS Stream 8 - NFV OpenvSwitch
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/nfv/x86_64/openvswitch-2/
gpgcheck=0
enabled=1[baseos]
name=CentOS Stream 8 - BaseOS
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/BaseOS/x86_64/os/
gpgcheck=0
enabled=1[appstream]
name=CentOS Stream 8 - AppStream
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/AppStream/x86_64/os/
gpgcheck=0
enabled=1[powertools]
name=CentOS Stream 8 - PowerTools
baseurl=https://mirrors.aliyun.com/centos-vault/8-stream/PowerTools/x86_64/os/
gpgcheck=0
enabled=1
EOF[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
- 安裝基本軟件包
yum install -y bash-completion open-vm-tools net-tools chrony.x86_64
source /usr/share/bash-completion/bash_completion
- 配置 Hosts
echo '10.1.8.10 controller' >> /etc/hosts
echo '10.1.8.11 compute' >> /etc/hosts
- 關閉 SELinux
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
- 清除密鑰信息
rm -rf /etc/ssh/ssh_host_*
- 清除 Machine ID
cat /dev/null > /etc/machine-id
cat /etc/machine-id
- 關機,打快照
3.2 配置控制節點與計算節點
根據模板機快照克隆出控制節點主機與計算節點主機:
控制節點主機 | 計算節點主機 | |
---|---|---|
主機名 | controller | compute |
IP 地址 | 10.1.8.10 | 10.1.8.11 |
- 配置主機基本信息
# ===== Controller =====
hostnamectl set-hostname controller
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 10.1.8.10/24 ipv4.gateway 10.1.8.2 ipv4.dns 10.1.8.2
nmcli connection up ens160# ===== Compute =====
hostnamectl set-hostname compute
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 10.1.8.11/24 ipv4.gateway 10.1.8.2 ipv4.dns 10.1.8.2
nmcli connection up ens160
- 配置時間服務器
# ===== Controller =====
[root@controller ~]# vim /etc/chrony.conf
# pool 2.centos.pool.ntp.org iburst
server ntp.aliyun.com iburst
# Allow NTP client access from local network.
#allow 192.168.0.0/16
allow 10.1.8.0/24[root@controller ~]# systemctl restart chronyd
[root@controller ~]# systemctl enable chronyd# ===== Compute =====
[root@compute ~]# vim /etc/chrony.conf
# pool 2.centos.pool.ntp.org iburst
server controller iburst[root@compute ~]# systemctl restart chronyd
[root@compute ~]# systemctl enable chronyd
配置完成后關閉操作系統并打快照
- 安裝 OpenStack
# 安裝 OpenStack 軟件包
[root@controller ~]# yum install -y openstack-packstack# 生成應答文件
[root@controller ~]# packstack --gen-answer-file=answers.txt
Packstack changed given value to required value /root/.ssh/id_rsa.pubAdditional information:* Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note
that this backend does not support the VPNaaS plugin. Geneve will be used as the
encapsulation method for tenant networks# 更改應答文件
[root@controller ~]# sed -i '/^CONFIG_COMPUTE_HOSTS=/cCONFIG_COMPUTE_HOSTS=10.1.8.10,10.1.8.11' answers.txt
# |--------|--------| 控制節點與存儲節點 IP 地址
[root@controller ~]# sed -i '/^CONFIG_PROVISION_DEMO=/cCONFIG_PROVISION_DEMO=n' answers.txt
[root@controller ~]# sed -i '/^CONFIG_HEAT_INSTALL=/cCONFIG_HEAT_INSTALL=y' answers.txt
[root@controller ~]# sed -i '/^CONFIG_NEUTRON_OVN_BRIDGE_IFACES=/cCONFIG_NEUTRON_OVN_BRIDGE_IFACES=brex:ens160' answers.txt
# |----| 網卡設備名
[root@controller ~]# sed -i.bak -r 's/(.+_PW)=[0-9a-z]+/\1=huawei/g' answers.txt
# |----| 此處為密碼,可自行設置# 關閉網絡管理
[root@controller ~]# systemctl stop NetworkManager; systemctl disable NetworkManager; systemctl mask NetworkManager
[root@compute ~]# systemctl stop NetworkManager; systemctl disable NetworkManager; systemctl mask NetworkManager# 安裝 OpenStack
[root@controller ~]# packstack --answer-file=answers.txt
# 注:整個安裝過程會持續近 45 分鐘,且長時間處于一個頁面,屬于正常現象
**** Installation completed successfully ******
完成后可以在瀏覽器輸入控制節點的 IP 地址測試
- 開啟網絡服務
[root@controller ~]# systemctl start network
[root@controller ~]# systemctl enable network[root@compute ~]# systemctl start network
[root@compute ~]# systemctl enable network
- 配置 OpenStack 命令補全
[root@controller ~]# openstack complete >> /etc/bash_completion.d/complete
The 'openstack bgp speaker show dragents' CLI is deprecated and will be removed
in the future. Use 'openstack bgp dragent list' CLI instead.
關機,打快照
一定要打快照!!!
一定要打快照!!!
一定要打快照!!!
至此安裝結束
4. 界面管理:OpenStack - HORIZON
4.1 網頁端
打開瀏覽器,輸入 controller
主機的 IP 地址訪問 web 端網頁
輸入用戶名與密碼進行登錄,管理員用戶名默認為 admin
完成登錄后,主頁面為 “項目-計算-概覽” 頁面,左側為管理選項,中間為管理界面,中上方為當前目錄,左上方為項目切換按鈕,右上角為用戶管理按鈕
點擊導航欄的 “管理員”、“概覽”,可以看到整個系統的使用狀況摘要
點擊導航欄的 “身份管理”、“項目”,可以看到項目的界面
如需修改用戶名與密碼,可以點擊右上方用戶名、“設置”、“修改密碼”,即可打開密碼重置頁面
創建用戶
點擊 “身份管理”、“用戶”、“創建用戶”,填寫必要信息,即可創建一個新用戶
示例:為 admin 項目創建一個普通用戶 user1
創建完成后可自行嘗試以新用戶身份登錄
4.2 命令行
遠程連接到 OpenStack Controller
主機
4.2.1 登入 OpenStack 命令行
使用命令 source
命令可以進入 OpenStack 命令行,語法如下:
source 認證文件# 示例
[root@controller ~ 19:05:17]# source keystonerc_admin
[root@controller ~(keystone_admin)]# # OpenStack 管理命令行
完成登錄后,可以執行一條命令驗證登錄,如
[root@controller ~(keystone_admin)]# openstack project list
+----------------------------------+----------+
| ID | Name |
+----------------------------------+----------+
| 4f1858067e5741aca8c7ce11ec53f9cb | admin |
| 6bfedc999fec49f99cf3805f1dc64096 | services |
+----------------------------------+----------+
# Success
如果想要以別的用戶角色進入 OpenStack 命令行,需要為對應的用戶創建一個驗證文件,以剛剛創建的 user1 用戶為例,操作如下:
# 1. 復制 admin 用戶的認證文件,并將用戶名更改為 user1
[root@controller ~(keystone_admin)]# cp keystonerc_admin keystonerc_user1# 2. 更改文件內與用戶信息相關的內容
[root@controller ~(keystone_admin)]# vim keystonerc_user1
unset OS_SERVICE_TOKENexport OS_USERNAME=user1 # 用戶名export OS_PASSWORD='huawei' # 密碼export OS_REGION_NAME=RegionOneexport OS_AUTH_URL=http://10.1.8.10:5000/v3 # 登錄地址export PS1='[\u@\h \W(keystone_user1)]\$ ' # 命令提示符格式export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3# 3. 以 user1 用戶身份登錄
[root@controller ~(keystone_admin)]# source keystonerc_user1
[root@controller ~(keystone_user1)]# # Success
5. 認證管理:OpenStack - KEYSTONE
5.1 KEYSTONE 基本概念
Keystone 是 OpenStack 的核心身份認證服務,負責管理用戶身份驗證、服務目錄管理以及訪問權限控制。它為整個云平臺提供了統一的認證機制,確保只有經過授權的用戶和服務才能訪問相應資源。
理解 Keystone 的核心概念是掌握 OpenStack 身份管理的基礎,以下為關鍵術語及其含義的詳細說明:
關鍵字 | 含義 |
---|---|
Domain | 域,Keystone 中一個虛擬概念,一個域是一組 User、Group 或 Project 的容器 |
User | 用戶,是可以通過 Keystone 訪問 OpenStack 服務的個人、系統或某個服務 |
Group | 用戶組,是一組 User 的容器,可以向 Group 中添加用戶,并直接給 Group 分配角色 |
Project | 項目,是各個服務中一些可以訪問的資源集合,項目只需在某個域下唯一即可 |
Role | 角色,具有一組定義的用戶權限和特權以執行一組特定操作,角色不同,被賦予的權限不同 |
Service | 服務,一種 OpenStack 服務,服務會對外暴露一個或多個端點,用戶可以通過這些端點訪問資源并執行操作 |
Endpoint | 端點,是指一個可以用來訪問某個具體服務的網絡地址 |
Token | 令牌,是允許訪問特定資源的憑證 |
Credential | 憑證,確認用戶身份的數據,如用戶的用戶名和密碼 |
5.2 域 Domain
一個域可以對應一個大的機構、一個數據中心,并且必須全局唯一
云的終端用戶可以在自己的Domain中創建多個 Project、User、Group 和 Role。具備對多個 Project 進行統一管理的能力
在 OpenStack 命令行中,使用 openstack domain
命令對域進行管理
5.2.1 查看域
使用命令 openstack domain list
查看當前系統的域列表
示例:
[root@controller ~(keystone_admin)]# openstack domain list
+----------------------------------+---------+---------+--------------------+
| ID | Name | Enabled | Description |
+----------------------------------+---------+---------+--------------------+
| default | Default | True | The default domain |
| ef4dc053cfcb41f38d496152f8c82be4 | heat | True | |
+----------------------------------+---------+---------+--------------------+
5.2.2 創建域
使用 openstack domain create
命令創建新的域,語法如下:
openstack domain create 域名# 示例
[root@controller ~(keystone_admin)]# openstack domain create domain-test
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | |
| enabled | True |
| id | dfe813d348db481eaacbf42bc57d6e86 |
| name | domain-test |
| options | {} |
| tags | [] |
+-------------+----------------------------------+
[root@controller ~(keystone_admin)]# openstack domain list # 查看列表驗證結果
+----------------------------------+-------------+---------+--------------------+
| ID | Name | Enabled | Description |
+----------------------------------+-------------+---------+--------------------+
| default | Default | True | The default domain |
| dfe813d348db481eaacbf42bc57d6e86 | domain-test | True | | # 創建成功
| ef4dc053cfcb41f38d496152f8c82be4 | heat | True | |
+----------------------------------+-------------+---------+--------------------+
Keystone 會通過認證信息(Credential,如密碼等)驗證用戶請求的合法性,通過驗證的用戶將會分配到一個特定的令牌,該令牌可以被當作后續資源訪問的一個通行證,并非全局唯一,只需要在域內唯一即可。
5.2.3 開啟多域登錄
開啟多域登錄需要將位于 /etc/openstack-dashboard
目錄下的 openstack 配置文件 local_settings
中的 OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT
參數值設置為 True
[root@controller ~(keystone_admin)]# vim /etc/openstack-dashboard/local_settings
# 配置項在第 83 行附近
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
完成后配置后,重啟 httpd
服務,然后就可以在網頁端看到登錄時有域選項
[root@controller ~(keystone_admin)]# systemctl restart httpd
進入系統后,也可以在左上角顯示當前項目的位置切換當前域
5.2.4 刪除域
使用 openstack domain delete
命令刪除域,再刪除之前,還需要先將域停用,語法如下:
# 1. 停用域
openstack domain set --disable 域名
# 2. 刪除域
openstack domain delete 域名# 示例
# ===== 1. 停用域 =====
[root@controller ~(keystone_admin)]# openstack domain set --disable domain-test# ===== 2. 刪除域 =====
[root@controller ~(keystone_admin)]# openstack domain delete domain-test# ===== 3. 查看結果 =====
[root@controller ~(keystone_admin)]# openstack domain list
+----------------------------------+---------+---------+--------------------+
| ID | Name | Enabled | Description |
+----------------------------------+---------+---------+--------------------+
| default | Default | True | The default domain |
| ef4dc053cfcb41f38d496152f8c82be4 | heat | True | |
+----------------------------------+---------+---------+--------------------+
5.3 用戶 User
Keystone 會通過認證信息(Credential,如密碼等)驗證用戶請求的合法性,通過驗證的用戶將會分配到一個特定的令牌,該令牌可以被當作后續資源訪問的一個通行證,并非全局唯一,只需要在域內唯一即可
在 OpenStack 命令行中,使用 openstack user
命令對用戶進行管理
5.3.1 查看用戶
使用命令 openstack user list
可以查看系統中的所有用戶
[root@controller ~(keystone_admin)]# openstack user list
+----------------------------------+------------+
| ID | Name |
+----------------------------------+------------+
| 9185e1a6e1104d599800b8dc991648fa | admin |
| 2691dc95f3904149b4b68c622a5f8fb3 | heat_admin |
| a16a1b2282854db7a3a67401e065efb0 | glance |
| 1b6c73cd0f1a46b39d38d428242c9536 | cinder |
| 4801377f70af47029d24de21327d0163 | nova |
| 1eafa4f84fba40ba9a7c5d84adc0f7d2 | placement |
| 488261f809784873b881a4ce95562557 | neutron |
| 47b260ab202a4e6ea9e76bfb16fe9693 | swift |
| 510e37e577fa43409ab9d294b8a4f163 | heat |
| 4f40959cd70a4bc69f4c2ea1d1d1b92d | heat-cfn |
| cb70cc5072144949a94fc7f413c2d372 | gnocchi |
| 2e5877e2b9124e85b0e552c085beb0ac | ceilometer |
| a00ae338fcc04c2db3d3a23e06ab4e1b | aodh |
| 43b88044bfcf47ed9efdaeee22dd2b2f | user1 |
+----------------------------------+------------+
使用命令 openstack user show 用戶名
可以查看指定用戶的詳細信息
[root@controller ~(keystone_admin)]# openstack user show admin
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| email | root@localhost |
| enabled | True |
| id | 9185e1a6e1104d599800b8dc991648fa |
| name | admin |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
5.3.2 創建用戶
使用 openstack user create
創建用戶,語法如下:
openstack user create [選項及參數] 用戶名
# 常用選項
# --password PASSWORD: 指定用戶通過 PASSWORD 密碼進行登錄
# --domain DOMAIN: 將用戶加入 DOMAIN 域,默認加入 Default 域
# --email EMAIL: 郵箱地址,默認為 root@localhost
# --description TEXT: 描述
# --password-Prompt: 交互式輸入密碼
# --enable: 啟用用戶(默認)
# --disable: 禁用用戶# 示例 1:創建一個用戶 user1,密碼為 huawei
[root@controller ~(keystone_admin)]# openstack user create --password huawei user1
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | 43b88044bfcf47ed9efdaeee22dd2b2f |
| name | user1 |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+# 示例 2:創建一個用戶 user2,密碼為 huawei,隸屬于 domain-test 域,默認為禁用狀態
[root@controller ~(keystone_admin)]# openstack user create --password huawei --domain domain-test --disable user2
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | 468eedb41b254a70b337d64f3c9ce24a | # domain-test 域 ID
| enabled | False | # 默認狀態為禁用
| id | 323b966bd1f1453cb8f85279e9dbce37 |
| name | user2 |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+# 查看結果
[root@controller ~(keystone_admin)]# openstack user list
+----------------------------------+------------+
| ID | Name |
+----------------------------------+------------+
| 9185e1a6e1104d599800b8dc991648fa | admin |
| ... | ... |
| 43b88044bfcf47ed9efdaeee22dd2b2f | user1 | # HERE
| 323b966bd1f1453cb8f85279e9dbce37 | user2 | # HERE
+----------------------------------+------------+
5.3.3 修改用戶信息
使用 openstack user set
命令修改用戶信息,語法如下:
openstack user set 選項與參數 用戶名
# 常用選項
# --password PASSWORD: 修改用戶密碼為 PASSWORD
# --email EMAIL: 修改用戶郵箱地址為 EMAIL
# --description TEXT: 修改描述
# --password-Prompt: 交互式修改密碼
# --enable: 啟用用戶
# --disable: 禁用用戶# 示例:修改 user2 的登錄密碼為 centos,設置其郵箱地址為 abc@123.com,啟用賬戶
[root@controller ~(keystone_admin)]# openstack user set --password centos --email abc@123.com --enable user2
[root@controller ~(keystone_admin)]# openstack user show user2
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | 468eedb41b254a70b337d64f3c9ce24a |
| email | abc@123.com | # 郵箱地址已修改
| enabled | True | # 賬號已啟用
| id | 323b966bd1f1453cb8f85279e9dbce37 |
| name | user2 |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
5.3.4 刪除用戶
使用命令 openstack user delete 用戶名
可以刪除用戶
# 示例:刪除用戶 user2
[root@controller ~(keystone_admin)]# openstack user delete user2
[root@controller ~(keystone_admin)]# openstack user list
+----------------------------------+------------+
| ID | Name |
+----------------------------------+------------+
| 9185e1a6e1104d599800b8dc991648fa | admin |
| ... | ... |
| 43b88044bfcf47ed9efdaeee22dd2b2f | user1 |
+----------------------------------+------------+