使用 Chef 安装新遗物基础架构代理时 Powershell 脚本失败
Powershell script is failing when installing new relic infrastructure agent using chef
我在 Windows Server 2016 上安装了 MS SQL Server 2019。我正在尝试为 SQL Server 安装新的遗留集成。因为在集成部分之前,我们需要安装新的 relic 基础架构代理。当我手动使用下面的 powershell 脚本时它工作正常但在使用 chef 时不工作。
我正在使用下面的 Powershell 脚本通过 chef 安装它。
# Install New Relic
powershell_script 'new-relic-bootstrap' do
code <<-PS
[Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'
(New-Object System.Net.WebClient).DownloadFile("https://github.com/newrelic/newrelic-cli/releases/latest/download/NewRelicCLIInstaller.msi", "$env:TEMP\NewRelicCLIInstaller.msi")
msiexec.exe /qn /i $env:TEMP\NewRelicCLIInstaller.msi | Out-Null
$env:NEW_RELIC_API_KEY='ABC'
$env:NEW_RELIC_ACCOUNT_ID='XYZ'
# Prompting for input when userdata reaches this point
& 'C:\Program Files\New Relic\New Relic CLI\newrelic.exe' install --skipLoggingInstall
# Set hostname
cd "C:\Program Files (x86)\ScaleFT\"
$sftinfo = ./sftd.exe --debug-device-info --conf C:\Windows\System32\config\systemprofile\AppData\Local\ScaleFT\sftd.yaml | ConvertFrom-Json
$name = $sftinfo.canonical_name + "-" + ($sftinfo.alt_names).split("-")[0] + " (" + ($sftinfo.alt_names).split("-")[1] + ")"
Add-Content -Path "C:\Program Files\New Relic\newrelic-infra\newrelic-infra.yml" -Value "display_name: $name"
# Restart service
Get-Service -Name newrelic-infra | Restart-Service
PS
guard_interpreter :powershell_script
end
当我 运行 上面的脚本失败并显示以下错误。
之后它显示了几次“Checking for data in New Relic”消息,当它选择 MS SQL Server Integration Installer
时,脚本崩溃并在以下位置退出
知道为什么使用厨师失败但手动工作正常吗?谢谢
它不是手动失败,因为当它要求从选项列表中进行选择时,我们手动按了回车键。使用 chef 时,我们没有传递任何参数或不控制选项选择部分。因此,只需在安装之后和 --skipLogging 之前传递参数 -y 即可。
我在 Windows Server 2016 上安装了 MS SQL Server 2019。我正在尝试为 SQL Server 安装新的遗留集成。因为在集成部分之前,我们需要安装新的 relic 基础架构代理。当我手动使用下面的 powershell 脚本时它工作正常但在使用 chef 时不工作。
我正在使用下面的 Powershell 脚本通过 chef 安装它。
# Install New Relic
powershell_script 'new-relic-bootstrap' do
code <<-PS
[Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'
(New-Object System.Net.WebClient).DownloadFile("https://github.com/newrelic/newrelic-cli/releases/latest/download/NewRelicCLIInstaller.msi", "$env:TEMP\NewRelicCLIInstaller.msi")
msiexec.exe /qn /i $env:TEMP\NewRelicCLIInstaller.msi | Out-Null
$env:NEW_RELIC_API_KEY='ABC'
$env:NEW_RELIC_ACCOUNT_ID='XYZ'
# Prompting for input when userdata reaches this point
& 'C:\Program Files\New Relic\New Relic CLI\newrelic.exe' install --skipLoggingInstall
# Set hostname
cd "C:\Program Files (x86)\ScaleFT\"
$sftinfo = ./sftd.exe --debug-device-info --conf C:\Windows\System32\config\systemprofile\AppData\Local\ScaleFT\sftd.yaml | ConvertFrom-Json
$name = $sftinfo.canonical_name + "-" + ($sftinfo.alt_names).split("-")[0] + " (" + ($sftinfo.alt_names).split("-")[1] + ")"
Add-Content -Path "C:\Program Files\New Relic\newrelic-infra\newrelic-infra.yml" -Value "display_name: $name"
# Restart service
Get-Service -Name newrelic-infra | Restart-Service
PS
guard_interpreter :powershell_script
end
当我 运行 上面的脚本失败并显示以下错误。
之后它显示了几次“Checking for data in New Relic”消息,当它选择 MS SQL Server Integration Installer
时,脚本崩溃并在以下位置退出知道为什么使用厨师失败但手动工作正常吗?谢谢
它不是手动失败,因为当它要求从选项列表中进行选择时,我们手动按了回车键。使用 chef 时,我们没有传递任何参数或不控制选项选择部分。因此,只需在安装之后和 --skipLogging 之前传递参数 -y 即可。