ansible шаблон использует переменную и строку - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь заполнить переменную ansible:

  • "docker -ce", если в RedHat
  • "docker" в противном случае

следующие работы, но не очень чистые:

docker_edition: 'ce'
docker_package: docker{{ "-" if (ansible_os_family == "RedHat") else "" }}{{ docker_edition if (ansible_os_family == "RedHat") else "" }}

Я хотел бы написать это в одном троичном выражении, я попробовал следующее:

docker_package: "docker{{ (ansible_os_family == "RedHat") | ternary("","-{{ docker_edition }}") }}"
docker_package: docker{{ (ansible_os_family == "RedHat") | ternary("","-{{ docker_edition }}") }}
docker_package: docker{{ -{{ docker_edition }} if (ansible_os_family == "RedHat") else "" }}

но я не могу заставить это работать.

Для пояснения, сработало бы следующее:

{{ "docker-ce" if (ansible_os_family == "RedHat") else "docker" }}

но я хочу оставить переменную docker_edition отдельной, так как она используется в другом месте.

1 Ответ

0 голосов
/ 19 марта 2020

следующих работ:

docker_package: docker{{ "-" + docker_edition if (ansible_os_family == "RedHat") else "" }}
...