Встраивание словарных данных из файла YAML в файл состояния

#salt-stack

#солевой стек

Вопрос:

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

Ниже приведены данные словаря в файле YAML.

 ---
var1:
  values:
    val1: "string1"
    val2: "string2"
 

Ниже приведен файл состояния, в который я записал данные словаря YAML, как показано ниже.

 {%- load_yaml as var %}
var1:
  values:
    val1: "string1"
    val2: "string2"
{%- endload %}
 

Я не уверен, правильно ли это, кто-нибудь может мне помочь.

Ответ №1:

Я получил ответ, файл yaml можно указать в файле состояния, как показано ниже.

 {% load_yaml as values %}
    var1: 'string1'
    var2: 'string2'
{% endload %}
 

Ответ №2:

Я думаю, вы ищете import_yaml функциональность.

Файл YAML var.yml с некоторыми переменными:

 ---
var1:
  values:
    val1: "string1"
    val2: "string2"
 

Файл example.sls состояния:

 {% import_yaml 'path/to/var.yml' as var_data %}

show-imported-variables:
  module.run:
  - name: test.echo
  - text: {{ var_data['var1']['values'] }}
 

Теперь, когда файл YAML был импортирован, var_data мы можем получить доступ к values нему внутри словаря.

При запуске файла состояния:

 ----------
ret:
    ----------
    val1:
        string1
    val2:
        string2
 

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

1. У меня нет доступа к другим файлам, нужно встраивать код только в файл состояния. Необходимо использовать данные словаря внутри файла состояния и получить доступ к переменным

2. Итак, где этот файл YAML, в котором есть данные словаря (согласно вашему вопросу)? Вы пытаетесь использовать его повторно или спрашиваете, как создать переменную с данными словаря в файле состояния?

3. Я упомянул в вопросе файл YAML с данными словаря. Создайте переменную с данными словаря и используйте ее в файле состояния

4. Когда вы говорите » данные словаря в файле YAML » и «у вас нет доступа к другим файлам «, это звучит противоречиво.