如何使用 Azure 自动化运行手册将 Azure devops 存储库下载为 zip 文件?

Posted

技术标签:

【中文标题】如何使用 Azure 自动化运行手册将 Azure devops 存储库下载为 zip 文件?【英文标题】:How do I download Azure devops repo as a zip file using Azure automation runbook? 【发布时间】:2022-01-07 14:10:55 【问题描述】:

我正在尝试创建一个自动化运行手册来备份我们的 Azure Devops 存储库,并将其作为 Zip 文件存储在存储帐户中。但是当我在运行手册中运行 Git 克隆(导入了 posh-git 模块)时,我收到了以下错误。有什么方法可以使用 Automation Runbook 将整个 git repo 下载为 Zip 文件?

git : Cloning into 'testrepo'... At line:1 char:1 
+ git clone https://FAKEehtinrtsndtsrihdintsrhdinrhtidhtsrdFAKE... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo : NotSpecified: (Cloning into 'testrepo'...:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError

【问题讨论】:

这看起来非常像 Azure DevOps 个人访问令牌。一定要撤销它! 只是一个建议:您是否反过来考虑过这个问题?有一个构建可以获取所有 repo 文件并将其作为 zip 存储到存储中吗?我问的原因是 PAT 在设计上是“个人的”,所以如果你退出或忘记更新你的令牌,解决方案就会中断。如果您以相反的方式构建它,则可以使用服务主体。您也可以在回购中发生特定事情时触发它,而不仅仅是“每天 12 点” 让我们更进一步:推动这个解决方案的关注点是什么?设计的存储库具有对其所做的每一次更改的历史记录,并且可以轻松地恢复到之前的状态。每个开发人员都有一个本地的 repo 副本。您需要此备份的场景是什么? @PhilipMeholm 是的,我确实考虑过这一点,但我们专门从 Runbook 中寻找基于时间的触发器,而不是 DevOps 中的管道。这样就不会在每次提交到 repos 时触发它。 @DrSpring docs.microsoft.com/en-us/azure/devops/pipelines/process/… 【参考方案1】:

我创建了一个 DevOps 管道,用于克隆、存档并将存储库作为 Zip 文件复制到存储帐户,并为 Zip 文件设置了 10 天的保留期。 步骤如下:

    在Azure storage account中创建一个容器。 在 Azure DevOps 中生成一个新的PAT,并具有对“代码”的“读取”访问权限 在 Azure DevOps 中创建一个新的service connection 以访问包含存储帐户的 Azure 订阅。 使用代码 here 创建 YAML 管道。

【讨论】:

以上是关于如何使用 Azure 自动化运行手册将 Azure devops 存储库下载为 zip 文件?的主要内容,如果未能解决你的问题,请参考以下文章

使用 python 将 azure Runbook 与 azure 中的文件共享连接起来

Azure Runbook检查状态

在 Invoke-AzVMRunCommand 错误时将 Azure 自动化状态设置为失败以触发警报

Azure 启动运行手册停止工作,不确定发生了啥?

Azure自动化帐户-如何使用自定义服务主体登录而不是作为帐户运行?

使用Azure Automation Hybrid管理本地SQL Server备份状态