**我想从ansible剧本中运行Python脚本,并输入参数。**我该怎么做?
我尝试了command,但它似乎不接受任何输入参数,我也尝试了script,但它似乎只考虑bash脚本。PS:我将输入参数作为--extra-vars。
command
script
--extra-vars
eivgtgni1#
我可以使用以下语句运行脚本:
- name: Run Py script command: /path/to/script/processing.py {{ N }} {{ bucket_name }} become: yes become_user: root
这就解决了问题。
ajsxfq5m2#
否,script模块适用于所有类型的脚本你必须在python脚本文件的第一行给予#!/usr/bin/python。
#!/usr/bin/python
# Example from Ansible Playbooks - script: /some/local/script.py 1234
Python文件示例:
#!/usr/bin/python import sys print 'Number of arguments:', len(sys.argv), 'arguments.' print '1st Argument :', str(sys.argv[1])
uqxowvwt3#
关于
并且从技术上讲,包括command模块本身,以及内联代码can just be used with facts,因此包括--extra-vars。
--- - hosts: test become: false gather_facts: false tasks: - name: Python inline code example command: /usr/bin/python args: stdin: | import glob print(glob.glob("/home/{{ ansible_user }}/*")) register: results - name: Show result debug: msg: "{{ results.stdout }}"
...即使(内联代码)不是使用Ansible及其功能的推荐方式。
3条答案
按热度按时间eivgtgni1#
我可以使用以下语句运行脚本:
这就解决了问题。
ajsxfq5m2#
否,
script
模块适用于所有类型的脚本你必须在python脚本文件的第一行给予
#!/usr/bin/python
。Python文件示例:
uqxowvwt3#
关于
command
,但它似乎不接受任何输入参数。*并且从技术上讲,包括
command
模块本身,以及内联代码can just be used with facts,因此包括--extra-vars
。...即使(内联代码)不是使用Ansible及其功能的推荐方式。