【问题标题】:ansible playbook errors out while trying to to run python script尝试运行python脚本时出现ansible playbook错误
【发布时间】:2019-01-03 20:06:41
【问题描述】:

在使用 ansible 滚动重启集群时,我想运行 python 脚本来验证重启后没有任何问题。所以我正在尝试使用 ansible 运行传递参数的 python 脚本。下面是我使用它失败的代码

错误!此任务“python”有额外的参数,仅允许在以下模块中使用:command、win_command、shell、win_shell、script、include、include_vars、include_tasks、include_role、import_tasks、import_role、add_host、group_by、set_fact、raw、meta

- hosts: tag_name
  gather_facts: yes
  become: true
  serial: 1
  tasks:
    - name: execute python script
      local_action: python script.py -r us-east-1,us-west-2 -n tag -e test -s tag -k "pemfile" -u ec2-user

【问题讨论】:

  • 为了以后参考,当您将预先格式化的代码粘贴到帖子中时,请立即选择它并键入 Ctrl+K 或单击界面中的{} 按钮。这将正确格式化代码。
  • 当然谢谢。下次会这样做

标签: python ansible


【解决方案1】:

我认为错误是正确的,因为“命令”和“外壳”是您可以为其指定参数的两个最常见的模块。要使用参数在本地主机上执行 python 脚本,请使用“command”和“local_action”,如下所示。

local_action: command python script.py -r us-east-1,us-west-2 -n tag -e test -s tag -k "pemfile" -u ec2-user

【讨论】:

  • 要使用命令,我需要将脚本复制到远程节点,在 python 脚本中,我在同一个 repo 中使用一些文件。我无法访问我要访问的机器。我想在本地运行 python 脚本。
  • 尝试失败,出现 sudo 错误。所以它会尝试从远程主机 ssh 回到我的本地机器?致命:[myhost -> 127.0.0.1]:失败! => { "changed": false, "failed": true, "module_stderr": "sudo: 需要密码\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1
  • 如果我制作了gather_facts:不。我可以使用相同的剧本少数命令在远程主机上运行而在本地运行很少吗?
  • delegate_to 指令可用于为特定任务选择特定主机。我相信您可以尝试通过添加“命令”来运行您的原始代码;模块。试试这个:local_action: command python script.py -r us-east-1,us-west-2 -n tag -e test -s tag -k "pemfile" -u ec2-user
  • 我正在尝试在远程主机上运行一个命令,然后从本地运行 python 脚本,如果使用它试图从远程机器 ssh 到本地 - hosts: tag gather_facts: yes become: true serial: 1 tasks: - name: Reboot task command: /sbin/reboot - name: execute install script local_action: command python script.py -r us-east-1,us-west-2 -n tag -e test -s tag -k "pemfile" -u ec2-user
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2021-06-09
  • 2022-10-08
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2021-09-13
相关资源
最近更新 更多