添加示例 Ansible 管理驱动¶
https://blueprints.launchpad.net/tacker/+spec/add-ansible-mgmt-driver-sample
本规范描述了一个示例管理驱动,它使用 Ansible 实现 VNF 配置。
问题描述¶
在当前的社区代码中,没有使用 Ansible 实现 VNF 配置的管理驱动。Ansible 是一种通用的配置管理工具。
提议的变更¶
使用特定的 LCM 和以下 VNF 包启用 VNF 配置。
通过使用此驱动,我们可以增加配置选项,而无需在 VNF 中包含特定的设置。由于 Ansible 根据 Playbook 执行,因此在从单个 VNF 包部署多个 VNF 时,具有执行统一配置的优势。
1) 支持 LCM 的 Ansible 驱动配置点¶
此示例 Ansible 驱动支持 LCM 的以下配置点。
instantiation_end
scale_start
scale_end
heal_end
termination_start
2) 支持 VNF 包¶
使用具有以下结构的 VNF 包执行 VNF 配置。Ansible 驱动程序中有两个配置点。
VNF Package
!----TOSCA-Metadata
!----Definitions
!----Files
!----Scripts
!----ScriptANSIBLE
!----BaseHOT
!----UserData
ScriptANSIBLE¶
包含运行 Ansible 脚本的设置。这包括每个 LCM 运行的 Ansible Playbook 的路径,以及应根据每个 VDU 执行的顺序等。此外,这里定义了连接到主机的相关信息。连接用户名、SSH _ Key 信息等。
vdus:
VDUA:
config:
order: 1
vm_app_config:
instantiation_end:
- path: Scripts/VDUA-instantiation.yaml
order: 0
heal_end:
- path: Scripts/VDUA-healing.yaml
order: 0
VDUB:
config:
order: 1
vm_app_config:
instantiation_end:
- path: Scripts/VDUB-instantiation.yaml
order: 0
heal_end:
- path: Scripts/VDUB-healing.yaml
order: 0
BaseHOT¶
用户需要设置一个 IP 地址来连接到 VNF 以进行 VNF 配置。此示例驱动程序使用 HOT 输出参数来指定用于 VNF 配置的端口。
outputs:
mgmt_ip-VDUA:
value:
get_attr:
- CP1
- fixed_ips
- 0
- ip_address
Scripts¶
包含在每个 LCM 上运行的 Playbook。它们在每个 LCM 操作期间执行 vnflcm 驱动程序和 ScriptANSIBLE 指定的 Playbook。
Ansible 驱动程序示例在与 Tacker 相同的服务器上使用 Ansible 服务运行。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
Wataru Juso <w-juso@nec.com>
- 其他贡献者
Aldinson C. Esto <esto.aln@nec.com>
工作项¶
在 vnflcm_driver.py 中添加 mgmt_driver I/F 的参数。
在 tacker/samples/mgmt_driver/ansible 中添加 Ansible 驱动程序示例
依赖项¶
无
测试¶
无
文档影响¶
完成使用此示例驱动程序的用户的文档。
如何查找先决条件
如何创建包
如何使用此示例驱动程序操作 LCM
参考资料¶
无