如何使用Ansible任务处理需要输入的命令?

3

我正在学习Ansible,想知道如何编写一个任务来处理以下命令:

$<command> <options>

  username:
  email address:
  password:
  password (check):
< p > <command> <option> 要求四个变量,这些变量可以在playbook中硬编码。

感谢您提供的任何见解


1
http://docs.ansible.com/ansible/expect_module.html 的翻译 - Konstantin Suvorov
1个回答

4

使用expect模块:

- hosts: localhost
  tasks:
    - expect:
        command: command option
        responses:
          username: "John Doe"
          email: "joh@doe.com"
          password: "mypass"

非常感谢你,对于回复晚了我很抱歉。我用一个标准的命令进行了测试:'command: passwd <username>',它有效果。不幸的是,我的“命令选项”在要求输入之前返回了一个警告文本,导致任务崩溃。你知道我该如何解决这个问题吗? - user123892
@konstantin 当你想要向shell提供输入时,如果expect不支持shell,该怎么办? - Nijo
如果你想让它提示输入密码,而不是在脚本中硬编码密码,你会如何做呢? - alltej
我在playbooks中避免使用提示。通过-e参数、环境变量或其他查找方式传递变量。 - Konstantin Suvorov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接