2016-09-15 3 views
0

У меня есть игра ниже, в которой я пытаюсь остановить экземпляры WAS на сервере AIX.передать переменную как скрипт в Ansible

--- 
    - hosts: all 
    vars_files: 
    - /etc/ansible/conf/var.yml 
    tasks: 
    - name: stop websphere instances 
     script: {{ was_script }} {{ item }} 
     with_items: "{{ was_inst }}" 

В файле var.yml переменные was_script и was_inst указаны как переменные. Теперь, если я жестко программирую скрипт вместо was_script, он работает. Но это не работает, если я называю это переменной. Он говорит, что это синтаксическая ошибка YAML, но я не могу понять, что это за ошибка.

+0

Вставьте сообщение об ошибке, пожалуйста. В нем есть ответ. –

+0

'Ошибка! Синтаксис Ошибка при загрузке YAML.' 'Нарушитель Похоже, что строка:' ' - имя: остановка WebSphere instances' ' скрипт: {{was_script}} {{пункт}} '' ^ here' – kottapar

+0

и есть объяснение того, что вы должны делать на следующей строке. –

ответ

1

Стрелка ^ here указывает на линию script: {{ was_script }} {{ item }}.
Вы должны указать его script: "{{ was_script }} {{ item }}", потому что он начинается с брекетов.
В документах есть примечание о YAML gotchas.

+0

Большое спасибо; Это помогло, хотя я столкнулся с новой ошибкой. В настоящее время плейер не знает, что скрипт не найден. По какой-то странной причине он ищет в/etc/ansible/playbooks вместо каталога, о котором я упоминал в var.yml '' failed ": true," msg ":" файл или модуль не существует:/etc/ansible/playbooks/[u \ "/ tmp/stop_was.sh '"] ")' – kottapar

+0

Я запустил его, используя debug, и вот что я нашел: 'Debugger invoked (debug) p vars [' was_script '] [u'/TMP/stop_was.sh '] (отладки) вары [' was_script '] = '/ TMP/stop_was, ш' (отладки) р вары [' was_script '] '/TMP/stop_was.sh'' и после этого все получилось. – kottapar

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