ETSI NFV-SOL VNF 变更当前 VNF 包,使用 StandardUserData¶
本文档描述了在使用 Tacker 中,当 UserData 类为 StandardUserData 时,如何变更 VNF 的当前 VNF 包。
注意
有关 StandardUserData(不使用 AutoScalingGroup 的 userdata 脚本),请参阅 UserData 脚本 (VNF LCM v2)。
注意
本文档的内容已确认使用以下 VNF 包有效。
请参考以下示例。
如果您使用这些示例,您需要添加以下文件
Definitions/etsi_nfv_sol001_common_types.yaml
Definitions/etsi_nfv_sol001_vnfd_types.yaml
Files/images/cirros-0.5.2-x86_64-disk.img
这些示例会进行以下更新
VDU1
更改镜像
更改规格
添加网络
VDU2
更改镜像
添加网络
VDU3
无变更
概述¶
下图显示了更改当前 VNF 包的概述。
请求更改当前 VNF 包
用户通过请求
change current vnf package,向 tacker-server 请求变更 VNF 实例的当前 VNF 包。调用 OpenStack Heat API
收到来自 tacker-client 的请求后,tacker-server 会将其重定向到 tacker-conductor。在 tacker-conductor 中,请求会再次根据 VNF 实例的内容重定向到适当的 infra-driver(在本例中为 OpenStack infra-driver)。然后,OpenStack infra-driver 调用 OpenStack Heat APIs。
变更 VM 的资源
OpenStack Heat 根据 API 调用变更 VM 的资源(镜像、规格、外部网络)。
先决条件¶
应安装以下软件包
tacker
python-tackerclient
至少需要一个状态为 INSTANTIATED 的 VNF 实例。有关实例化 VNF 的过程,请参阅 ETSI NFV-SOL VNF 部署为使用 LCM 操作 User Data 的 VM。
有关上传 VNF 包的操作,请参阅 VNF 包。
注意
您可以直接通过镜像或卷部署 VM。因此,在更新 VM 的镜像时,将存在两种情况。
使用通用 VNF 包和 flavor_id 进行实例化,然后使用相应链接中的 VNF 包执行 change current vnf package 操作,您可以以以下两种方式更新 VM 的镜像。
将通过镜像创建的 VM 更改为通过新镜像创建的 VM
将通过卷创建的 VM 更改为通过新卷创建的 VM
更改当前 VNF 包¶
如前提条件中所述,在执行更改当前 VNF 包之前,必须先创建 VNF。
注意
当前,此操作仅支持 Change Current VNF Package 的某些功能。
有几种方法可以更新 VDU,但在 Bobcat 版本中,Tacker 仅支持
RollingUpdate类型。您可以通过upgrade_type参数进行设置。支持的更新
更改 VM 的镜像
更改 VM 的规格
修改、添加和删除外部网络
不支持的更新
根据 VNF 包增加或减少 VNFc 的数量
添加和删除整个 VDU
在执行变更当前 VNF 包之前,您需要上传您想要更改的 VNF 包。
CLI 命令的详细信息在 v2 Tacker 的 VNF 生命周期管理 中描述。
注意
如果您想在变更当前 VNF 包之前和之后更改 HOT 定义,您需要更改 nested 目录下的文件名。在本文档中的操作示例中,文件名在变更当前 VNF 包之前和之后如下所示。
VDU1
之前:BaseHOT/simple/nested/VDU1.yaml
之后:BaseHOT/simple/nested/VDU1-ver2.yaml
VDU2
之前:BaseHOT/simple/nested/VDU2.yaml
之后:BaseHOT/simple/VDU2-ver2.yaml
对于变更当前 VNF 包,您需要在运行命令之前准备一个 JSON 格式的定义文件。
sample_param_file_for_standard_user_data.json
{
"vnfdId": "5b09fc55-5324-47b4-9f3d-70d1ca59a765",
"extVirtualLinks": [{
"id": "ext_vl_id_net4",
"resourceId": "1dad756e-a9d2-4c49-b490-d26940c6cbaf",
"extCps": [{
"cpdId": "VDU1_CP4",
"cpConfig": {
"VDU1_CP4_1": {
"cpProtocolData": [{
"layerProtocol": "IP_OVER_ETHERNET",
"ipOverEthernet": {
"ipAddresses": [{
"type": "IPV4",
"numDynamicAddresses": 1
}]
}
}]
}
}
},
{
"cpdId": "VDU2_CP4",
"cpConfig": {
"VDU2_CP4_1": {
"cpProtocolData": [{
"layerProtocol": "IP_OVER_ETHERNET",
"ipOverEthernet": {
"ipAddresses": [{
"type": "IPV4",
"numDynamicAddresses": 1
}]
}
}]
}
}
}]
}],
"extManagedVirtualLinks": [{
"id": "ext_managed_vl_1",
"vnfVirtualLinkDescId": "internalVL1",
"resourceId": "4daf6f6c-8f19-4cc6-96b5-0e3ccc9c7c93"
}],
"additionalParams": {
"upgrade_type": "RollingUpdate",
"lcm-operation-coordinate-old-vnf": "./Scripts/coordinate_old_vnf.py",
"lcm-operation-coordinate-new-vnf": "./Scripts/coordinate_new_vnf.py",
"vdu_params": [{
"vdu_id": "VDU1",
"old_vnfc_param": {
"cp_name": "VDU1_CP1",
"username": "ubuntu",
"password": "ubuntu"
},
"new_vnfc_param": {
"cp_name": "VDU1_CP1",
"username": "ubuntu",
"password": "ubuntu"
}
},
{
"vdu_id": "VDU2",
"old_vnfc_param": {
"cp_name": "VDU2_CP1",
"username": "ubuntu",
"password": "ubuntu"
},
"new_vnfc_param": {
"cp_name": "VDU2_CP1",
"username": "ubuntu",
"password": "ubuntu"
}
}],
"lcm-operation-user-data": "./UserData/userdata_standard.py",
"lcm-operation-user-data-class": "StandardUserData",
"nfv": {
"VDU": {
"VDU1-0": {
"name": "VDU1-a-001-change_vnfpkg"
},
"VDU1-1": {
"name": "VDU1-a-010-change_vnfpkg"
},
"VDU1-2": {
"name": "VDU1-a-011-change_vnfpkg"
}
}
}
},
"vimConnectionInfo": {
"vim1": {
"accessInfo": {
"password": "devstack",
"project": "nfv",
"projectDomain": "Default",
"region": "RegionOne",
"userDomain": "Default",
"username": "nfv_user"
},
"extra": {
"new-key": "new-val"
},
"interfaceInfo": {
"endpoint": "https:///identity/v3"
},
"vimId": "defb2f96-5670-4bef-8036-27bf61267fc1",
"vimType": "ETSINFV.OPENSTACK_KEYSTONE.V_3"
}
},
"vnfConfigurableProperties": {
"key": "value"
},
"extensions": {
"key": "value"
}
}
注意
vnfdId是您上传的新 VNF 包的 VNFD id。extVirtualLinks是一个可选参数。此操作可以更改 VNF 实例的外部 CP。extManagedVirtualLinks是一个可选参数。请注意,如果 VNF 实例使用extManagedVirtualLinkInfo,则需要在请求参数中设置extManagedVirtualLinks,无论是否更改。lcm-operation-coordinate-old-vnf和lcm-operation-coordinate-new-vnf是 Tacker 的独特实现,用于模拟 ETSI NFV-SOL002 v3.6.1 中的协调接口。主要是一个可以在 VM 创建后与 VM 通信、执行 VM 的特殊自定义或确认 VM 状态的脚本。vimConnectionInfo是一个可选参数。此操作可以指定 VNF 实例的vimConnectionInfo。即使此操作指定与一个 VNF 实例关联的多个vimConnectionInfo,也只会使用其中一个用于生命周期管理操作。无法删除已注册的vimConnectionInfo的键。vnfConfigurableProperties和extensions是可选参数。与更新操作一样,这些值通过对请求参数中设置的值进行 JSON Merge Patch 与当前值进行更新。
您可以在 additionalParams 中设置以下参数
属性名称 |
基数 |
参数描述 |
|---|---|---|
upgrade_type |
1 |
文件更新操作方法的类型。指定 Blue-Green 或 Rolling update。 |
lcm-operation-coordinate-old-vnf |
0..1 |
模拟旧 VNF 的 CoordinateVNF 行为的脚本的文件路径。 |
lcm-operation-coordinate-new-vnf |
0..1 |
模拟新 VNF 的 CoordinateVNF 行为的脚本的文件路径。 |
vdu_params |
1..N |
要更新的目标 VDU 的 VDU 信息。 |
> vdu_id |
1 |
要更新的目标 VDU 的 VDU 名称。 |
> old_vnfc_param |
0..1 |
旧 VNFC 连接信息。用于 CoordinateVNF 操作中为了应用配置到 VNFC 的 ssh 连接。 |
>> cp_name |
1 |
要更新的旧 VNFC 的连接点名称。 |
>> username |
1 |
要更新的旧 VNFC 的用户名。 |
>> password |
1 |
要更新的旧 VNFC 的密码。 |
> new_vnfc_param |
0..1 |
新的 VNFC 连接信息。用于 CoordinateVNF 操作中为了应用配置到 VNFC 的 ssh 连接。 |
>> cp_name |
1 |
要更新的新 VNFC 的连接点名称。 |
>> username |
1 |
要更新的新 VNFC 的用户名。 |
>> password |
1 |
要更新的新 VNFC 的密码。 |
external_lb_param |
0..1 |
需要配置更改的负载均衡器信息。仅适用于 OpenStack VIM 的 Blue-Green 部署过程。 |
> ip_address |
1 |
负载均衡器服务器的 IP 地址。 |
> username |
1 |
负载均衡器服务器的用户名。 |
> password |
1 |
负载均衡器服务器的密码。 |
lcm-operation-user-data |
1 |
要使用的 UserData 文件名。 |
lcm-operation-user-data-class |
1 |
要使用的 UserData 类名。 |
nfv |
0..1 |
HOT 中使用的参数。 |
注意
当使用 StandardUserData 作为 UserData 时,需要在 additionalParams 中进行以下设置:
“lcm-operation-user-data”: “./UserData/userdata_standard.py”
“lcm-operation-user-data-class”: “StandardUserData”
如何更改通过镜像创建的 VM 的镜像¶
执行变更当前 VNF 包 CLI 命令。完成此变更操作后,您应该通过 Heat CLI 命令检查资源状态。
1. 检查操作之前和之后的堆栈的 ‘ID’ 和 ‘Stack Status’。这是为了确认操作之前和之后堆栈 ‘ID’ 没有更改,并且堆栈更新已成功更新。
2. 检查 VDU 及其父资源的 ‘physical_resource_id’ 和 ‘resource_status’。这是为了确认操作之前和之后 VDU 的 ‘physical_resource_id’ 没有更改,并且 ‘resource_status’ 已成功更新。
3. 检查操作之前和之后的 VDU 的 ‘image’ 信息。这是为了确认 VDU 的镜像已成功更改。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考。
操作前检查点 1
操作前的堆栈信息
$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
结果
+--------------------------------------+------------------------------------------+-----------------+ | ID | Stack Name | Stack Status | +--------------------------------------+------------------------------------------+-----------------+ | 74bd6e1f-6e69-49ad-a3b4-2af00f35d5a3 | vnf-63ae20b2-dbe0-4892-a06f-81dbb7396dfb | CREATE_COMPLETE | +--------------------------------------+------------------------------------------+-----------------+
操作前检查点 2
操作前的堆栈资源信息
$ openstack stack resource list 74bd6e1f-6e69-49ad-a3b4-2af00f35d5a3 \ --filter type='VDU1.yaml'
结果
+---------------+--------------------------------------+---------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+---------------+-----------------+----------------------+ | VDU1-0 | 5d6d3b48-4743-404f-a9a3-31750915d1fe | VDU1.yaml | CREATE_COMPLETE | 2023-12-04T09:47:40Z | +---------------+--------------------------------------+---------------+-----------------+----------------------+
操作前的 VDU 信息
$ openstack stack resource list 5d6d3b48-4743-404f-a9a3-31750915d1fe \ --filter type='OS::Nova::Server'
结果
+---------------+--------------------------------------+------------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+------------------+-----------------+----------------------+ | VDU1 | cb821a5e-91a6-4272-b953-f4e72350034b | OS::Nova::Server | CREATE_COMPLETE | 2023-12-04T09:47:41Z | +---------------+--------------------------------------+------------------+-----------------+----------------------+
操作前检查点 3
操作前的 VDU 详细信息
$ openstack stack resource show 5d6d3b48-4743-404f-a9a3-31750915d1fe VDU1 \ -f json | jq .attributes.image.id
结果
"6813ef65-0344-48e6-a726-22cb714bef1b"执行变更当前 VNF 包
整个 VNF 的更改当前 VNF 包执行
$ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \ ./sample_param_file_for_standard_user_data.json \ --os-tacker-api-version 2
结果
Change Current VNF Package for VNF Instance 63ae20b2-dbe0-4892-a06f-81dbb7396dfb has been accepted.操作后检查点 1
操作后的堆栈信息
$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
结果
+--------------------------------------+------------------------------------------+-----------------+ | ID | Stack Name | Stack Status | +--------------------------------------+------------------------------------------+-----------------+ | 74bd6e1f-6e69-49ad-a3b4-2af00f35d5a3 | vnf-63ae20b2-dbe0-4892-a06f-81dbb7396dfb | UPDATE_COMPLETE | +--------------------------------------+------------------------------------------+-----------------+
注意
“堆栈状态”过渡到 UPDATE_COMPLETE。
操作后检查点 2
操作后的堆栈资源信息
$ openstack stack resource list 74bd6e1f-6e69-49ad-a3b4-2af00f35d5a3 \ --filter type='VDU1-ver2.yaml'
结果
+---------------+--------------------------------------+----------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+----------------+-----------------+----------------------+ | VDU1-0 | 5d6d3b48-4743-404f-a9a3-31750915d1fe | VDU1-ver2.yaml | UPDATE_COMPLETE | 2023-12-06T05:20:01Z | +---------------+--------------------------------------+----------------+-----------------+----------------------+
操作后的 VDU 信息
$ openstack stack resource list 5d6d3b48-4743-404f-a9a3-31750915d1fe \ --filter type='OS::Nova::Server'
结果
+---------------+--------------------------------------+------------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+------------------+-----------------+----------------------+ | VDU1 | cb821a5e-91a6-4272-b953-f4e72350034b | OS::Nova::Server | UPDATE_COMPLETE | 2023-12-06T05:19:08Z | +---------------+--------------------------------------+------------------+-----------------+----------------------+
注意
‘resource_status’ 转换为 UPDATE_COMPLETE。
操作后检查点 3
操作后的 VDU 详细信息
$ openstack stack resource show 5d6d3b48-4743-404f-a9a3-31750915d1fe VDU1 \ -f json | jq .attributes.image.id
结果
"8879b7f5-8d5f-4752-a740-c067002fa430"注意
您可以检查 ‘attributes.image.id’ 是否已从 ‘6813ef65-0344-48e6-a726-22cb714bef1b’ 更改为 ‘8879b7f5-8d5f-4752-a740-c067002fa430’。
如何更改通过卷创建的 VM 的镜像¶
执行变更当前 VNF 包 CLI 命令。完成此变更操作后,您应该通过 Heat CLI 命令检查资源状态。
1. 检查操作之前和之后的堆栈的 ‘ID’ 和 ‘Stack Status’。这是为了确认操作之前和之后堆栈 ‘ID’ 没有更改,并且堆栈更新已成功更新。
2. 检查 VDU 及其父资源的 ‘physical_resource_id’ 和 ‘resource_status’。这是为了确认操作之前和之后 VDU 的 ‘physical_resource_id’ 已更改,VDU 父资源的 ‘physical_resource_id’ 在操作之前和之后没有更改,并且 VDU 的 ‘resource_status’ 已成功创建,VDU 父资源的 ‘resource_status’ 已成功更新。
3. 检查操作之前和之后的 VDU 的 ‘os-extended-volumes:volumes_attached’ 信息。这是为了确认 VDU 的镜像已成功更改。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考。
操作前检查点 1
操作前的堆栈信息
$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
结果
+--------------------------------------+------------------------------------------+-----------------+ | ID | Stack Name | Stack Status | +--------------------------------------+------------------------------------------+-----------------+ | 74bd6e1f-6e69-49ad-a3b4-2af00f35d5a3 | vnf-63ae20b2-dbe0-4892-a06f-81dbb7396dfb | CREATE_COMPLETE | +--------------------------------------+------------------------------------------+-----------------+
操作前检查点 2
操作前的堆栈资源信息
$ openstack stack resource list 74bd6e1f-6e69-49ad-a3b4-2af00f35d5a3 \ --filter type='VDU2.yaml'
结果
+---------------+--------------------------------------+---------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+---------------+-----------------+----------------------+ | VDU2-0 | 0417d111-780a-4efd-b47b-8108e4437502 | VDU2.yaml | CREATE_COMPLETE | 2023-12-04T09:47:40Z | +---------------+--------------------------------------+---------------+-----------------+----------------------+
操作前的 VDU 信息
$ openstack stack resource list 0417d111-780a-4efd-b47b-8108e4437502 \ --filter type='OS::Nova::Server'
结果
+---------------+--------------------------------------+------------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+------------------+-----------------+----------------------+ | VDU2 | 35fb4948-66b1-4c1a-86e5-328793889f5d | OS::Nova::Server | CREATE_COMPLETE | 2023-12-04T09:47:42Z | +---------------+--------------------------------------+------------------+-----------------+----------------------+
操作前检查点 3
操作前的 VDU 详细信息
$ openstack stack resource show 0417d111-780a-4efd-b47b-8108e4437502 VDU2 \ -f json | jq '.attributes."os-extended-volumes:volumes_attached"[].id'
结果
"5e12516f-7726-411f-8693-e0b20649d3c7"执行变更当前 VNF 包
整个 VNF 的更改当前 VNF 包执行
$ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \ ./sample_param_file_for_standard_user_data.json \ --os-tacker-api-version 2
结果
Change Current VNF Package for VNF Instance 63ae20b2-dbe0-4892-a06f-81dbb7396dfb has been accepted.操作后检查点 1
操作后的堆栈信息
$ openstack stack list -c 'ID' -c 'Stack Name' -c 'Stack Status'
结果
+--------------------------------------+------------------------------------------+-----------------+ | ID | Stack Name | Stack Status | +--------------------------------------+------------------------------------------+-----------------+ | 74bd6e1f-6e69-49ad-a3b4-2af00f35d5a3 | vnf-63ae20b2-dbe0-4892-a06f-81dbb7396dfb | UPDATE_COMPLETE | +--------------------------------------+------------------------------------------+-----------------+
注意
“堆栈状态”过渡到 UPDATE_COMPLETE。
操作后检查点 2
操作前的堆栈资源信息
$ openstack stack resource list 74bd6e1f-6e69-49ad-a3b4-2af00f35d5a3 \ --filter type='VDU2-ver2.yaml'
结果
+---------------+--------------------------------------+----------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+----------------+-----------------+----------------------+ | VDU2-0 | 0417d111-780a-4efd-b47b-8108e4437502 | VDU2-ver2.yaml | UPDATE_COMPLETE | 2023-12-06T05:20:02Z | +---------------+--------------------------------------+----------------+-----------------+----------------------+
操作后的 VDU 信息
$ openstack stack resource list 0417d111-780a-4efd-b47b-8108e4437502 \ --filter type='OS::Nova::Server'
结果
+---------------+--------------------------------------+------------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+------------------+-----------------+----------------------+ | VDU2 | b4380e6a-5f8f-4fa4-b2a9-bc8026a19428 | OS::Nova::Server | CREATE_COMPLETE | 2023-12-06T05:18:42Z | +---------------+--------------------------------------+------------------+-----------------+----------------------+
注意
‘resource_status’ 转换为 CREATE_COMPLETE。‘physical_resource_id’ 已从 ‘35fb4948-66b1-4c1a-86e5-328793889f5d’ 更改为 ‘b4380e6a-5f8f-4fa4-b2a9-bc8026a19428’。
操作后检查点 3
操作后的 VDU 详细信息
$ openstack stack resource show 0417d111-780a-4efd-b47b-8108e4437502 VDU2 \ -f json | jq '.attributes."os-extended-volumes:volumes_attached"[].id'
结果
"2c55612d-78cb-4d42-b9de-8f65e382a067"注意
您可以检查 ‘attributes.os-extended-volumes:volumes_attached.id’ 是否已从 ‘5e12516f-7726-411f-8693-e0b20649d3c7’ 更改为 ‘2c55612d-78cb-4d42-b9de-8f65e382a067’。
如何更改 VM 的规格¶
执行变更当前 VNF 包 CLI 命令。完成此变更操作后,您应该通过 Heat CLI 命令检查资源状态。
1. 检查操作之前和之后的 VDU 的 ‘flavor’ 信息。这是为了确认 VDU 的规格已成功更改。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考。
操作前检查点 1
操作前的 VDU 详细信息
$ openstack stack resource show 0417d111-780a-4efd-b47b-8108e4437502 VDU2 \ -f json | jq .attributes.flavor
结果
{ "vcpus": 1, "ram": 512, "disk": 1, "ephemeral": 0, "swap": 0, "original_name": "m1.tiny", "extra_specs": { "hw_rng:allowed": "True" } }
执行变更当前 VNF 包
整个 VNF 的更改当前 VNF 包执行
$ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \ ./sample_param_file_for_standard_user_data.json \ --os-tacker-api-version 2
结果
Change Current VNF Package for VNF Instance 63ae20b2-dbe0-4892-a06f-81dbb7396dfb has been accepted.操作后检查点 1
操作后的 VDU 详细信息
$ openstack stack resource show 0417d111-780a-4efd-b47b-8108e4437502 VDU2 \ -f json | jq .attributes.flavor
结果
{ "vcpus": 1, "ram": 2048, "disk": 20, "ephemeral": 0, "swap": 0, "original_name": "m1.small", "extra_specs": { "hw_rng:allowed": "True" } }
注意
您可以检查 ‘attributes.flavor’ 已更改。在本例中,它已更改如下:
‘attributes.flavor.ram’ 已从 ‘512’ 更改为 ‘2048’
‘attributes.flavor.disk’ 已从 ‘1’ 更改为 ‘20’
‘attributes.flavor.original_name’ 已从 ‘m1.tiny’ 更改为 ‘m1.small’
如何更改外部网络¶
执行变更当前 VNF 包 CLI 命令。完成此变更操作后,您应该通过 Heat CLI 命令检查资源状态。
1. 检查外部网络资源的数量或 ‘physical_resource_id’。在添加和删除的情况下,这是为了确认操作之前和之后资源数量已更改。在修改的情况下,这是为了确认 ‘physical_resource_id’ 已更改。
2. 检查操作之前和之后的 VDU 的 ‘address’ 信息。这是为了确认 VDU 的外部网络已成功更改。有关 Heat CLI 命令的详细信息,请参阅 Heat CLI 参考。
操作前检查点 1
操作前的外部网络信息
$ openstack stack resource list 5d6d3b48-4743-404f-a9a3-31750915d1fe \ --filter type='OS::Neutron::Port'
结果
+---------------+--------------------------------------+-------------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+-------------------+-----------------+----------------------+ | VDU1_CP2 | 6c0b9376-ed4f-4738-af67-4f8d56673e46 | OS::Neutron::Port | CREATE_COMPLETE | 2023-12-04T09:47:41Z | | VDU1_CP1 | 08640038-877c-407f-b476-f3ca070585fb | OS::Neutron::Port | CREATE_COMPLETE | 2023-12-04T09:47:41Z | | VDU1_CP3 | 9ba1f07c-4fb4-4415-b9ad-d0619c19b046 | OS::Neutron::Port | CREATE_COMPLETE | 2023-12-04T09:47:41Z | +---------------+--------------------------------------+-------------------+-----------------+----------------------+
操作前检查点 2
操作前的外部网络详细信息
$ openstack stack resource show 5d6d3b48-4743-404f-a9a3-31750915d1fe VDU1 \ -f json | jq .attributes.addresses
结果
{ "net1": [ { "version": 4, "addr": "10.10.1.110", "OS-EXT-IPS:type": "fixed", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:ee:a7" } ], "net_mgmt": [ { "version": 4, "addr": "192.168.120.138", "OS-EXT-IPS:type": "fixed", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:f2:25:9a" } ], "vnf-63ae20b2-dbe0-4892-a06f-81dbb7396dfb-internalVL2-ckz5kksjbtfl": [ { "version": 4, "addr": "192.168.4.170", "OS-EXT-IPS:type": "fixed", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:c8:b4:e9" } ] }
执行变更当前 VNF 包
整个 VNF 的更改当前 VNF 包执行
$ openstack vnflcm change-vnfpkg VNF_INSTANCE_ID \ ./sample_param_file_for_standard_user_data.json \ --os-tacker-api-version 2
结果
Change Current VNF Package for VNF Instance 63ae20b2-dbe0-4892-a06f-81dbb7396dfb has been accepted.操作后检查点 1
操作后的外部网络信息
$ openstack stack resource list 5d6d3b48-4743-404f-a9a3-31750915d1fe \ --filter type='OS::Neutron::Port'
结果
+---------------+--------------------------------------+-------------------+-----------------+----------------------+ | resource_name | physical_resource_id | resource_type | resource_status | updated_time | +---------------+--------------------------------------+-------------------+-----------------+----------------------+ | VDU1_CP2 | 6c0b9376-ed4f-4738-af67-4f8d56673e46 | OS::Neutron::Port | CREATE_COMPLETE | 2023-12-04T09:47:41Z | | VDU1_CP1 | 08640038-877c-407f-b476-f3ca070585fb | OS::Neutron::Port | CREATE_COMPLETE | 2023-12-04T09:47:41Z | | VDU1_CP4 | 82eb5cee-9b20-4b5c-b769-f49aba71332a | OS::Neutron::Port | CREATE_COMPLETE | 2023-12-06T05:19:04Z | | VDU1_CP3 | 91515973-1432-4612-ab75-0538cef81933 | OS::Neutron::Port | CREATE_COMPLETE | 2023-12-06T05:19:06Z | +---------------+--------------------------------------+-------------------+-----------------+----------------------+
注意
外部网络资源的数量或 ‘resource_status’ 已更改。在本例中,数量已从 ‘3’ 更改为 ‘4’。
操作后检查点 2
操作后的外部网络详细信息
$ openstack stack resource show 5d6d3b48-4743-404f-a9a3-31750915d1fe VDU1 \ -f json | jq .attributes.addresses
结果
{ "net1": [ { "version": 4, "addr": "10.10.1.110", "OS-EXT-IPS:type": "fixed", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:25:ee:a7" } ], "net_mgmt": [ { "version": 4, "addr": "192.168.120.138", "OS-EXT-IPS:type": "fixed", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:f2:25:9a" } ], "vnf-63ae20b2-dbe0-4892-a06f-81dbb7396dfb-internalVL3-eefvoasioxui": [ { "version": 4, "addr": "192.168.5.164", "OS-EXT-IPS:type": "fixed", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:23:4a:86" } ], "net0": [ { "version": 4, "addr": "10.10.0.242", "OS-EXT-IPS:type": "fixed", "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:39:75:f0" } ] }
注意
您可以检查 ‘attributes.addresses’ 已更改。在本例中,已添加 ‘net0’。