MSA 환경에서 config server를 따로 두어 환경 설정이 변하면 서버의 재기동 없이 반영한다는 사실을 알게 되었다.
그래서 해당 방법을 적용해 보려고 한다.
git repository가 private이라고 가정할것이기 때문에 config file git과의 통신을 위해 공개키를 등록해야 한다. 물론 계정이나 git token 으로도 가능하다. 조직내에서 사용을 가정하기 위해 공개키를 등록해 활용해보겠다.
ssh-keygen -m PEM -t rsa -b 4096 -C "${any_value}"
키 생성을 완료했으면 id_rsa.pub 즉 공개키 내용을 복사해서 git -> settings -> Add ssh keys 를 통해 공개키를 등록하자.
그리고 나서 config server 설정 파일에 개인키를 등록하면 된다.
server:
port: 8888
eureka:
instance:
instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}}
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: ${eureka_server}
spring:
application:
name: config-service
cloud:
config:
server:
git:
uri: ${your config file git ssh uri}
ignoreLocalSshSettings: true
privateKey: |
-----BEGIN RSA PRIVATE KEY-----
${your private key}
-----END RSA PRIVATE KEY-----
default-label: main
basedir: config
search-paths:
- dev, prod
management:
endpoints:
web:
exposure:
include:
- refresh
- health
- beans
- info
config file git에서 기본 경로 config 에서 dev, prod 경로에서 설정파일을 탐색한다는 의미다.