Eu tenho um packer
modelo que estou tentando executar. Geralmente faz o que eu quero: cria uma VM do Azure, generaliza-a e carrega-a em uma galeria de computação. Agora estou tentando expandi-lo para instalar um aplicativo via Powershell
script. O problema é que não consigo descobrir onde o script deveria estar ou como deveria chamá-lo no modelo.
Analisei vários exemplos em que as pessoas usaram formatos diferentes, como usar caminhos relativos, por exemplo script = "./install_app.ps1"
, ou apenas chamar o próprio nome do script, por exemplo script = "install_app.ps1"
, . Eu tentei das duas maneiras apenas para obter um erro do packer
.
Error: Failed preparing provisioner-block "powershell" ""
on .\win10Packer.pkr.hcl line 56:
(source code not available)
1 error(s) occurred:
* Bad script './install_app.ps1': CreateFile ./install_app.ps1: The system
cannot find the file specified.
Minha build{}
seção:
build {
sources = ["source.azure-arm.autogenerated_1"]
provisioner "powershell" {
inline = ["Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted","Install-Module PSCompression"]
}
provisioner "powershell" {
script = "./install_npp.ps1"
}
provisioner "powershell" {
inline = ["& $env:SystemRoot\\System32\\Sysprep\\Sysprep.exe /oobe /generalize /quiet /quits", "while($true) { $imageState = Get-ItemProperty HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State | Select ImageState; if($imageState.ImageState -ne 'IMAGE_STATE_GENERALIZE_RESEAL_TO_OOBE') { Write-Output $imageState.ImageState; Start-Sleep -s 10 } else { break }}"]
}
}
Um provisionador precisa ser declarado assim
Então eu acho que seu modelo está declarado errado