要将一个对象列表传递给Python脚本,可以使用Ansible的with_items
关键字和register
模块来实现。
下面是一个示例代码:
- name: 调用Python脚本
hosts: localhost
gather_facts: no
tasks:
- name: 创建对象列表
set_fact:
my_objects:
- {name: 'object1', value: 1}
- {name: 'object2', value: 2}
- {name: 'object3', value: 3}
- name: 调用Python脚本
script: my_script.py
register: python_output
with_items: "{{ my_objects }}"
在上面的代码中,首先使用set_fact
模块创建一个名为my_objects
的对象列表。然后,通过script
模块调用Python脚本my_script.py
,并使用with_items
关键字将my_objects
列表中的每个对象作为参数传递给脚本。最后,使用register
模块将脚本的输出存储在python_output
变量中。
在Python脚本my_script.py
中,您可以使用sys.argv
来获取传递给脚本的参数。以下是一个示例脚本:
import sys
# 获取传递给脚本的参数
object_name = sys.argv[1]
object_value = sys.argv[2]
# 打印参数
print(f"对象名称:{object_name}")
print(f"对象值:{object_value}")
通过sys.argv
,您可以在脚本中获取传递的对象名称和值,并对其进行进一步处理。