问题描述
我正在尝试将变量循环到剧本中,但我不断收到以下错误消息
TASK [Add policy package to model device] ********************************************************************************************************************************************************************
Failed: [fmg01] (item={'device_name': 'FGT1','device_ip': '192.168.0.103','group_name': 'Branch_Office','policy_package': 'default','device_serial': 'FGVM01TM12345678'}) => {"ansible_loop_var": "item","changed": false,"item": {"device_ip": "192.168.0.103","device_name": "FGT1","device_serial": "FGVM01TM12345678","group_name": "Branch_Office","policy_package": "default"},"Meta": {"status": {"code": -10,"message": "The data is invalid for selected url"},"url": "/pm/pkg/adom/root"},"unreachable": false}
以下是我的YML剧本。当我使用静态变量(写出一个IP地址和序列号作为字符串)时,它工作得很好
---
- name: Add model device to FMG and install Policy Package
hosts: fmg01
# gather_facts: no
connection: httpapi
collections:
- fortinet.fortimanager
vars_files:
- inventory.yml
tasks:
- name: Add model device
fmgr_dvm_cmd_add_device:
loose_validation: true
method: exec
params:
- data:
adom: root
device:
# device action: add_model
mgmt_mode: 'fmg'
#os_ver: 6
#mr: 4
sn: '{{item.device_serial}}'
adm_pass: 'password'
adm_usr: 'admin'
ip: '{{item.device_ip}}'
loop: '{{device_list}}'
- name: Add policy package to model device
fmgr_pm_pkg_adom_obj:
loose_validation: true
method: set
url_params:
adom: root
params:
- data:
name: default
scope member:
- name: '{{item.device_serial}}'
vdom: root
type: pkg
loop: '{{device_list}}'
- name: Install policy package to model device
fmgr_securityconsole_install_package:
loose_validation: true
method: exec
params:
- data:
adom: root
pkg: default
scope:
- name: '{{item.device_serial}}'
vdom: root
loop: '{{device_list}}'
这是我的stock.yml文件。我在第一个任务中对此进行了测试。 ok传入了IP地址。我用device_serial参数测试了其他任务,但这没用。
#Feeds into playbook
#add_device / add_device_group
device_list:
- device_name: FGT1
device_ip: '192.168.0.103'
group_name: Branch_Office
policy_package: default
device_serial: 'FGVM01TM12345678'
解决方法
问题原来是 params 部分的缩进问题
- name: Add policy package to model device
fmgr_pm_pkg_adom_obj:
loose_validation: true
method: set
url_params:
adom: root
params:
- data:
name: default
scope member:
- name: '{{item.device_serial}}'
vdom: root
type: pkg
loop: '{{device_list}}'