遇到控制台问题时随心所欲停止流浪

Vagrant with ansible stop when meet console questions

我正在为 PHP 安装 mongo 扩展程序以执行此任务

---
- name: Intall MongoDb PHP extension
  sudo: yes
  command: "pecl install mongo"

- name: Copy mongo extension INI to mods-available folder
  template: >
    src=mongodb_extension.ini.j2
    dest={{ php_conf_dir }}/mongodb.ini
    owner=root group root mode=644
- name: Enabling mongo config in PHP cli conf
  sudo: yes
  file: src={{ php_conf_dir }}/xhprof.ini  dest=/etc/php5/cli/conf.d/20-mongodb.ini state=link

- name: Enabling xhprof config in PHP fpm conf
  sudo: yes
  file: src={{ php_conf_dir }}/xhprof.ini  dest=/etc/php5/fpm/conf.d/20-mongodb.ini state=link
  notify: reload php-fpm

问题是它卡在这个 Intall MongoDb PHP extension

我尝试手动安装 mongo 扩展,看到控制台询问这个问题 Build with Cyrus SASL (MongoDB Enterprise Authentication) support? [否]:

我觉得问题出在这个问题上

有谁知道如何在ansible中回答这个问题,所以它可以运行规定?

非常感谢。

您可以用yesyes yes(如果您想回复'yes')或yes no(如果您想回复否)来回答提示。

所以,你可以这样来完成你的任务:

- name: Intall MongoDb PHP extension
  sudo: yes
  shell: "yes {{ php_install_mongo }} | pecl install mongo"

并在某处设置php_install_mongo(或删除var,并将其设置为固定值)。

请注意,它将对所有问题回复相同的答案(但在这种情况下 AFAIK 不相关)。

编辑:有一种使用小于运算符的更好看的替代方法:

- name: Intall MongoDb PHP extension
  sudo: yes
  shell: "pecl install mongo <<< '{{ php_install_mongo }}'"