ansible - ANSIBLE - 任务中未检测到任何动作
问题描述
这是错误似乎所在的违规行:
- name: Generate random password
vars:
jupyter_pwd: "{{ lookup('password', '/root/jupyter_password length=10') }}"
我正在尝试生成一个随机密码并将其存储在jupyter_pwd
变量中。
解决方案
这不是 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
变量提供给你的剧本的其余部分。有关详细信息,请参阅 [文档]。
如果command
action 过于严格(如果你想链接多个 shell 工具),那么shell action 可能是要走的路。
推荐阅读
- sql-server - 如何在 SQL Server 上执行文本到列
- imagemagick - webp 格式是否比 JPEG 更有效?
- c++ - c++线程函数指针实现返回错误invalid use of non-static member function
- arduino - ATTINY84:反转字节顺序的奇怪问题
- python - 我如何将我的 awk 命令变成 python 命令
- c# - 如何识别授予使用 Microsoft Graph 和 C# 的应用程序的所有权限?
- java - 无法使用 PAM、Java 连接到 MariaDB
- sql - 使用三个表进行查询,加入 2 个,计算 2 列从第 3 个匹配的记录?
- marklogic - MarkLogic - 基于 JSON 对象的路径搜索(不使用路径范围索引)
- nginx - 我运行了“certbot delete --cert-name”。重启 Nginx 失败