首页 > 解决方案 > ANSIBLE - 对问题回答是否

问题描述

我正在编写一本可以升级我拥有的应用程序的剧本。升级的一部分意味着我被问到一个问题。

理想情况下,我希望能够对这些问题回答是/否,而不必为用户输入做任何形式的暂停或提示。

从我在网上阅读的内容来看,这绝对是可能的,但我似乎无法让它为我工作。

这是我的代码:

  - name: Upgrade
    expect:
      command: /tmp/bin/update_script.sh 
      environment:
        JAVA_HOME: /opt/java/
      responses:
        Question:
          - Do you want to use the standard cipher suites [N]: n

标签: ansibleprompt

解决方案


您正在混合您的响应类型。如果您提供一个列表,它不需要/不需要这个问题。如果您想专门将问题与响应匹配,请使用正则表达式将问题匹配为字典的键。

所以,版本1:

- name: Upgrade
  expect:
    command: /tmp/bin/update_script.sh 
    environment:
      JAVA_HOME: /opt/java/
    responses:
      Question:
        - n

或版本 2(检查我的正则表达式 *):

- name: Upgrade
  expect:
    command: /tmp/bin/update_script.sh 
    environment:
      JAVA_HOME: /opt/java/
    responses:
      Question:
        cipher: n

我用过 expect,但没用过 ansible 模块,那是几年前的事了,我从来没有用过太多。希望无论哪种方式都能按原样工作,但要准备好玩弄它。;)

祝你好运!


推荐阅读