Синтаксическая ошибка при загрузке YAML. \ N найден символ, который не может запустить токен - PullRequest
0 голосов
/ 21 января 2020

Я новичок в YAML и не могу найти решение этой ошибки. Мой main.yml устанавливает переменные ansible_host и actions и вызывает mail.yml.

Mail.yml
- name: set variables
  set_fact:
    currentDateTime: "{{lookup('pipe','date \"+%Y-%m-%d %H:%M\"')}}

- name: send email
  mail:
    host: smtp.domain.com
    port: 25
    to: John Doe <john.doe@gmail.com>
    from: {{ ansible_host }}@domain.com
    subject: Please perform {{ actions }} on {{ currentDateTime }}
    body: Run {{ ansible_host }}

Нет вкладок (только пробелы), и я попытался добавить кавычки "" к значениям в mail, но все еще Получение:

"Syntax error while loading YAML.\n found character that cannot start any token\n\nThe error appears to be in 
'mail.yml': line 11, column 33. The offending line appears to be:\n\n  to: John Doe <john.doe@gmail.com>."

Любая помощь будет принята с благодарностью.

Спасибо.

1 Ответ

0 голосов
/ 21 января 2020

Вам не хватает закрытия " на

currentDateTime: "{{lookup('pipe','date \"+%Y-%m-%d %H:%M\"')}}

Другая проблема может быть в этой строке:

from: {{ ansible_host }}@domain.com

Если {{ ansible_host }} оценивается как пустая строка, это будет быть недопустимым, поскольку @ является зарезервированным символом в YAML, который не должен начинать скаляр. Вы должны процитировать это:

from: "{{ ansible_host }}@domain.com"
...