볼트 서버(환경 변수 설정을 편하게 할 수 있는 방법)
나중에 Docker랑 쿠버네티스 사용하면 컴퓨터가 엄청 많아지는데 일일이 환경변수 세팅한다고 생각하면 너무 힘들다.
그러면 환경변수를 하나의 서버에 다 저장해 놓고 다른 컴퓨터들은 서버에서 값을 가져가게 하는 건 어떨까?
이것이 볼트 서버이다.
리눅스 가상 머신 하나 만들고
https://developer.hashicorp.com/vault/install#Linux
이 공식문서에 나온대로 vault를 설치한다.
스프링에서 외부 라이브러리 추가하고
아래 공식 문서에 있는대로 진행한다.
https://cloud.spring.io/spring-cloud-vault/reference/html/
근데 설정 파일을 작성할 때
인증을 못받은 상태라서
JAVA에서 에러가 발생하니
약간의 변형이 필요함.
backend "inmem"{}
listener "tcp"{
address = "0.0.0.0:8200"
tls_disable = 1
}
disable_mlock = true
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
서버 실행
vault server -config=설정파일경로
볼트 서버 초기화
vault operator init
볼트 서버 잠금 해제
vault operator unseal 입력 후 init할 때 생성된 키 입력
3번
토큰을 환경변수로 등록
export VAULT_TOKEN="hvs.QdJ0O4gCCmoSNE8iW2ExLe5U"
관리자 생성
vault token create -id="00000000-0000-0000-0000-000000000000" -policy="root"
kv 등록
vault secrets enable -path=엔진이름/ kv
vault kv put 엔진이름/경로 aaa=111 bbb=222
스프링 설정
my:
var: ${aaa}
spring.config.import: vault://
spring.cloud.vault:
host: 볼트IP
port: 볼트포트
scheme: http
uri: http://볼트IP:볼트포트
token: init할 때 생성된 토큰
kv:
enabled: true
backend: 엔진이름
application-name: 경로