2016-01-26 3 views
1

Я пытаюсь использовать возможность проверки, чтобы проверить, происходят ли какие-либо аэрокосмические миграции, а затем выполнить задачу, когда миграции достигают 0. Для этого я использую модуль ansible shell для выведите общее количество миграций в stdout, зарегистрируйте этот вывод с возможностью доступа и получите на нем пробный тест.Ansible Registered Variable, не сохраняющаяся в задаче

анзибль, кажется, записи выходного сигнала правильно, но он постоянно отображает стандартный вывод, как «Hello World»

Вот мой тест сборник пьес:

--- 
- hosts: 
    - foo 
    - bar 
    serial: 1 
    gather_facts: no 
    tasks: 

    - name: check for migrates 
    shell: "echo 10" 
    register: as_migrates 

    - debug: var=as_migrates 

    - debug: msg = "{{ as_migrates.stdout }}" 
    - debug: msg = "{{ as_migrates.stdout_lines }}" 
    - debug: msg = "{{ as_migrates }}" 

Вот результат:

PLAY [foo;bar] ****************************************************** 

TASK: [check for migrates] **************************************************** 
changed: [foo-10] 

TASK: [debug var=as_migrates] ************************************************* 
ok: [foo-10] => { 
    "var": { 
     "as_migrates": { 
      "changed": true, 
      "cmd": "echo 10", 
      "delta": "0:00:00.001367", 
      "end": "2016-01-26 23:19:20.586245", 
      "invocation": { 
       "module_args": "echo 10", 
       "module_complex_args": {}, 
       "module_name": "shell" 
      }, 
      "rc": 0, 
      "start": "2016-01-26 23:19:20.584878", 
      "stderr": "", 
      "stdout": "10", 
      "stdout_lines": [ 
       "10" 
      ], 
      "warnings": [] 
     } 
    } 
} 

TASK: [debug msg = "{{ as_migrates.stdout }}"] ******************************** 
ok: [foo-10] => { 
    "msg": "Hello world!" 
} 

TASK: [debug msg = "{{ as_migrates.stdout_lines }}"] ************************** 
ok: [foo-10] => { 
    "msg": "Hello world!" 
} 

TASK: [debug msg = "{{ as_migrates }}"] *************************************** 
ok: [foo-10] => { 
    "msg": "Hello world!" 
} 

Мой вопрос: почему утилита debug var четко показывает правильное значение stdout и отображение as_migrats.stdout "Hello World"? Я знаю, что «Hello World» является сообщением по умолчанию для модуля сообщений. Так что регистр не сохраняется от одной задачи к другой? Я чувствую, что мне не хватает чего-то очевидного. У меня нет другой переменной с именем «as_migrates» в моей незаменимой среде.

ответ

3

анзибль это "пространство" чувствительно :-) Вы не можете иметь место после того, как msg

Попробуйте это:

- debug: msg="{{ as_migrates.stdout }}" 
    - debug: msg="{{ as_migrates.stdout_lines }}" 
    - debug: msg="{{ as_migrates }}" 
+0

Awesome! Так оно и было. Спасибо за быстрый ответ! –

Смежные вопросы