Вызов переменных Ansible внутри сценария оболочки

Если имя переменной не является статической строкой (или, скорее, :Если часть перед =содержит что-либо недопустимое в имени переменной ), то присвоение не распознается как таковое.

Вам нужноeval:

tmp_var="$(my_def_get_hddstaus "$hdd")"
eval status_$hdd=\""$tmp_var"\"

редактировать

Вы можете echoзначение снова использовать evalили косвенно:

eval echo \"\$status_$hdd\"

или

var_name="status_$hdd"
echo "${!var_name}"
1
08.10.2019, 12:46
1 ответ

Можете ли вы изменить свой сценарий?

Если можете, в начале скрипта получите два нужных вам параметра, например:

remote_host="$1"
ansible_host="$2"

Затем в вашем плейбуке вы можете вызвать свой скрипт таким образом:

myscript {{remote_host}} {{ansible_host}}

Давненько я не играл с ansible. Убедитесь, что синтаксис правильный:)

2
28.04.2021, 23:28

Теги

Похожие вопросы