Как определить имя dict в YAML с помощью ansible

#ansible #yaml

#ansible #yaml

Вопрос:

У меня есть несколько файлов YAML, которые я должен обработать.

Например.:

    some_dict:
      key1: value1
      key2: value2
  

Здесь проблема в том, что я не знаю («some_dict»), это имя может быть любым внутри YAML. Теперь, как мне вычислить имя dict с помощью ansible?

Я использую ansible 2.4.

Комментарии:

1. Не добавляйте благодарность в свой пост, это не поможет сделать вашу проблему более понятной, поэтому ей не место. Пожалуйста, также рассмотрите возможность использования средства проверки орфографии перед отправкой

Ответ №1:

Приведенная ниже игра

 vars_files:
  some_dict.yml
tasks:
  - debug:
      var: some_dict
  

с помощью файла some_dict.yml

 some_dict:
  key1: value1
  key2: value2
  

дает:

     "some_dict": {
    "key1": "value1", 
    "key2": "value2"
}
  

Это то, что вы ищете?

Комментарии:

1. Нет. Я не знаю о его собственном значении (some_dict). во-первых, я должен получить само значение имени словаря из yaml. Здесь, в этом примере, это «some_dict». Например, если я отлаживаю переменную, я должен получить «some_dict» в качестве выходных данных.

2. Я не понимаю вашего утверждения «Например, если я отлаживаю переменную …», О какой переменной вы говорите?

Ответ №2:

Я предполагаю, что это имя переменной, которое вы не знаете, верно?

В этом случае, я полагаю, вам нужно будет выполнить итерацию по выводам {{ hostvars[inventory_hostname] }} с помощью with_sequence:, чтобы найти ключ, который вы ищете