자기소개페이지만들기

13. application.yml 파일 travis에서 암호화

상황 

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개 가까이 있는거보고 현타가 ...후 ..

 

https://github.com/whdals7337/myintroduce-backend-project

 

whdals7337/myintroduce-backend-project

자기소개 REST API. Contribute to whdals7337/myintroduce-backend-project development by creating an account on GitHub.

github.com