前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VNFD模板参数化

VNFD模板参数化

作者头像
后端云
发布2018-10-24 11:38:40
2.6K0
发布2018-10-24 11:38:40
举报
文章被收录于专栏:后端云后端云

概要

VNFD参数化可以实现通过单个VNFD文件和不同的VDU的参数以及值进行多次部署。

相反,若使用非参数化的VNFD,因为是参数的值都是不可变的,静态的,这样会限制通过单个VNFD同时部署VNF的数量。例如,部署一个非参数化的含有固定IP地址的实例,再次通过该VNFD部署的时候,若不删除第一次生产的VNF实例将会导致一个错误。

非参数化的VNFD模板

下面是一个非参数化的VNFD例子。下一节将举例如何下面的非参数化的VNFD模板可以被参数化以及在部署多VNFs时重用。

代码语言:javascript
复制
template_name: cirros_user_data
description: Cirros image
service_properties:
    Id: cirros
    vendor: ACME
    version: 1
    type:
        - router
        - firewall
vdus:
    vdu1:
        id: vdu1
        vm_image: cirros-0.3.4-x86_64-uec
        instance_type: m1.tiny
        service_type: firewall
        mgmt_driver: noop
        user_data: |
            #!/bin/sh
            echo “my hostname is `hostname`” > /tmp/hostname
            df -h > /home/cirros/diskinfo
        user_data_format: RAW
        network_interfaces:
            management:
                network: net_mgmt
                management: True
                addresses:
                    - 192.168.120.11
            pkt_in:
                network: net0
            pkt_out:
                network: net1
        placement_policy:
            availability_zone: nova
        auto-scaling: noop
        monitoring_policy: noop
        failure_policy: noop
        config:
            param0: key0
            param1: key1

参数化的VNFD模板

该小节将对上节的模板做参数化以达到重用和对同一模板进行多次部署VNFs。作为演示,假设终端用户要在每一次部署VNF时对下面的参数赋不同的值: instance_type, user_data, user_data_format and management interface IP addresses

下一步在部署的时候替代下面的参数值{ get_input: }。例如,实例类型m1.tiny替代instance_type: {get_input: flavor}。get_input是模板中的关键字,表示在部署VNF的时候有值提供给参数instance_type。

当参数化 instance_type, user_data, user_data_format and management interface IP addresses时,上一节的模板将如下:

代码语言:javascript
复制
template_name: cirros_user_data
description: Cirros image
service_properties:
    Id: cirros
    vendor: ACME
    version: 1
    type:
        - router
        - firewall
vdus:
    vdu1:
        id: vdu1
        vm_image: cirros-0.3.4-x86_64-uec
        instance_type: {get_input: flavor }
        service_type: firewall
        mgmt_driver: noop
        user_data: {get_input: user_data_value}
        user_data_format: {get_input: user_data_format_value}
        network_interfaces:
            management:
                network: net_mgmt
                management: True
                addresses: { get_input: mgmt_ip}
            pkt_in:
                network: net0
            pkt_out:
                network: net1
        placement_policy:
            availability_zone: nova
        auto-scaling: noop
        monitoring_policy: noop
        failure_policy: noop
        config:
            param0: key0
            param1: key1

在VNF部署时候需要提供的包含参数和值文件

下面的例子是部署时候需要提供的包含参数和值文件,用于在部署VNF时替代上面的模板中的参数化部分。 在关键字‘param’下面包含变量和其值,用于替换VNFD模板中的参数化内容。没有关键字‘param’将导致VNF部署失败。

代码语言:javascript
复制
vdus:
    vdu1:
        param:
            flavor: m1.tiny
            mgmt_ip:
                - 192.168.120.11
            user_data_format_value: RAW
            user_data_value: |
                #!/bin/sh echo “my hostname is hostname” > /tmp/hostname df -h > /home/cirros/diskinfo

要点总结:

  • 若你想在部署多VNF时重用VNFD那么就参数化你的模板
  • 使用参数化的VNFD,在部署时需要提供VNFD模板中参数的值,形式为 {get_input: },‘param_value_name’ 为部署时候需要提供的包含参数和值文件中的变量。
  • 部署时候需要提供的包含参数和值文件格式为yaml,参数的值在每一次部署均为不同。
  • 注意IP地址要为下面的格式(部署时候需要提供的包含参数和值文件中) param_name_value: - xxx.xxx.xxx.xxx
  • 通过python-tackerclient的vnf-create命令指定参数化VNFD模板以及包含参数和值文件的例子:“vnf-create –vnfd-name –param-file –name ”
  • 也可通过 Horizon UI 在生成VNF时指定参数的值
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后端云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概要
  • 非参数化的VNFD模板
  • 参数化的VNFD模板
  • 在VNF部署时候需要提供的包含参数和值文件
  • 要点总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档