VIM 管理

本文档描述了在 Tacker 中使用 CLI 管理 VIM 的方法。

注意

本文档的内容已确认在使用 Tacker 2024.1 Caracal 和 Kubernetes 1.26 时有效。

先决条件

应安装以下软件包

  • tacker

  • python-tackerclient

VIM 管理 CLI 参考

1. 注册 VIM

  1. 使用 OpenStack 作为 VIM

    • 创建 OpenStack VIM 的 VIM 配置文件

      您可以使用一个设置脚本来生成 VIM 配置文件,或者按照 注册 VIM 的配置文件 中描述的方式从头开始编辑它。该脚本会从您的环境变量中查找配置参数,例如用户名或密码。以下是一个生成 OpenStack VIM 配置文件的示例,文件名为 vim_config.yaml。 在本文档中,TACKER_ROOT 是您服务器上 tacker 仓库的根目录。 PROJECT_NAMEOS_USER 应分别替换为将在 VIM 注册中使用的项目名称和用户名。

      $ bash TACKER_ROOT/tools/gen_vim_config.sh -p PROJECT_NAME --os-user OS_USER
      Config for OpenStack VIM 'vim_config.yaml' generated.
      

      注意

      如果由于 VIM 使用自签名证书等原因,需要禁用 VIM 证书验证,请使用 --os-disable-cert-verify 选项。

      您也可以使用示例配置文件 vim_config.yaml 代替使用该脚本。

      auth_url: 'http://192.168.56.10/identity'
      username: "nfv_user"
      password: "devstack"
      project_name: "nfv"
      domain_name: "default"
      project_domain_name: "default"
      user_domain_name: "default"
      cert_verify: "False"
      
    • 注册默认 OpenStack VIM

      应根据需要替换 DESCRIPTIONVIM_NAME

      $ openstack vim register --config-file vim_config.yaml --is-default \
        --description DESCRIPTION VIM_NAME
      

      结果

      +----------------+-------------------------------------------------+
      | Field          | Value                                           |
      +----------------+-------------------------------------------------+
      | auth_cred      | {                                               |
      |                |     "username": "nfv_user",                     |
      |                |     "user_domain_name": "default",              |
      |                |     "cert_verify": "False",                     |
      |                |     "project_id": null,                         |
      |                |     "project_name": "nfv",                      |
      |                |     "project_domain_name": "default",           |
      |                |     "auth_url": "http://10.0.2.15/identity/v3", |
      |                |     "key_type": "barbican_key",                 |
      |                |     "secret_uuid": "***",                       |
      |                |     "password": "***"                           |
      |                | }                                               |
      | auth_url       | http://10.0.2.15/identity/v3                    |
      | created_at     | 2024-06-10 01:17:50.762223                      |
      | description    | vim for nfv_user in nfv                         |
      | extra          |                                                 |
      | id             | a7298627-93f1-400f-9ef3-5d8749e20245            |
      | is_default     | True                                            |
      | name           | openstack-nfv-vim                               |
      | placement_attr | {                                               |
      |                |     "regions": [                                |
      |                |         "RegionOne"                             |
      |                |     ]                                           |
      |                | }                                               |
      | project_id     | 2e189ea6c1df4e4ba6d89de254b3a534                |
      | status         | ACTIVE                                          |
      | type           | openstack                                       |
      | updated_at     | None                                            |
      | vim_project    | {                                               |
      |                |     "name": "nfv",                              |
      |                |     "project_domain_name": "default"            |
      |                | }                                               |
      +----------------+-------------------------------------------------+
      
  2. 使用 Kubernetes 作为 VIM

    • 创建 Kubernetes VIM 的 VIM 配置文件

      与 OpenStack VIM 类似,您可以通过传递 -t k8s 选项来使用设置脚本生成 Kubernetes VIM 的 VIM 配置文件。以下是一个生成 OpenStack VIM 配置文件的示例,文件名为 vim_config.yaml。 在本文档中,TACKER_ROOT 是您服务器上 tacker 仓库的根目录。 PROJECT_NAME 应替换为将在 VIM 注册中使用的项目名称。

      $ bash tacker/tools/gen_vim_config.sh -p PROJECT_NAME -t k8s --k8s-use-cert
        Config for Kubernetes VIM 'vim_config.yaml' generated.
      

      另一方面,您也可以按照以下步骤从头开始为 Kubernetes 创建 VIM 配置文件。首先,收集 VIM 配置文件中所需的信息。

      • 获取 Kubernetes 集群的 IP 地址

        $ kubectl cluster-info
        Kubernetes control plane is running at https://10.0.2.15:6443
        
        To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
        
      • 创建 Kubernetes API 的密钥令牌

        $ vi default-token-k8s.yaml
        $ cat default-token-k8s.yaml
        apiVersion: v1
        kind: Secret
        metadata:
          name: default-token-k8svim
          annotations:
            kubernetes.io/service-account.name: "default"
        type: kubernetes.io/service-account-token
        
        $ kubectl create -f default-token-k8s.yaml
        secret/default-token-k8svim created
        
      • 授予 Kubernetes service-account 集群管理员角色

        $ kubectl create clusterrolebinding cluster-admin-binding \
          --clusterrole cluster-admin --serviceaccount=default:default
        
      • 检索密钥 bearer token

        $ kubectl get secret -o jsonpath="{.items[0].metadata.name}"
        default-token-k8svim
        
        $ kubectl get secret default-token-k8svim -o jsonpath="{.data.token}" | base64 --decode
        eyJhbGciOiJSUzI1NiIsImtpZCI6Ind1dmZuVV9NcGtILWhjaDJwWHNTVlZ2WTItd1NTQlRJbzlEVU1jOTBYX28ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZmF1bHQtdG9rZW4tazhzdmltIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIxNmViMTYxZS1mNTNlLTRmNWEtYjI5OS00MjczNDk5NGZlY2QiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWZhdWx0In0.XVQu-vssEgT2PnRTXMr3AoTI6RAjCU1tra3pXxafaNpZHvkRU8_BvWGaqt7qDKZkqyWRWm3K1G2T55U-h0KNNtPG6k1_kl8RG26c275cnFPryZT4t5fZELIqcbRW4tPw21YBIfNtZqC8zOolprmkcGRrIoDeLJYeRtv698CmpryaGBL1mux0FgUNyLoZ4e62XCFTTW86Ull9T5L92ZR08yHtrosnx3SGRnyt32o8NTteApDympYkmuR-QZrsmfknKgI3yFOGCW4TCVdCXwknMWpJvxE93_nCbGoenrPN2R9cMWySqE02YcWYSP6vTBkMKpctgLalWQHKXTo2DspKVg
        
      • 检索 SSL CA 证书

        $ kubectl get secret default-token-k8svim -o jsonpath="{.data.ca\.crt}" | base64 --decode
        -----BEGIN CERTIFICATE-----
        MIIDBTCCAe2gAwIBAgIIYAFM312rGhwwDQYJKoZIhvcNAQELBQAwFTETMBEGA1UE
        AxMKa3ViZXJuZXRlczAeFw0yNDA2MDQwMjUxMDZaFw0zNDA2MDIwMjU2MDZaMBUx
        EzARBgNVBAMTCmt1YmVybmV0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
        AoIBAQDf131+RFTzpxdk2jGkJLSJFS+oPxo9nPdRgiKVbSRyhrIQ0uoEDHVNYtSz
        8qR0mIZSvGIEgSFVW36AIysYPilxPHw53K9wzxKN1hEkw0ffnbPpF/4MLr+CMtcR
        UsFxKIqyRQAedOE3JS5v27R7uA+GdIDID6nN8UVNQYv1AicnvTFSOSfCIMBql6MV
        dgUAVlho9hpqBBVz2R0TrfwEQGtJXTwVKiXNXwWctCY7W8MBBw9EV/94v30dmNAE
        Dv+dauVB944XDl+g2Bp9n2l0JnNz9fA4BWJaLzVaBLsor49oyRY5BpDe456Zmvqx
        McO42cbJewsrlOAMP5QZeDZD6hGFAgMBAAGjWTBXMA4GA1UdDwEB/wQEAwICpDAP
        BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ9j2P78qCijHYekohBjR/mGxwmBzAV
        BgNVHREEDjAMggprdWJlcm5ldGVzMA0GCSqGSIb3DQEBCwUAA4IBAQB82mwOwNDy
        9UoNbNevalHglI3q/oqahwgQ+aURmNA78XZfxae+AMD6pR0EXGryKp1TXEFD0t6p
        f8BHPgD1V/HjURlGNMpEOyR+VR1g0Im605rkLoEJauFF7fe7C27fRy9NdFjiZ9ck
        bWxRgCfwro9R1CZyWumgi8D6RS+1LIh+WnFGWZZ2/3XZloDnad9v0cfq4ZNt8nYO
        doyiL3UVlnQpDHwuY6cKMwQNQZfRcZKZw80isCFe97ePeJ6m7qNezMVXFYOaSPXX
        ifDW2JlN544ERvnqWHqJ+ycylY49rrjOfXBtZo0B+fekScFweFmzk4VaOY/ePYEN
        tu82PpmIYiL1
        -----END CERTIFICATE-----
        

      然后,使用收集到的信息创建 VIM 配置文件。

      • 创建 Kubernetes VIM 的 VIM 配置文件

        $ vi vim_config_k8s.yaml
        $ cat vim_config_k8s.yaml
        auth_url: "https://10.0.2.15:6443"
        bearer_token: "eyJhbGciOiJSUzI1NiIsImtpZCI6Ind1dmZuVV9NcGtILWhjaDJwWHNTVlZ2WTItd1NTQlRJbzlEVU1jOTBYX28ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRlZmF1bHQtdG9rZW4tazhzdmltIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIxNmViMTYxZS1mNTNlLTRmNWEtYjI5OS00MjczNDk5NGZlY2QiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWZhdWx0In0.XVQu-vssEgT2PnRTXMr3AoTI6RAjCU1tra3pXxafaNpZHvkRU8_BvWGaqt7qDKZkqyWRWm3K1G2T55U-h0KNNtPG6k1_kl8RG26c275cnFPryZT4t5fZELIqcbRW4tPw21YBIfNtZqC8zOolprmkcGRrIoDeLJYeRtv698CmpryaGBL1mux0FgUNyLoZ4e62XCFTTW86Ull9T5L92ZR08yHtrosnx3SGRnyt32o8NTteApDympYkmuR-QZrsmfknKgI3yFOGCW4TCVdCXwknMWpJvxE93_nCbGoenrPN2R9cMWySqE02YcWYSP6vTBkMKpctgLalWQHKXTo2DspKVg"
        ssl_ca_cert: "-----BEGIN CERTIFICATE-----
        MIIDBTCCAe2gAwIBAgIIYAFM312rGhwwDQYJKoZIhvcNAQELBQAwFTETMBEGA1UE
        AxMKa3ViZXJuZXRlczAeFw0yNDA2MDQwMjUxMDZaFw0zNDA2MDIwMjU2MDZaMBUx
        EzARBgNVBAMTCmt1YmVybmV0ZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
        AoIBAQDf131+RFTzpxdk2jGkJLSJFS+oPxo9nPdRgiKVbSRyhrIQ0uoEDHVNYtSz
        8qR0mIZSvGIEgSFVW36AIysYPilxPHw53K9wzxKN1hEkw0ffnbPpF/4MLr+CMtcR
        UsFxKIqyRQAedOE3JS5v27R7uA+GdIDID6nN8UVNQYv1AicnvTFSOSfCIMBql6MV
        dgUAVlho9hpqBBVz2R0TrfwEQGtJXTwVKiXNXwWctCY7W8MBBw9EV/94v30dmNAE
        Dv+dauVB944XDl+g2Bp9n2l0JnNz9fA4BWJaLzVaBLsor49oyRY5BpDe456Zmvqx
        McO42cbJewsrlOAMP5QZeDZD6hGFAgMBAAGjWTBXMA4GA1UdDwEB/wQEAwICpDAP
        BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQ9j2P78qCijHYekohBjR/mGxwmBzAV
        BgNVHREEDjAMggprdWJlcm5ldGVzMA0GCSqGSIb3DQEBCwUAA4IBAQB82mwOwNDy
        9UoNbNevalHglI3q/oqahwgQ+aURmNA78XZfxae+AMD6pR0EXGryKp1TXEFD0t6p
        f8BHPgD1V/HjURlGNMpEOyR+VR1g0Im605rkLoEJauFF7fe7C27fRy9NdFjiZ9ck
        bWxRgCfwro9R1CZyWumgi8D6RS+1LIh+WnFGWZZ2/3XZloDnad9v0cfq4ZNt8nYO
        doyiL3UVlnQpDHwuY6cKMwQNQZfRcZKZw80isCFe97ePeJ6m7qNezMVXFYOaSPXX
        ifDW2JlN544ERvnqWHqJ+ycylY49rrjOfXBtZo0B+fekScFweFmzk4VaOY/ePYEN
        tu82PpmIYiL1
        -----END CERTIFICATE-----"
        project_name: "nfv"
        type: "kubernetes"
        
    • 注册 Kubernetes VIM

      应根据需要替换 DESCRIPTIONVIM_NAME

      $ openstack vim register --config-file vim_config_k8s.yaml \
        --description DESCRIPTION VIM_NAME
      

      结果

      +----------------+-----------------------------------------------------------------------------------------------------+
      | Field          | Value                                                                                               |
      +----------------+-----------------------------------------------------------------------------------------------------+
      | auth_cred      | {                                                                                                   |
      |                |     "bearer_token": "***",                                                                          |
      |                |     "ssl_ca_cert": "b'gAAAAABmZlbz0gFnRL-SpTszQF4KXje3GSL5H6NzZtwcRZNo3BWx0piwLihpLGy8yz6w85bD5a2B6 |
      |                | M4RRF1mnCPsiYYg5ENpZkD5rCVLyLuQOV4R0zvCyrtXmTYwki0nibw0zAaZxmjLmCncxvQXq7y_B5kzYPUtC607QFFhLsMWfAre |
      |                | M8lm-sassp9TqXvLgq_X98nWFXL0P5egyGedp3bPoiQdvVTNSAurtX-                                             |
      |                | yo7CRvmpvAaa2dvg_VyoQj1Oj9-iF_tLshNa0AASFkAdvWUyvnlbJJOG1rxXVbdZ7JWgnq3T9vC4hHE13GIrY-jRMRCjlfZPbC6 |
      |                | TNWs8ifJM0xr7sQjv66li79l8Xx60XZFxyKefYgZV4rEmh5hwglg6XEne2ZMoFV9rEqrRgmDK0cWGLNJNLvqXHtHOpCff8pHhlI |
      |                | Z5RuRvSttp84LyXvZsNryc2dHGYDsMXFgDuTxpkWemxxxgHzHq4UydADaGimfSkvcQRKmEEY8p3kPzAT9esxzL0Alp68BGm80yH |
      |                | 9Heovb11AeWsVealvOiK6WRkuucxSr31jlCKAIYKwLLymnFvfe9yc0IjZpHWa4SqwbyYvMtEUfebddCUMKS8GX_6aBkKKGQBbss |
      |                | 2Zbcg4l8aesblYTMN6LXhY5PciLTUyu_GcO7JVHACa61JeGyne64CTaycIvYfF9j19KJ5Tl9jeOgfjfeV855hJ41q8g4gTqaNAj |
      |                | _NBl61CPvsKp4le-1Vg9RuLgrX5HBRGW30dWYepQC1Mdu4VEQc-6txRxIUW4w-                                      |
      |                | EKxT8HC1DeWgFiPB4DouAbxiB1IxiUzWk8azj4Wg2rhd6iL9_MUPwZO_6-                                          |
      |                | O6L1AROdnoELNwNUWWdTiUrlSIkElOFzg3rs_Oa3Ee5jeaI86LSJFBEqj3PQ8RVCVjIolwA4i4r7CzoHLKf1YLRw3JJsEDUE0s3 |
      |                | xuNAkAkQTWqCK6kRL5CdENkRw1Nb-L62BMOwlPex324-eLzbgz2z54tM8tJ4Mf4kHkIS6Uk851J1jz0dwxSR6-              |
      |                | rPZTOquttUkYlUlR9NrfwfHitRbjT4YBngFP68npLsHEYEg_7-                                                  |
      |                | 1byYsv3kQk5RNPhfrovjDDOUpbDCAQ0nNC1MLoWGzJxP4OexbYu4qku0YYIGcs3YqbF2ArQNyBAdSDX7d7B-4w-             |
      |                | yRbSdtUcIiCU0LxUneXwB37YbyNyHYQihxS3efZmF9lyfheb2Hri3emIAVB-                                        |
      |                | QPJ8f27hFul1cC8rW1xYcTuZOynOJODTgERV4ehGt8I9P8ZmeqjyjEeADuc-Tpp-DrUMLmgR8sIjDdLsVG6loNFVuulp9Apr-Wn |
      |                | I45XkreFOdhKDMXfpt_xQfxlFOBB3VlOcAZfxZTLWymBwJktqscnIgWexjAa5vwe4BRUu8w8t2ZlgmI8phOeN7jVmSMtD8lC-   |
      |                | W8mb-l5-EFE9wo7y_xgIiD1SvnXPPQT_sXxckDhdEwBCqdMRJ-BWNKMoBQPWWFYvT3S_gNQqABovmAwFaxpi9v0hwfccJmWhre8 |
      |                | T_m73B6IN5P75l1yLgKFv1AoiVH0z0VcaJYTbIt9UwPc2VA=='",                                                |
      |                |     "auth_url": "https://10.0.2.15:6443",                                                           |
      |                |     "username": "None",                                                                             |
      |                |     "key_type": "barbican_key",                                                                     |
      |                |     "secret_uuid": "***"                                                                            |
      |                | }                                                                                                   |
      | auth_url       | https://10.0.2.15:6443                                                                              |
      | created_at     | 2024-06-10 01:29:24.234551                                                                          |
      | description    | k8s vim for nfv_user in nfv                                                                         |
      | extra          |                                                                                                     |
      | id             | 81dcd320-c61d-4d04-a794-4ea012801e4c                                                                |
      | is_default     | False                                                                                               |
      | name           | kubernetes-nfv-vim                                                                                  |
      | placement_attr | {                                                                                                   |
      |                |     "regions": [                                                                                    |
      |                |         "default",                                                                                  |
      |                |         "kube-node-lease",                                                                          |
      |                |         "kube-public",                                                                              |
      |                |         "kube-system"                                                                               |
      |                |     ]                                                                                               |
      |                | }                                                                                                   |
      | project_id     | 2e189ea6c1df4e4ba6d89de254b3a534                                                                    |
      | status         | ACTIVE                                                                                              |
      | type           | kubernetes                                                                                          |
      | updated_at     | None                                                                                                |
      | vim_project    | {                                                                                                   |
      |                |     "name": "nfv"                                                                                   |
      |                | }                                                                                                   |
      +----------------+-----------------------------------------------------------------------------------------------------+
      

