我做了一些研究,发现Azure DevOps确实有任何开箱即用的实现来支持Azure PostgreSQL的CI CD。
有人知道吗,我们如何为Azure PostgreSQL数据库的PaaS产品配置Azure DevOps
请帮忙。
截至目前,还没有现成的Azure DevOps模板可用于Azure Postgres的PaaS版本。
我不确定我是否正确理解OP的问题,因为OP发布问题已经9个月了。但这似乎是正确的答案。
Azure Devops上至少有一个Microsoft托管代理内置了PostgreSQL,只是默认情况下未启用。启用和使用它很简单。
";微软托管的代理";页https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml,有一个表列出了可用的代理。您可以单击最右侧列中的链接以查看包含软件的列表。代理vs2017-win2016的链接指向Microsoft Windows Server 2016数据中心上预装的所有软件的列表。向下滚动页面或搜索";postgres";,揭示了PostgreSQL的相关信息。
此示例Azure Pipelines作业可用于启动PostgreSQL。
- job: foo-postgresql-bar
pool:
vmImage: 'vs2017-win2016'
steps:
- powershell: |
echo 'PGBIN is ' $env:PGBIN
echo 'PGDATA is ' $env:PGDATA
echo 'PGROOT is ' $env:PGROOT
echo 'Contents of PGBIN'
ls $env:PGBIN
Set-Service postgresql-x64-13 -StartupType manual
Start-Service postgresql-x64-13
Get-CimInstance win32_service | Where-Object Name -eq "postgresql-x64-13"
displayName: 'Setup PostgreSQL'
仅需要Set-Service
和Start-Service
命令;PowerShell脚本的其余部分是可选的。
echo
和ls
命令只需验证表中的信息。Set-Service
命令启用该服务,Start-Service
命令启动该服务,而Get-CimInstance
命令验证该服务是否正在运行。
在生产环境中,您可以在Start-Service
之后读取返回代码,而不是使用Get-CimInstance
命令,以验证服务是否正在运行。