Как избежать пароля, заканчивающегося знаком доллара icinga2?

У меня есть десятки устройств, на которые мне нужно войти с помощью скрипта API. Один набор устройств имеет пароль, оканчивающийся на $. Я пробовал кучу вещей, но я не могу избежать этого $ char. Вот ошибка, которую я вижу.

critical/config: Error: Validation failed for object 'gelt-uk4-gp!HTTP/80: Status Check ' of type 'Service'; Attribute 'vars' -> 'gspass': Closing $ not found in macro format string 'n0t-real#$'.
Location: in /etc/icinga2/zones.d/global-templates/global-services.conf: 55:5-55:31
/etc/icinga2/zones.d/global-templates/global-services.conf(53):   if ( host.vars.company == "gelt-emea" ) {
/etc/icinga2/zones.d/global-templates/global-services.conf(54):     vars.gsuser = "admin"
/etc/icinga2/zones.d/global-templates/global-services.conf(55):     vars.gspass = "n0t-real#$"
                                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^

person mr.zog    schedule 08.01.2018    source источник
comment
У меня есть другие зоны, учетные данные которых не содержат управляющих символов, и они работают нормально. Я бы очень хотел изменить этот конкретный пароль, но мне это не разрешено.   -  person mr.zog    schedule 08.01.2018
comment
У меня есть файл {zone_name}-credentials.conf для каждой зоны в каждом каталоге zone.d. В них есть такие строчки: template Service "gelt-emea-credentials" { vars.GELTGSUSER = "admin" vars.GELTGSPASS = "n0t-real#$"   -  person mr.zog    schedule 09.01.2018


Ответы (1)


Вы добавляете дополнительный $ рядом с буквальным знаком доллара. Итак, если пароль word54s$, вы вводите:

vars.geltpass = "word54s$$"
person mr.zog    schedule 10.01.2018
comment
Это также работает, если вам нужно указать регулярное выражение (^...$) в переменной. - person U. Windl; 25.06.2020