首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sed命令的Jenkinfile ssh问题

使用sed命令的Jenkinfile ssh问题
EN

Stack Overflow用户
提问于 2017-10-10 13:45:28
回答 1查看 239关注 0票数 0

我已经写了一个Jenkinsfile,在一个步骤中我被卡住了,那基本上就是部署阶段。在部署阶段,有一个步骤,我必须ssh到一台服务器并运行几个命令。早些时候它工作得很好,但是当我用一些正则表达式添加sed命令时,Jenkins显示语法错误。下面是代码片段。

代码语言:javascript
复制
                steps {
                      sshagent ( credentials: []) {

sh '''
echo "Tag=miqp-server_${BUILD_NUMBER}" > sshenv
echo "target=${DeployTo}" >> sshenv
scp sshenv root@SERVERIP:~/.ssh/environment
ssh -T -o StrictHostKeyChecking=no -l root SERVERIP <<'EOF'

#DEPLOYMENT_NAME="miqp-server-dep"
#CONTAINER_NAME="miqp-server-dev"
#NEW_DOCKER_IMAGE="2xxxxxxxxxx6.dkr.ecr.us-east-1.amazonaws.com/miqp-devops:${Tag}"
RELEASE_NAME=miqp-server-dep

if [ "${target}" = "None" ]
then
  echo "No deployment to K8s"
else

cd /root/kubernetes-ingress/dev/miqp-server-dep/
sed -i "s/^\([[:space:]]*tag:[[:space:]]*\).*/\1$Tag/" values.yaml
helm upgrade -f values.yaml $RELEASE_NAME miqp-server-dep.0.1.0.tgz

#kubectl set image deployment/$DEPLOYMENT_NAME $CONTAINER_NAME=$NEW_DOCKER_IMAGE -n devops-dev
#kubectl rollout status deployment $DEPLOYMENT_NAME -n devops-dev

fi
EOF'''

Jenkins抛出的错误是

代码语言:javascript
复制
WorkflowScript: 156: unexpected char: '\' @ line 156, column 13.
   sed -i "s/^\([[:space:]]*tag:[[:space:]]*\).*/\1$Tag/" values.yaml
               ^

1 error
EN

回答 1

Stack Overflow用户

发布于 2017-10-10 15:34:08

嘿,我已经通过提供转义字符解决了这个问题

代码语言:javascript
复制
sed -i "s/^\([[:space:]]*tag:[[:space:]]*\).*/\1$Tag/" values.yaml 

sed -i "s/^\\([[:space:]]*tag:[[:space:]]*\\).*/\\1$Tag/" values.yaml

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46659377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档