CI管道设计

image.png
任务组设计
image.png

CI管道设计并没有特别之处,重点在于在乎的CD管道设计中

CD管道设计

image.png
除了自身的CI源之前,添加生成密文控制台应用程序也作为源,以便于在CD过程中使用加密功能

Development

image.png
Development开发环境是明文存储的,所以CD管道也不做特殊处理

Sit

image.png

Sit环境的配置不同,在CD过程中会替换环境变量的值

环境变量设置
image.png

Step1:下载安全文件

下载证书,证书存储在Devops中的库中,需要手动上传,如何生成证书自行查找资料

image.png
Step2:生成加密文件secret.xml以及对应{key}.xml

依赖生成密文的程序生成秘钥文件以及secret.xml

image.png
Step3:机密变量替换

使用powershell脚本解析Step2步骤中生成的secret.xml文件并替换环境变量的值

image.png

Step4:启用环境变量替换

image.png

测试

image.png
Development
image.png
Sit
image.png
image.png

这里DataBase.DbConnection是null是因为DataBase并不是一个Option

image.png

可以通过dotnet命令启动程序来查看是否解密成功

注意:并未做到全自动化,还有很多不足,比如证书如何自动化安装,证书如果有密码如何处理,替换机密变量时Shell脚本的优化、UserSecret集成等