-
젠킨스 - Git 스프링 프로젝트 배포시 별도 설정파일로 키값 숨기기IT, 프로그래밍/Jenkins 2018. 10. 5. 16:00
보통 프로젝트를 진행하면 DB 커넥션에 관한 계정에 대한 정보와 API키 등을 설정파일에 적어두어 연결 시 사용합니다.
문제는 Git의 원격 저장소에 push되어 소스가 올라갈 때 이런 중요한 설정 정보들도 그대로 올라간다는 점인데요.
만약 이를 방지하기 위해 .gitignore로 설정하면, 원격 저장소로 푸쉬될 때 파일 자체가 올라가지 않아 젠킨스로 배포시 문제가 생기게 됩니다.
이 문제를 해결하기 위해 로컬 pc에 설정파일을 저장한 후에, 이 파일에서 중요한 정보들을 가져오는 방식을 사용 하겠습니다.
(이 방법도 사실 파일 경로가 올라가야해서 적합한 방식이라고는 할 수는 없습니다.)
1. 우선 로컬환경에 적합한 경로를 골라 파일명.properties 파일을 생성해 줍니다.
2. 파일에 매핑할 요소를 정의해줍니다.
12345678910111213141516#Connection Properties#db properties info..#MongoDBmongo.port = 20000mongo.id = 몽고아이디mongo.pwd = 몽고비번#Oracle#AWS#RDScs 3. PropertyPlaceholderConfigurer 를 빈즈로 등록해 줍니다. 속성 중 ignoreUnresolvablePlaceholders 옵션을 true로 설정하면, 만약 설정 요소가 존재하지 않아도 서버를 멈추지 않고 정상적으로 작동될 수 있도록 해줍니다.
12345678<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><value>파일 위치/파일.properties</value></property><property name="ignoreUnresolvablePlaceholders" value="true"/></bean>cs 4. ${}을 사용하면 xml상에서 매핑할 수 있습니다.
12<mongo:mongo-client id="mongo" host="127.0.0.1" port="${mongo.port}" credentials="${mongo.id}:${mongo.pwd}@admin">cs 5. 자바코드상에서는 @Value 어노테이션을 사용하여 접근할 수 있습니다.
관련 레퍼런스 첨부합니다.
'IT, 프로그래밍 > Jenkins' 카테고리의 다른 글
Jenkins 외부 jar 추가하기 (0) 2018.10.01 젠킨스 연동 삽질기 (0) 2018.09.30 Jenkins로 배포시 git ignore 설정 파일 문제 (1) 2018.09.30 Ubuntu 14.04 - Jenkins 연동 시 OOM 문제 해결 (0) 2018.09.28