Развертывание шеф-повара со знаком доллара в строке усекает зашифрованный пароль - PullRequest
1 голос
/ 08 января 2020

У меня есть развертывание шеф-повара, которое работает следующим образом:

encryptedvalues = chef_vault_item(node.chef_environment, 'my_app_name')

do_windows_service "Installing Windows Service" do
    action :install
    #...
    app_config_changes ({
        "configuration/secureAppSettings/add[@key='XSWebserviceUser']/@value" => "#{encryptedvalues['XSWebserviceUser']}",
        "configuration/secureAppSettings/add[@key='XSWebservicePassword']/@value" => "#{encryptedvalues['XSWebservicePassword']}"
    })
end

Я определил, что значения верны, они вставлены в правильную позицию, и все в порядке, пока значение зашифрованного пароля не будет иметь "$" в нем. Я не могу изменить пароль и попытался его избежать, обернув его в интерполированную строку: "#{pass}", но, к сожалению, это не сработало. Любые идеи о том, как я могу добиться успешного развертывания?

Первоначально в конфигурации приложения это выглядит как

<secureAppSettings>
    <add key="XSWebserviceUser" value="XXX" />
    <add key="XSWebservicePassword" value="XXX" />
  </secureAppSettings>

и после развертывания с паролем = "xyz # $% xyz"

<secureAppSettings>
    <add key="XSWebserviceUser" value="User" />
    <add key="XSWebservicePassword" value="xyz#" />
  </secureAppSettings>

Обновление: проверка журналов Я вижу это на сервере

4.  2020-01-08T23:36:36.3315043Z STDERR: Cannot convert value "System.String" to type "System.Boolean". Boolean parameters accept only Boolean values and numbers, such as $True, $False, 1 or 0.

Похоже, что это может быть проблема с windows powershell?

...