Как отправить несколько стандартных идентификаторов в ansible

#automation #ansible #ansible-2.x

#автоматизация #ansible #ansible-2.x

Вопрос:

У меня есть файл bat, подобный этому

 @echo off
echo please enter Hostname(For Example 127.0.0.1 OR . OR PC-Name)
set /p ServerName="Server Name: "
echo "---------------------ServerName-----------------------------"
echo %ServerName%
echo "-------------------------------------------------"
cls
echo Please Select Authentication Mode:
echo 1- Windows Authentication
echo 2- SQL Server Authentication
set /p AuthMode="Please Enter 1 OR 2: "
 

Я использую «stdin» в Win_shell, но он получает только один ввод, а AuthMode всегда равен null

my ansible playbook.yml:

  - name: Script
   Win_shell: D:Myscript.bat
   args:
       stdin: 127.0.0.1
 

есть ли какое-нибудь решение?

Комментарии:

1. expect Модуль должен работать и в Windows.

2. Можете ли вы показать мне в коде, пожалуйста?

Ответ №1:

Попробуйте передать многострочную строку:

 - name: Script
  Win_shell: D:Myscript.bat
  args:
      stdin: |
          127.0.0.1
          2
 

Вы можете проверить https://yaml-multiline.info / для объяснения того, как создавать многострочные строки в yaml (и почему приведенный выше | синтаксис означает «сохранять новые строки и иметь одну новую строку в конце»).