【问题标题】:Jenkinfile ssh issue with sed commandsed 命令的 Jenkinsfile ssh 问题
【发布时间】:2018-03-21 10:13:51
【问题描述】:

我已经写了一个 Jenkinsfile 并且在一个步骤中我被卡住了,这基本上是部署阶段。在部署阶段有一个步骤,我必须 ssh 进入一台服务器并运行几个命令。早些时候它工作正常,但是当我用一些正则表达式添加 sed 命令时,Jenkins 显示语法错误。下面是sn-p。

                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'''

詹金斯抛出的错误是

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

1 error

【问题讨论】:

    标签: linux bash ssh sed jenkins-pipeline


    【解决方案1】:

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

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

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-13
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 2016-12-16
      • 1970-01-01
      相关资源
      最近更新 更多