Избегайте ansible для загрузки Dockerfile и других yml - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужно синхронизировать (rsyn c) некоторые Dockerfile, а также другие файлы .yml с удаленными компьютерами.
Эти файлы находятся в папке "host_vars /".

При запуске простой команды "синхронизировать" ansible Dockerfile читается и возникает ошибка из-за того, что Dockerfile не имеет формат yml ... (драма!).
Кроме того, если мне нужно развернуть docker -compose.yml возникает другая ошибка

Есть ли способ указать ansible не загружать некоторые выбранные файлы?

Установка других имен не работает.

Ошибка файла Docker:

ERROR! Syntax Error while loading YAML.
  did not find expected <document start>

The error appears to have been in '/.../Dockerfile line 4, column 1, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


RUN apt update && apt install -y graphite-carbon graphite-web nginx supervisor && apt-get autoclean
^ here

docker -compose.yml error

ERROR! failed to combine variables, expected dicts but got a 'dict' and a 'list': 
....

Спасибо Вам за любую помощь.

1 Ответ

2 голосов
/ 13 апреля 2020

Мне нужно синхронизировать (rsyn c) некоторые Dockerfile, а также другие .yml с удаленными машинами. Эти файлы находятся в папке "host_vars /".

Неуместно помещать файлы не в переменную в папку с именем host_vars. Ansible ожидает, что все файлы, найденные в host_vars и vars, будут либо JSON, либо парами ключ-значение в формате yaml, которые будут использоваться для создания неявных переменных.

Если вы хотите объединить файлы чтобы путешествовать вместе со своей ролью, поместите их в папку files; если они параметризованы, поместите их в папку templates, как видно из подробного руководства .

...