나는 함께 일하고 있다지속적인 통합, CD그러나 불행히도 나는 쉘 스크립트를 엉망으로 만들었습니다. 내 gitlab-ci.yml 파일에서 배포할 때 bashscript를 호출합니다. 하지만 불행하게도 명령을 사용하여 끌어오려고 할 때마다 응답이 실패합니다. 이 bash 스크립트에 대한 나의 반응은 다음과 같습니다.
#!/bin/bash
# Get server list
set -f
string=$DEPLOY_SERVER_IP
array=(${string//,/ })
# Iterate servers for deploy and pull last commit
for i in "${!array[@]}"; do
echo "Deploy project on server ${array[i]}"
ssh bitnami@${array[i]} " ssh-agent bash && ssh-add keys/relation-fe && cd htdocs/relation-fe/ && git pull origin master "
done
내 대답은 이것이다
Executing "step_script" stage of the job script
$ which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )
/usr/bin/ssh-agent
$ eval $(ssh-agent -s)
Agent pid 21206
$ mkdir -p ~/.ssh
$ echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
$ chmod 600 ~/.ssh/id_rsa
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ bash .gitlab-deploy-prod.sh
Deploy project on server 1.2.3.4
Could not open a connection to your authentication agent.
Cleaning up file based variables
ERROR: Job failed: exit status 1
그러면 이 오류를 어떻게 해결할 수 있나요? 오류는 gitlab이 내 서버에 성공적으로 액세스했음을 나타냅니다. 하지만 ssh-agent를 실행하고 ssh-key를 통해 키를 추가하면 스크립트가 명령을 실행하지 못합니다. 그러면 여기에서 오류가 발생합니다. 나는 bash 스크립트와 쉘 스크립트에 대해 혼란스러워합니다. 그래서 내 스크립트에서 오류를 찾을 수 없습니다. git push로 파일을 생성할 수는 있지만 생성할 수는 없습니다.SSH 키를 사용하여 인증한 후 콘텐츠 추출누구든지 도와줄 수 있나요?
답변1
Gitlab이 귀하의 컴퓨터에 연결되어 있지 않은 것 같습니다.달리는 사람, 이는 귀하의 서버와 다릅니다. 러너가 사용 가능하고 gitlab이 러너에 연결할 수 있는지 확인하세요.