帮助

$ openstack vim register --help
usage: openstack vim register [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
                              [--noindent] [--prefix PREFIX] [--max-width <integer>]
                              [--fit-width] [--print-empty] [--tenant-id TENANT_ID] --config-file
                              CONFIG_FILE [--description DESCRIPTION] [--is-default]
                              NAME

Register a new VIM

positional arguments:
  NAME          Set a name for the VIM

options:
  -h, --help            show this help message and exit
  --tenant-id TENANT_ID
                        The owner tenant ID or project ID
  --config-file CONFIG_FILE
                        YAML file with VIM configuration parameters
  --description DESCRIPTION
                        Set a description for the VIM
  --is-default          Set as default VIM

output formatters:
  output formatter options

  -f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
                        the output format, defaults to table
  -c COLUMN, --column COLUMN
                        specify the column(s) to include, can be repeated to show multiple columns

json formatter:
  --noindent            whether to disable indenting the JSON

shell formatter:
  a format a UNIX shell can parse (variable="value")

  --prefix PREFIX
                        add a prefix to all variable names

table formatter:
  --max-width <integer>
                        Maximum display width, <1 to disable. You can also use the CLIFF_MAX_TERM_WIDTH
                        environment variable, but the parameter takes precedence.
  --fit-width           Fit the table to the display width. Implied if --max-width greater than 0. Set the
                        environment variable CLIFF_FIT_WIDTH=1 to always enable
  --print-empty         Print empty table if there is no data to show.

This command is provided by the python-tackerclient plugin.

2. 列出 VIM

$ openstack vim list

结果

+--------------------------------------+--------------------+----------------------------------+------------+------------+--------+
| ID                                   | Name               | Tenant_id                        | Type       | Is Default | Status |
+--------------------------------------+--------------------+----------------------------------+------------+------------+--------+
| 81dcd320-c61d-4d04-a794-4ea012801e4c | kubernetes-nfv-vim | 2e189ea6c1df4e4ba6d89de254b3a534 | kubernetes | False      | ACTIVE |
| a7298627-93f1-400f-9ef3-5d8749e20245 | openstack-nfv-vim  | 2e189ea6c1df4e4ba6d89de254b3a534 | openstack  | True       | ACTIVE |
+--------------------------------------+--------------------+----------------------------------+------------+------------+--------+

帮助

$ openstack vim list --help
usage: openstack vim list [-h] [-f {csv,json,table,value,yaml}] [-c COLUMN]
                          [--quote {all,minimal,none,nonnumeric}] [--noindent]
                          [--max-width <integer>] [--fit-width] [--print-empty]
                          [--sort-column SORT_COLUMN] [--sort-ascending | --sort-descending]
                          [--long]

List VIMs that belong to a given tenant.

options:
  -h, --help            show this help message and exit
  --long                List additional fields in output

output formatters:
  output formatter options

  -f {csv,json,table,value,yaml}, --format {csv,json,table,value,yaml}
                        the output format, defaults to table
  -c COLUMN, --column COLUMN
                        specify the column(s) to include, can be repeated to show multiple columns
  --sort-column SORT_COLUMN
                        specify the column(s) to sort the data (columns specified first have a priority,
                        non-existing columns are ignored), can be repeated
  --sort-ascending      sort the column(s) in ascending order
  --sort-descending     sort the column(s) in descending order

CSV Formatter:
  --quote {all,minimal,none,nonnumeric}
                        when to include quotes, defaults to nonnumeric

json formatter:
  --noindent            whether to disable indenting the JSON

table formatter:
  --max-width <integer>
                        Maximum display width, <1 to disable. You can also use the CLIFF_MAX_TERM_WIDTH
                        environment variable, but the parameter takes precedence.
  --fit-width           Fit the table to the display width. Implied if --max-width greater than 0. Set the
                        environment variable CLIFF_FIT_WIDTH=1 to always enable
  --print-empty         Print empty table if there is no data to show.

This command is provided by the python-tackerclient plugin.

3. 显示 VIM

应将 VIM 替换为 VIM 的名称或 ID。

$ openstack vim show VIM

结果

+----------------+-------------------------------------------------+
| Field          | Value                                           |
+----------------+-------------------------------------------------+
| auth_cred      | {                                               |
|                |     "username": "nfv_user",                     |
|                |     "user_domain_name": "default",              |
|                |     "cert_verify": "False",                     |
|                |     "project_id": null,                         |
|                |     "project_name": "nfv",                      |
|                |     "project_domain_name": "default",           |
|                |     "auth_url": "http://10.0.2.15/identity/v3", |
|                |     "key_type": "barbican_key",                 |
|                |     "secret_uuid": "***",                       |
|                |     "password": "***"                           |
|                | }                                               |
| auth_url       | http://10.0.2.15/identity/v3                    |
| created_at     | 2024-06-10 01:17:51                             |
| description    | vim for nfv_user in nfv                         |
| extra          |                                                 |
| id             | a7298627-93f1-400f-9ef3-5d8749e20245            |
| is_default     | True                                            |
| name           | openstack-nfv-vim                               |
| placement_attr | {                                               |
|                |     "regions": [                                |
|                |         "RegionOne"                             |
|                |     ]                                           |
|                | }                                               |
| project_id     | 2e189ea6c1df4e4ba6d89de254b3a534                |
| status         | ACTIVE                                          |
| type           | openstack                                       |
| updated_at     | None                                            |
| vim_project    | {                                               |
|                |     "name": "nfv",                              |
|                |     "project_domain_name": "default"            |
|                | }                                               |
+----------------+-------------------------------------------------+

帮助

$ openstack vim show --help
usage: openstack vim show [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN] [--noindent]
                          [--prefix PREFIX] [--max-width <integer>] [--fit-width]
                          [--print-empty]
                          <VIM>

Display VIM details

positional arguments:
  <VIM>         VIM to display (name or ID)

options:
  -h, --help            show this help message and exit

output formatters:
  output formatter options

  -f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
                        the output format, defaults to table
  -c COLUMN, --column COLUMN
                        specify the column(s) to include, can be repeated to show multiple columns

json formatter:
  --noindent            whether to disable indenting the JSON

shell formatter:
  a format a UNIX shell can parse (variable="value")

  --prefix PREFIX
                        add a prefix to all variable names

table formatter:
  --max-width <integer>
                        Maximum display width, <1 to disable. You can also use the CLIFF_MAX_TERM_WIDTH
                        environment variable, but the parameter takes precedence.
  --fit-width           Fit the table to the display width. Implied if --max-width greater than 0. Set the
                        environment variable CLIFF_FIT_WIDTH=1 to always enable
  --print-empty         Print empty table if there is no data to show.

This command is provided by the python-tackerclient plugin.

4. 更新 VIM

应将 VIMDESCRIPTION 替换为 VIM 的名称或 ID 以及您想要描述。

$ openstack vim set --description DESCRIPTION VIM

结果

+----------------+-------------------------------------------------+
| Field          | Value                                           |
+----------------+-------------------------------------------------+
| auth_cred      | {                                               |
|                |     "username": "nfv_user",                     |
|                |     "user_domain_name": "default",              |
|                |     "cert_verify": "False",                     |
|                |     "project_id": null,                         |
|                |     "project_name": "nfv",                      |
|                |     "project_domain_name": "default",           |
|                |     "auth_url": "http://10.0.2.15/identity/v3", |
|                |     "key_type": "barbican_key",                 |
|                |     "secret_uuid": "***",                       |
|                |     "password": "***"                           |
|                | }                                               |
| auth_url       | http://10.0.2.15/identity/v3                    |
| created_at     | 2024-06-10 01:17:51                             |
| description    | new description of vim for nfv_user in nfv      |
| extra          |                                                 |
| id             | a7298627-93f1-400f-9ef3-5d8749e20245            |
| is_default     | True                                            |
| name           | openstack-nfv-vim                               |
| placement_attr | {                                               |
|                |     "regions": [                                |
|                |         "RegionOne"                             |
|                |     ]                                           |
|                | }                                               |
| project_id     | 2e189ea6c1df4e4ba6d89de254b3a534                |
| status         | ACTIVE                                          |
| type           | openstack                                       |
| updated_at     | 2024-06-10 01:41:55.437321                      |
| vim_project    | {                                               |
|                |     "name": "nfv",                              |
|                |     "project_domain_name": "default"            |
|                | }                                               |
+----------------+-------------------------------------------------+

帮助

$ openstack vim set --help
usage: openstack vim set [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN] [--noindent]
                         [--prefix PREFIX] [--max-width <integer>] [--fit-width]
                         [--print-empty] [--config-file CONFIG_FILE] [--name NAME]
                         [--description DESCRIPTION] [--is-default {True,False}]
                         VIM

Update VIM.

positional arguments:
  VIM           ID or name of vim to update

options:
  -h, --help            show this help message and exit
  --config-file CONFIG_FILE
                        YAML file with VIM configuration parameters
  --name NAME   New name for the VIM
  --description DESCRIPTION
                        New description for the VIM
  --is-default {True,False}
                        Indicate whether the VIM is used as default

output formatters:
  output formatter options

  -f {json,shell,table,value,yaml}, --format {json,shell,table,value,yaml}
                        the output format, defaults to table
  -c COLUMN, --column COLUMN
                        specify the column(s) to include, can be repeated to show multiple columns

json formatter:
  --noindent            whether to disable indenting the JSON

shell formatter:
  a format a UNIX shell can parse (variable="value")

  --prefix PREFIX
                        add a prefix to all variable names

table formatter:
  --max-width <integer>
                        Maximum display width, <1 to disable. You can also use the CLIFF_MAX_TERM_WIDTH
                        environment variable, but the parameter takes precedence.
  --fit-width           Fit the table to the display width. Implied if --max-width greater than 0. Set the
                        environment variable CLIFF_FIT_WIDTH=1 to always enable
  --print-empty         Print empty table if there is no data to show.

This command is provided by the python-tackerclient plugin.

5. 删除 VIM

应将 VIM 替换为 VIM 的名称或 ID。

$ openstack vim delete VIM

结果

All specified vim(s) deleted successfully

帮助

$ openstack vim delete --help
usage: openstack vim delete [-h] <VIM> [<VIM> ...]

Delete VIM(s).

positional arguments:
  <VIM>  VIM(s) to delete (name or ID)

options:
  -h, --help     show this help message and exit

This command is provided by the python-tackerclient plugin.