问题描述
我进行了一些研究,发现Azure DevOps确实具有任何现成的实现来支持Azure Postgresql的CI CD。
任何人,有什么想法,我们如何为Azure Postgresql数据库的PaaS产品配置Azure DevOps
请帮助。
解决方法
截止到今天,还没有现成的Azure DevOps模板可用于PaaS版本的Azure Postgres部署。
,我不确定我是否正确理解了 OP 的问题,并且自 OP 发布问题以来已经过去 9 个月了。但这似乎是正确的答案。
Azure Devops 上至少有一个 Microsoft 托管的代理内置了 PostgreSQL,只是默认情况下未启用。启用和使用它很简单。
“Microsoft 托管的代理”页面 https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml 有一个列出可用代理的表格。您可以单击最右侧列中的链接以查看包含的软件列表。代理 vs2017-win2016 的链接指向 a list of all the software pre-installed on the Microsoft Windows Server 2016 Datacenter。向下滚动页面,或搜索“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
命令,以验证服务是否正在运行。