openstack 客户端命令行简介
OpenStack Client(openstack 命令)是一个 统一的命令行工具,用于与 OpenStack 的 各个服务(如 Nova、Neutron、Cinder、Keystone 等)进行交互。以下是 openstack 命令的详细解释和常用命令示例。
基本用法
openstack
命令的基本语法如下:
openstack <service> <action> [options]
<service>
: OpenStack 服务名称(如 server、network、volume 等)。<action>
: 对服务执行的操作(如 create、list、delete 等)。[options]
: 可选参数,用于指定操作的详细信息。
常用命令分类
身份认证(Keystone)
Keystone 是 OpenStack 的身份认证服务,用于管理用户、项目、角色和域。
常用命令
- 列出用户:
(venv) [root@ubuntu2204 ~]#openstack user list
+----------------------------------+-------------------+
| ID | Name |
+----------------------------------+-------------------+
| 651bbd0eb5ea4e5098c2444f0e125309 | admin |
| 8fa8623c829842008a8c0ab01878530d | glance |
| 28f48ef6ec454e95bd8a3a3e58eeb31d | placement |
| 6bedfae6ed8e4a4997f3b9f87f8de745 | nova |
| 4fb76b1cc9334817a2e8db3ecd12cec1 | neutron |
| b6744c95272e4cd1a3853b12ba1cb44f | heat |
| 0e02e26ff3b64ebea02f43455627e812 | heat_domain_admin |
+----------------------------------+-------------------+
- 创建用户:
openstack user create --domain Default --password <password> <username>
- 列出项目:
(venv) [root@ubuntu2204 ~]#openstack project list
+----------------------------------+---------+
| ID | Name |
+----------------------------------+---------+
| 3c70793b4fe14133a360bc432b77ea58 | service |
| fec2f636dfb4459fa3ffb7b81d3c70e0 | admin |
+----------------------------------+---------+
- 创建项目:
openstack project create --domain Default <project-name>
- 列出角色:
(venv) [root@ubuntu2204 ~]#openstack role list
+----------------------------------+------------------+
| ID | Name |
+----------------------------------+------------------+
| 1c2049b698d948388e57744b4b17d6c0 | service |
| 867d46adacc14d46ae80419d8856d99b | heat_stack_user |
| 939764ab6e91490a981ce64f567569e6 | member |
| bb2638999db24d76ac1d339ab62935ca | heat_stack_owner |
| cd1701d33da84099a8b2c3f86e4347e6 | admin |
| db24b9c95ee1432191429b8f5a8e9520 | manager |
| e0c04efe8e50479f87515d38f32de73d | reader |
+----------------------------------+------------------+
- 分配角色:
openstack role add --project <project-name> --user <username> <role-name>
openstack role add --domain <domain-name> --user <user> <role-name>
计算服务(Nova)
Nova 是 OpenStack 的计算服务,用于管理虚拟机实例。
常用命令:
- 列出虚拟机实例:
openstack server list
- 创建虚拟机实例:
# flavor 是虚拟机的配置模板,定义了虚拟机的 CPU、内存和磁盘等资源。 # <flavor-name> 需要替换为你实际使用的 flavor 名称,例如 m1.small 或 m1.medium。 # image 是虚拟机的操作系统镜像,可以是 Linux、Windows 或其他操作系统的镜像。 # nic 用于指定虚拟机的网络接口。你可以通过 openstack network list 命令查看可用的网络及其 ID。 openstack server create --flavor <flavor-name> --image <image-name> --nic net-id=<network-id> <instance-name>
- 删除虚拟机实例:
openstack server delete <instance-id>
- 查看虚拟机详情:
openstack server show <instance-id>
- 启动/停止虚拟机:
openstack server start <instance-id> openstack server stop <instance-id>
网络服务(Neutron)
Neutron 是 OpenStack 的网络服务,用于管理网络、子网、路由器和安全组。
常用命令:
-
列出网络:
openstack network list
-
创建网络:
-
列出子网:
(venv) [root@ubuntu2204 ~]# openstack network list
+--------------------------------------+----------+--------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+----------+--------------------------------------+
| 780c435e-2a45-404d-a6fd-bd670bf656ac | public1 | d1cfcd50-040e-41b1-b3b5-df7e47be33ec |
| fd088459-bfe3-44e6-bc2b-46aa2d9de23f | demo-net | 11a98d9f-8750-47b4-b3e0-76e9f36d7fbb |
+--------------------------------------+----------+--------------------------------------+
- 创建子网:
openstack subnet create --network <network-name> --subnet-range <cidr> <subnet-name>
- 列出路由器:
(venv) [root@ubuntu2204 ~]# openstack router list
+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
| ID | Name | Status | State | Project | Distributed | HA |
+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
| e896c1f0-2c19-4690-9085-d1102bdae1d2 | demo-router | ACTIVE | UP | fec2f636dfb4459fa3ffb7b81d3c70e0 | False | False |
+--------------------------------------+-------------+--------+-------+----------------------------------+-------------+-------+
- 创建路由器:
openstack router create <router-name>
- 添加接口到路由器:
openstack router add subnet <router-name> <subnet-name>
块存储服务(Cinder)
Cinder 是 OpenStack 的块存储服务,用于管理卷和快照。
常用命令:
- 列出卷:
openstack volume list
- 创建卷:
openstack volume create --size <size-in-GB> <volume-name>
- 删除卷:
openstack volume delete <volume-id>
- 挂载卷到虚拟机:
openstack server add volume <instance-id> <volume-id>
- 卸载卷:
openstack server remove volume <instance-id> <volume-id>
镜像服务(Glance)
Glance 是 OpenStack 的镜像服务,用于管理虚拟机镜像。
常用命令:
- 列出镜像:
(venv) [root@ubuntu2204 ~]#openstack image list
+--------------------------------------+--------+--------+
| ID | Name | Status |
+--------------------------------------+--------+--------+
| 1c6924e2-5b1d-4bac-9bab-e90a6e63a383 | cirros | active |
+--------------------------------------+--------+--------+
- 上传镜像:
openstack image create --file <image-file> --disk-format qcow2 --container-format bare <image-name>
- 删除镜像:
openstack image delete <image-id>
2.6 对象存储服务(Swift)
Swift 是 OpenStack 的对象存储服务,用于管理对象和容器。
常用命令:
- 列出容器:
openstack container list
- 创建容器:
openstack container create <container-name>
- 上传对象:
openstack object create <container-name> <file-path>
- 下载对象:
openstack object save <container-name> <object-name>