상황
S3 관련 비밀 키를 포함하는 yml 파일 깃허브에 그대로 올릴 수 없는 문제
Travis에서 파일을 암호화를 하여 깃허브에 올리고 travis에서 사용할 때는 파일을 복호화 해서 사용하게 만들 수 있습니다.
준비
windwow말고 리눅스나 맥os를 준비 해주세요.
window에서 암호화하고 travis에서 사용할려고하면 bad encrypt 오류가 발생합니다.
https://github.com/travis-ci/travis-ci/issues/4746
실습
1. 우선 컴퓨터에 루비를 다운로드합니다.
sudo apt-get update
sudo apt install ruby
2. 루비를 이용해서 travis를 다운로드 합니다.
sudo gem install travis
3. travis 로그인 해줍시다
본인 계정 깃허브 토큰 만들어준 뒤
해당 토큰을 이용해서 로그인해줍니다.
travis login --pro --github-token [본인 계정 토큰]
4. travis 기본 설정 수정하기 매우 중요!!
vim ~/.travis/config.yml
travis 를 다운받고 로그인하면 기본 endpoint가 아래 처럼 org가 됩니다.
저는 travis-ci.com를 사용하기 때문에 해당 endpoint를 com으로 변경해주어야 했습니다.
안맞춰 주면 아래처럼 나중에 iv undefined가 발생합니다.
$ openssl aes-256-cbc -K $encrypted_f4314cc5f076_key -iv $encrypted_f4314cc5f076_iv -in application-s3.yml.enc -out application-s3.yml -d
iv undefined
The command "openssl aes-256-cbc -K $encrypted_f4314cc5f076_key -iv $encrypted_f4314cc5f076_iv -in application-s3.yml.enc -out application-s3.yml -d" failed and exited with 1 during .
5. 암호화 하기
암호화 하고자하는 파일 위치로 이동 후 암호화를 진행합니다.
travis encrypt-file application-s3.yml
우선 확인해야하는 것으로 환경변수가 자동으로 생성 되었는지 확인합니다. 만약 안되었다면 4번의 기본 설정을 제대로 안하였을 가능성이 높습니다.
적혀있는 데로 .travis.yml 파일의 before_install에 문구를 추가 해줍니다.
그 다음 줄울 보면 암호화 된 .enc 파일을 git 리포지터리에 올리라고 되어있는데 그전에 enc파일을 travis.yml에 같은 root 디렉토리로 이동시켜 줍니다. 안그러면 인식을 못하더라구요 ..ㅎㅎ
(root로 파일을 이동시켜도 복호화 하면 암호화 했던 폴더로 돌아가는지 다시 파일 이동시키는 스크립트 안짜도되는 듯 합니다 .ㅎㅎ)
이제 깃허브에 푸시 해주시면 travis에서 정상적으로 사용하게 됩니다.
밤 12시 쯤 부터 진행하는데 새벽 4시 되서야 해결 방법을 발견하게 되었습니다 .. 후
정말 설마하면서 org 사이트 로그인 했는데 아래같은 환경 변수가 20개 가까이 있는거보고 현타가 ...후 ..
'자기소개페이지만들기' 카테고리의 다른 글
15. jacoco를 통한 테스트 커버리지 체크 (1) | 2021.06.30 |
---|---|
14. 프로젝트 도식화 (0) | 2021.06.11 |
12. 프론트엔드 리액트 프로젝트를 S3 + CloudFront에 배포하기 (0) | 2021.06.08 |
11. [샘플] 이미지 파일 서버에서 AWS S3로 업로드 및 다운로드 받기 (0) | 2021.06.08 |
10. 자기소개 프로젝트 FrontEnd AWS EC2 만료에 따른 서비스 종료 (0) | 2021.05.03 |