Я пишу руководство по автоматизации установки анаконды. Я использую модуль Ansible expect, чтобы отвечать на запросы установки. Вот мой код.
---
- hosts: all
become: yes
become_method: sudo
gather_facts: true
tasks:
- name: Run the installer Anaconda
expect:
command: bash ~/Downloads/Anaconda3-2019.03-Linux-x86_64.sh
responses:
"Please, press ENTER to continue" : "\n"
"More" : " "
" Do you accept the license terms" : "yes"
"Press ENTER to confirm the location" : "\n"
"Do you wish the installer to initialize Anaconda3 by running conda init": "yes"
Вот ошибка, которую я получаю. ЗАДАЧА [Запустить установщик Anaconda] ****************************************** ***
фатальный: [192.168.6.230]: НЕ ВЫПОЛНЕНО! => {"changed": false, "msg": "Неподдерживаемые параметры для (ожидаемого) модуля: принимаете ли вы условия лицензии, хотите ли вы, чтобы установщик инициализировал Anaconda3, запустив conda init, Подробнее, пожалуйста, нажмите ENTER, чтобы продолжить , Нажмите ENTER для подтверждения местоположения. Поддерживаемые параметры включают: chdir, command, create, echo, remove, answers, timeout "}
Вам нужно сделать отступ для ваших ответов:
responses:
- "Please, press ENTER to continue" : "\n"
- "More" : " "
- " Do you accept the license terms" : "yes"
- "Press ENTER to confirm the location" : "\n"
- "Do you wish the installer to initialize Anaconda3 by running conda init": "yes"
В противном случае они рассматриваются только как следующие параметры для expect
раздел. YAML сильно зависит от правильного отступа.