728x90
반응형
Gitlab 깃랩, CI/CD
syntax error near
unexpected token `&&'
오류
현상
- Gitlab CI/CD 시 syntax error near unexpected token `&&' 오류 발생
참고
&&는 앞의 명령어가 실행되었을 때 성공한 경우에 다음 명령어를 실행한다는 의미
- 배포하고 서버 ssh로 접속해서 서버 대수 (3대) 만큼 For문 돌리면서 restart 해주려고 했는데. 오류가 발생했다.
.deploy:
stage: deploy
before_script:
# openssh, lftp 설치
- apk update && apk add openssh && apk add openssh-client
- apk add sshpass
- apk add lftp
script:
...
# ssh 접속해서 서버 리스타트
- sshpass -p 패스워드 ssh -t -p 포트 -oStrictHostKeyChecking=no 아이디@아이피 '
for var in {1..3}
do
/tomcat$var/bin/shutdown.sh && /tomcat$var/bin/startup.sh && sleep 3s;
done;
exit;'
...
해결
- for문을 멀티라인에서 싱글라인으로 바꿔준다
- 싱글라인으로 변경 할때는 조건절 끝에 세미콜론을 붙여 줘야 한다.
multi / single line for 문법 차이
#multi line
for var in list
do
command1
done
#single line
for var in list; do command1; done
- 아래와 같이 for문을 single line으로 변경
.deploy:
stage: deploy
before_script:
# openssh, lftp 설치
- apk update && apk add openssh && apk add openssh-client
- apk add sshpass
- apk add lftp
script:
...
# ssh 접속해서 서버 리스타트
- sshpass -p 패스워드 ssh -t -p 포트 -oStrictHostKeyChecking=no 아이디@아이피 'for var in {1..3}; do /tomcat$var/bin/shutdown.sh && /tomcat$var/bin/startup.sh && sleep 3s; done; exit;'
...
728x90
반응형