GitLab CI CD와 ssh-add 간의 인증 문제

GitLab CI CD와 ssh-add 간의 인증 문제

저는 gitlab ci cd를 사용하고 있지만 불행하게도 배포 서버에 액세스하여 ssh-agentssh-add를 사용하여 개인 키를 추가하라는 메시지를 표시하면 오류만 표시됩니다 Error connecting to agent: No such file or directory. 어떻게 든 ssh-add전파되지 않거나 ssh-agent시작되지 않습니다. 쉘 스크립트에서 모든 단계를 구성했습니다. 아래에 나와 있습니다.

#!/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]} "eval $(ssh-agent -s)\ssh-add relation-fe && cd htdocs/relation-fe/ && git pull"
done

gitlab-ci.yml 파일에는 다음 내용이 포함되어 있습니다.

build-job:
  tags:
    - ci
  stage: build
  script:
    - echo "Hello, $GITLAB_USER_LOGIN!"

test-job1:
  tags:
    - ci
  stage: test
  script:
    - echo "This job tests something"

test-job2:
  tags:
    - ci
  stage: test
  script:
    - echo "This job tests something, but takes more time than test-job1."
    - echo "After the echo commands complete, it runs the sleep command for 20 seconds"
    - echo "which simulates a test that runs 20 seconds longer than test-job1"
    - sleep 20

deploy-prod:
  tags:
    - ci
  stage: deploy
  only:
    - master
  before_script:
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
    - eval $(ssh-agent -s)
    - 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'
  script:
    - bash .gitlab-deploy-prod.sh

내 배포 빌드 로그의 출력입니다.

Preparing the "shell" executor
Using Shell executor...
Preparing environment
Running on ip-172-26-14-215...
Getting source from Git repository
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /home/gitlab-runner/builds/8x1yWQpE/0/root/relation-fe/.git/
Checking out b7d66a8d as master...
Skipping Git submodules setup
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 26162
$ 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
Agent pid 26167
Error connecting to agent: No such file or directory
Cleaning up file based variables
ERROR: Job failed: exit status 1

누구든지 이 문제를 해결하도록 도와줄 수 있나요? 나는 지금 며칠 동안 여기에 갇혀 있습니다. 내 생각에 주요 문제는 이 줄에 있는 것 같아요.
ssh bitnami@${array[i]} "eval $(ssh-agent -s)\ssh-add relation-fe && cd htdocs/relation-fe/ && git pull"
어떻게든 여기서 뭔가 잘못하고 있는 것 같아요! 누구든지 이 문제를 해결하도록 도와줄 수 있나요?

관련 정보