在Ansible中使用参数运行Python脚本

vwoqyblh  于 2023-02-11  发布在  Python
关注(0)|答案(3)|浏览(215)

**我想从ansible剧本中运行Python脚本,并输入参数。**我该怎么做?

我尝试了command,但它似乎不接受任何输入参数,我也尝试了script,但它似乎只考虑bash脚本。
PS:我将输入参数作为--extra-vars

eivgtgni

eivgtgni1#

我可以使用以下语句运行脚本:

- name: Run Py script
  command: /path/to/script/processing.py {{ N }} {{ bucket_name }}
  become: yes
  become_user: root

这就解决了问题。

ajsxfq5m

ajsxfq5m2#

否,script模块适用于所有类型的脚本
你必须在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])
uqxowvwt

uqxowvwt3#

关于

  • 我想从Ansible剧本中运行Python脚本,并使用输入参数。......我尝试了command,但它似乎不接受任何输入参数。*

并且从技术上讲,包括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及其功能的推荐方式。

相关问题