ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Infisical CLI 설치하는 파이프라인 최적화
    클라우드 2025. 6. 7. 22:18

    기존 파이프라인에서 Infisical CLI 설치하는 부분의 스크립트가

    - name: Install Infisical CLI
            run: |
              curl -1sLf '<https://artifacts-cli.infisical.com/setup.deb.sh>' | sudo -E bash
              sudo apt-get update && sudo apt-get install -y infisical
    

    이렇게 되어 있어

    Infisical 공식 사이트에서 CLI 설치용 스크립트를 다운로드 하고 다운로드한 쉘 스크립트를 관리자 권한으로 실행합니다.

    결과적으로, Infisical의 APT 저장소(.deb 리포지토리)를 시스템에 등록합니다.

    그 후, 앞에서 추가된 Infisical APT 저장소 포함해서 패키지 목록을 갱신하고 Infisical CLI 툴을 설치하는 작업을 수행하였습니다.

    근데 이 작업이 파이프라인을 도는동안 5분정도 돌아도 끝나지 않는 문제가 가끔 발생했습니다.

     

    Runner 환경이 아무것도 설치되어 있지 않은 깨끗한 환경이라 APT 저장소 업데이트 할때 시간이 많이 소요될 수도 있었고, 트래픽 과부하나 TLS handshake 혹은 DNS resolution 때문에 지연이 생길 수도 있고 지연될 수 있는 조건이 여러개 존재했습니다.

    그래서 개선을 위해 CLI 파일만 다운로드 받을 수 있을 거 같았습니다.

    그래서 설치된 곳에서

    which infisical
    # /Users/kimseongjun/.nvm/versions/node/v23.11.0/bin/infisical
    

    명령어를 사용하여 CLI 파일의 실행 위치를 찾았습니다.

    근데 경로가 뭔가 이상해서

    cd /Users/kimseongjun/.nvm/versions/node/v23.11.0/bin
    

    에 들어가서 ls -al 로 확인해보니 심볼릭링크로 설정되어 있었습니다.

    ls -al
    drwxr-xr-x  7 kimseongjun  staff        224 May 19 17:24 .
    drwxr-xr-x  9 kimseongjun  staff        288 Apr 28 23:56 ..
    lrwxr-xr-x  1 kimseongjun  staff         48 May 19 17:24 infisical -> ../lib/node_modules/@infisical/cli/bin/infisical
    

    ../lib/node_modules/@infisical/cli/bin/infisical 여기에 진짜 infisical cli 설치 파일이 있어 이 파일을 S3에 올리려고 했습니다.

    근데 제 로컬은 M1 Mac이고 brew install infisical로 설치하여 arm64 버전의 실행파일이 있었습니다. 이걸 ubuntu 환경 amd에 올리면 동작이 안될 것이였습니다.

    그래서 EC2 ubuntu를 새로 파서 거기에 있는 CLI 바이너리 파일을 S3에 올렸습니다.

    바이너리 파일은 똑같이 which 명령어로 찾았습니다.

    저는 S3 upload 할 수 있는 IAM 사용자 크리덴셜이 설정 되어 있어 다음 명령어를 통해 바이너리 파일을 S3에 업로드 하였습니다.

    aws s3 cp /usr/bin/infisical s3://<your-bucket-name>/tools/infisical-linux-amd64 --region <region> --acl private
    

    그리고 스크립트 파일을 CloudFront의 저장소에서 다운로드 받는 것으로 수정하여 Infisical CLI가 설치되는 속도를 5~10초 이내로 진행될 수 있게 수정했습니다.

    - name: Install Infisical CLI from CloudFront
            run: |
              curl -L https://${{secrets.AWS_CLOUDFRONT_URL}}/tools/infisical-linux-amd64 -o infisical
              chmod +x infisical
              sudo mv infisical /usr/local/bin/infisical

     

    전체 파이프라인은 다음 깃허브 링크에 작성되어 있습니다.

    https://github.com/100-hours-a-week/17-newsum-fe

Designed by Tistory.