首页 > 解决方案 > ANSIBLE - 任务中未检测到任何动作

问题描述

这是错误似乎所在的违规行:

- name: Generate random password
  vars: 
    jupyter_pwd: "{{ lookup('password', '/root/jupyter_password length=10') }}"

我正在尝试生成一个随机密码并将其存储在jupyter_pwd变量中。

标签: ansible

解决方案


这不是 Ansible 的工作方式。它不像ie bash 的变量扩展。在 Ansible 中,您需要使用指定的操作(命令)来执行任务 - 在这种情况下,您需要使用支持执行 shell 命令或脚本的任务。这个中间层是必需的,因为 Ansible 可以在任何目标主机上运行您的 playbook,无论是远程机器还是本地机器,都使用相同的未更改 playbook。因此,它需要为任何任务提供中间人才能做到这一点,这就是 Ansible 行动的目的。

在您的情况下,您很可能需要命令操作:

- name: "Generate random password"
  command: command-to-execute 
  register: jupyter_pwd

command-to-execute您要运行的远程主机上的二进制文件或脚本在哪里。无论command-to-execute返回什么都会被捕获并作为jupyter_pwd变量提供给你的剧本的其余部分。有关详细信息,请参阅 [文档]。

如果commandaction 过于严格(如果你想链接多个 shell 工具),那么shell action 可能是要走的路。


推荐阅读