gpt4 book ai didi

Azure DevOps Pipeline构建不可变镜像(Packer)找不到脚本

转载 作者:行者123 更新时间:2023-12-03 03:57:05 26 4
gpt4 key购买 nike

因此,我尝试使用 Azure DevOps 发布管道和 Packer 来构建黄金镜像,但我遇到了一个奇怪的错误,即找不到脚本。我正在尝试使用自动生成的模板,因为我根本没有使用 Packer 的经验,但它看起来非常简单,所以我坚持了下来。

我正在构建一个基础 Ubuntu 18.04-LTS 镜像,我的包正在从 CI 管道中正常获取,并且在 UI 中可见。我的包包含该脚本,这也可以从 UI 中看到。我对脚本没有任何争论,因为现阶段它包含的内容很少。

初始步骤如下所示运行良好,当我输入不正确的脚本名称或路径时,它会按照我的预期失败。

2020-09-21T13:42:28.5763293Z Resolving deploy package path.
2020-09-21T13:42:28.5872208Z Resolved deploy package path: /agent/_work/r1/a/_APP/_drop/MyApp.Web.
2020-09-21T13:42:28.5873284Z Resolving deploy script path.
2020-09-21T13:42:28.7426014Z Resolved deploy script path: deploy.sh.

构建运行良好,通过了加壳器验证,并且机器已设置。该任务通过 SSH 成功连接,日志显示它按如下方式上传。然后它会失败,因为它找不到脚本。

2020-09-21T13:43:51.9642183Z ==> azure-arm: Connected to SSH!
2020-09-21T13:43:51.9642706Z
2020-09-21T13:43:51.9661411Z ==> azure-arm: Provisioning with shell script: /tmp/packer-shell391925162
2020-09-21T13:43:51.9678528Z
2020-09-21T13:43:54.3568719Z ==> azure-arm: Uploading /agent/_work/r1/a/_APP/_drop/MyApp.Web => /deployTemp/MyApp.Web
2020-09-21T13:50:54.8214369Z
2020-09-21T13:50:55.8696845Z ==> azure-arm: Provisioning with shell script: /tmp/packer-shell088825827
2020-09-21T13:50:55.8700537Z
2020-09-21T13:50:55.9197460Z azure-arm: MyApp.Web
2020-09-21T13:50:55.9198790Z
2020-09-21T13:50:55.9211167Z azure-arm: /tmp/script_5793.sh: 5: /tmp/script_5793.sh: /deployTemp/MyApp.Web/deploy.sh: not found

我最初的想法是,该包仍在复制过程中,因为上传和尝试运行脚本之间的时间戳非常快,而且我从管道中的其他步骤知道,复制包通常需要花费一些时间更长。我确实尝试运行用户生成的脚本版本,但一直以其他方式被阻止。

我已经包含了部署中的代码,因为它实际上只是一个 apt-get 命令,我希望在成功测试运行后充实该命令,但尚未看到任何成功。

任何帮助或建议将不胜感激。

步骤设置设置如下(用 GUI 编写并复制到 YAML)

steps:
- task: PackerBuild@1
displayName: 'Build immutable image'
inputs:
ConnectedServiceName: '<Service Account>'
managedImageName: AppNameGoldImageSept20
location: australiaeast
storageAccountName: astorageaccount
azureResourceGroup: '<ResourceGroup>'
baseImage: 'Canonical:UbuntuServer:18.04-LTS:linux'
packagePath: '$(System.DefaultWorkingDirectory)/_APP/_drop/MyApp.Web'
deployScriptPath: deploy.sh
additionalBuilderParameters: '{\"vm_size\":\"Standard_D3_v2\",\"virtual_network_name\":\"<VNetHere>\",\"virtual_network_subnet_name\":\"<Subnet Here>\",\"virtual_network_resource_group_name\":\"<VnetRg>\"}'

最佳答案

我也遇到了同样的问题。不过,它解决了这个问题。

这是一个非常简单的问题。我将用于打印工件的代理从 Windows 更改为 Linux,问题得到了解决。

我对以下存储库的内容进行了很多尝试,并最终确认创建工件的代理应该在 Linux 基础上运行。 https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/PackerBuildV1/DefaultTemplates/custom.managed.linux.template.json

这是一个老问题,但我希望一切顺利。

关于Azure DevOps Pipeline构建不可变镜像(Packer)找不到脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64151224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com