shell - 在 jenkins 声明性管道 cloudformation 中使用带有 shell 命令的 If 语句
问题描述
我正在将 aws cloudformation 集成到我的 jenkins 管道中。我想执行一个
$ aws cloudformation describe-stacks --stack-name dev-nics-proxyservlet-svc --region us-west-2
命令来查看我是否有一个带有我正在寻找的名称的堆栈。如果命令发现栈存在,我想删除栈:
$ aws cloudformation delete-stack --stack-name dev-nics-proxyservlet-svc
但是如果堆栈不存在,我想创建堆栈:
aws cloudformation create-stack --stack-name dev-nics-proxyservlet-svc --region us-west-2 --template-body file://dev-nics-proxyservlet-cluster.yml --parameters file://dev-nics-proxyservlet-svc-param.json --capabilities "CAPABILITY_IAM" "CAPABILITY_NAMED_IAM"
如何在声明性多分支 jenkins 管道中编写这个 shell comman?任何帮助表示赞赏。谢谢!
解决方案
我认为这些方面的东西应该起作用:
if aws cloudformation describe-stacks --stack-name dev-nics-proxyservlet-svc --region us-west-2 &>/dev/null
then
aws cloudformation delete-stack --stack-name dev-nics-proxyservlet-svc
else
aws cloudformation create-stack --stack-name dev-nics-proxyservlet-svc --region us-west-2 --template-body file://dev-nics-proxyservlet-cluster.yml --parameters file://dev-nics-proxyservlet-svc-param.json --capabilities "CAPABILITY_IAM" "CAPABILITY_NAMED_IAM"
fi
if
通过检查退出代码的aws cloudformation describe-stacks
作品。如果为0,则堆栈存在,如果不为0,则不存在。
推荐阅读
- visual-studio - 将 TFS 工作区移动到新机器
- r - R中的负向后正则表达式
- javascript - 如何使用 d3.js 通过鼠标悬停显示 XY 图表的 x 和 y 坐标
- python - Pytorch RuntimeError:张量a(4)的大小必须与非单维0的张量b(3)的大小相匹配
- python - 在 Python 中使用 lxml 针对 Schematron 验证带有命名空间的 XML
- vba - 如何在更改字段时运行宏,而不是在该字段的原始条目上运行宏?
- python - df.apply(lambda: x.lower()): 'function' 对象没有属性 'lower'
- docker - 如何在 Docker 中构建 dotnet 核心?
- ios - 在 iOS 13 中单击 webview 的链接时它会崩溃
- node.js - Nodejs获取请求读取正文数据