Ansible неоднозначное значение env - PullRequest
0 голосов
/ 11 июня 2019

Я получаю следующее предупреждение в Ansible:

[WARNING]: Non-string value found for env option. Ambiguous env options should be wrapped in quotes to avoid YAML parsing. This will become an error in Ansible 2.8. Key: PORT; value will be treated as: 12345

Так что я пошел и посмотрел источник этого значения и завернул все его экземпляры в кавычки. Или я так думал. Я все еще получаю предупреждение.

Итак, я пошел к тому месту в коде, где оно появилось, и похоже, что это так:

docker_container:
  env: '{{ params | combine(extra_params, {"PORT": my_port|int + amount|int * 10 })}}'

Это настройка для работы с несколькими экземплярами одного контейнера, каждый из которых получает уникальный порт, чтобы не мешать друг другу.

И я не уверен, как это исправить, не нарушая эту настройку. Можно ли снова привести его в строку после завершения расчета? Должен ли я сделать это заранее? Какой лучший вариант здесь?

1 Ответ

1 голос
/ 11 июня 2019

В качестве доступной документации для модуля docker_container в env состояния

Значения, которые анализатор YAML может анализировать как числа, логические значения или другие типы, должны быть заключены в кавычки (например, "true") во избежание потери данных.

поэтому вы должны преобразовать свой результат в строку в кавычках.

env: '{{ params | combine(extra_params, {"PORT": (my_port|int + amount|int * 10) | string })}}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...