Похоже, что Packer не справляется с сценариями Amazon для системной подготовки машины. Я перепробовал кучу разных вещей. Помещение сценариев в их собственный сценарий, выполнение, их «встроенное», как многие люди показывают, но ничего не работает. Я получаю следующую ошибку:
Сборка amazon-ebs с ошибкой: команда обработки ошибки: ошибка повторной попытки: ошибка при загрузке сценария ps, содержащего переменные env: ошибка при загрузке файла в $ env: TEMP \ winrmcp-10fca0b1-a0ac-47d2-7462-77d91b066859.tmp: не удалось создать оболочка: ошибка ответа http: 401 - недопустимый тип содержимого
Любая помощь будет принята с благодарностью.
Версия пакера: Packer v1.3.3
Ниже мой упаковщик JSON:
{
"builders": [
{
"type": "amazon-ebs",
"ami_description": "Base Win2016 with encrypted root",
"ami_name": "examsoft-win2016-{{timestamp}}",
"ami_regions": [
"us-east-2",
"ap-southeast-1",
"us-east-1",
"us-west-2"
],
"encrypt_boot": true,
"instance_type": "t2.micro",
"region": "us-east-2",
"user_data_file": "./bootstrap_win.txt",
"communicator": "winrm",
"winrm_username": "Administrator",
"winrm_password": "{{user `winrm_password` }}",
"region_kms_key_ids": {
"ap-southeast-1": "alias/aws/ebs",
"us-east-1": "alias/aws/ebs",
"us-east-2": "alias/aws/ebs",
"us-west-2": "alias/aws/ebs"
},
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"name": "*Windows_Server-2016-English-Full-Base*",
"root-device-type": "ebs"
},
"owners": "amazon",
"most_recent": true
}
}
],
"description": "Base Windows 2016 image with manager credentials and encrypted root",
"provisioners": [
{
"type": "powershell",
"script": "./scripts/ConfigureRemotingforAnsible.ps1"
},
{
"type": "powershell",
"script": "./scripts/ConfigurePackerImage.ps1"
},
{
"type": "powershell",
"inline": [
"C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Scripts\\InitializeInstance.ps1 -Schedule",
"C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Scripts\\SysprepInstance.ps1 -NoShutdown"
]
}
]
}
Я столкнулся с этой точной ошибкой, и моя проблема заключалась в том, что я менял пароль администратора в сценарии, который выполнялся в средстве обеспечения до запуска sysprep.
Вы меняете пароль администратора в ./scripts/ConfigurePackageImage.ps1
?
Если это так, я вырезал код, который изменяет пароль учетной записи администратора, и теперь запускаю его в отдельном скрипте, который запускается в инициаторе после sysprep.