|
|||||||
Как в Ansible преобразовать список в набор bash-переменных для использования внутри модуля shell
Время создания: 15.04.2022 12:27
Текстовые метки: ansible, список, bash, переменная, shell
Раздел: Компьютер - Linux - Оркестрация - Ansible
Запись: xintrea/mytetra_syncro/master/base/16500148648na84e1ih0/text.html на raw.github.com
|
|||||||
|
|||||||
Иногда нужно передать в модуль shell набор системных переменных, заданных в виде YAML списка. Как это можно сделать? Пример возможного решения приведен ниже: --- - hosts: ourHost vars: lines: - "isProduction=true" - "targetSPO=free" - "themeSupport=default" tasks: - set_fact: result: "" - set_fact: result: | {{result}} export {{line}} loop: "{{lines}}" loop_control: loop_var: line - name: Набор переменных debug: msg: '{{result}}' - shell: | # Установка переменных {{result}} # Проверка доступности значений переменных varA=$user echo variable A is $varA register: shellResult - name: Проверка значений debug: msg: '{{shellResult}}' Примечание: в цикле формирования команд в переменную result происходит наполнение данной переменной "с накоплением". То есть к уже имеющимся строкам переменной result в цикле добавляются новые строки, содержащие команду export. Данный код имеет список переменных lines, который содержит и имена переменных и их значения. Далее происходит проход по данному списку и формирование bash-команд для установки значений переменных. Данные команды скапливаются в переменной result. Затем эти bash-команды выполняются в задаче shell, причем команды установки значений переменных вызываются самыми первыми, а затем можно писать код, который использует эти переменные. Естественно, заданные таким образом переменные сохраняются в bash-среде только в текущей shell-задаче. При последующих вызовах shell-задач, надо в каждом вызове задачи shell вначале вызывать команды установки переменных. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|