Как переопределить дочерний элемент параметра по умолчанию в ansible? - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть следующий набор параметров в role / downloader / defaults / main.yml

download:
  location: "/tmp/download"
  file: "EXAMPLE.tar.gz"
  url: "http://<url>/repo//"
  file_permission: '755'
  checksum: md5:e207d015e0a435193afbc82e15bba19c 
  force_download: False

И в другой роли я попытался переопределить несколько параметров, как показано ниже

meta/main.yml
    ---
    dependencies:
      - role: downloader
        vars:
          download:
            file: LINUX_X86-64.tar.gz
            location: "/tmp/download"

Но это привело к неопределенности значения неопределенной ошибки. Есть ли способ справиться с этим?

1 Ответ

1 голос
/ 27 февраля 2020

Я полагаю, что вы заинтересованы в настройке default_hash_behavior, см. https://docs.ansible.com/ansible/latest/reference_appendices/config.html#default -ha sh -behaviour .

Я не могу помочь с примером, поскольку у меня есть не использовался ранее.

Однако я видел рекомендации по разделению переменных в основном по этой причине.

Например, вместо определения переменной как ha sh,

download:
  location: "/tmp/download"
  file: "EXAMPLE.tar.gz"

может быть проще сделать каждую уникальную переменную.

download_location: "/tmp/download"
download_file: "EXAMPLE.tar.gz"

Надеюсь, что поможет!

РЕДАКТИРОВАТЬ: Как предлагается по ссылке на Наверху моего поста, возможно, фильтр combine также может решить эту проблему для вас: https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#combining -hashes-dictionaries

...