개발자 블로그를 위한 아홉걸음

드디어 지금까지 준비한 모든 것들로 블로그를 배포할 준비가 되었습니다. 배포를 진행하기 앞서 DuckDNS를 통해 발급받은 도메인으로 연습을 해보시길 바랍니다. 특히 CMS를 선택함에 있어 개인차가 있을 수 있고, 개발스택을 정하실 수 있기 때문입니다. 지금까지의 방법과 비슷하게 워드프레스나 JAVA CMS도 설치할 수 있으니 사용해 보시길 권장드립니다.


Ghost helm chart 설정방법
이전 포스팅에서 helm 명령어를 진행했기 때문에, repo 추가와 update는 이미 되어 있어 생략합니다.
- chart 다운로드
helm pull bitnami/ghost --untar
wget https://github.com/bitnami/charts/blob/main/bitnami/ghost/values.yaml
둘 중 편한 명령어를 통해 values.yaml 파일은 다운받습니다.
helm 명령어로 받을 경우 모든 chart가 다운됩니다. - values 파일 수정
다운받은values.yaml
을 수정하는 방법도 있지만, 이미 설정되어있는 value를 그대로 사용한다면 필수로 변경이 필요한 것들만 수정하면 됩니다. 따라서 간소화된values_compact.yaml
을 새롭게 만듭니다. pull로 받아온 차트들은 참고하시기 바라며, 이후 다른 포스팅에서 세밀한 설정에 대해 알아볼 예정입니다.
vi values_compact.yaml
파일을 아래와 같이 생성/수정합니다.
service:
type: ClusterIP
ghostHost: devpoorm.duckdns.com
ghostPath: /
ghostEnableHttps: true
ghostPassword: passwordstring #10자리 이상
ghostUsername: 이름
ghostEmail: test@email.test
ghostBlogTitle: 제목
allowEmptyPassword: false
ingress:
enabled: true
hostname: devpoorm.duckdns.org
path: /
annotations:
kubernetes.io/ingress.class: nginx # 기존 NGINX Ingress 컨트롤러
cert-manager.io/cluster-issuer: letsencrypt-prod # 기존 Issuer
tls: true
selfSigned: true
ingressClassName: "nginx"
pathType: Prefix
persistence:
enabled: false
storageClass: "-"
mysql:
architecture: standalone
auth:
rootPassword: passowrd
password: password
primary:
persistence:
enabled: false
storageClass: "-"
- 설정 설명
- service.type이 ClusterIP로 작성한 이유는 로드벨런스와 연결된 ingress로 서비스할 예정이므로 따로 로드밸런스로 사용하지 않습니다.
- ghostPassword는 10자리 미만일 경우 ghost의 정책상 설치가 실패합니다.
- ingress.annotations 은 이전 포스트에서 다루었던 cert-manger와 ingress를 가져와 사용하기 위한 설정입니다.
- persistence, mysql.primary.persistence 는 PV, PVC설정으로 이번 포스팅에선 다루지 않고 임시로 사용할 수 있도록 false입니다.
Ghost 설치
helm upgrade --install -n devghost --create-namespace devghost bitnami/ghost -f values_compact.yaml
values파일이 준비가되면 위의 명령어를 통해, bitnam 레포지토리의 ghost 헬름 차트로 ghost에 필요한 설정들이 맞춰지면서 설치되기 시작합니다.

ghost, mysql, ingress, tls 등 설치 및 인증과정 진행되고 약 1분 내외로 설치가 완료 됩니다. 설치가 완료되면, 초기 상태의 ghost화면에 본인이 지정한 도메인과 타이틀로 구성된 ghost 웹페이지가 정상적으로 작동하게 됩니다. 첫 페이지는 Coming Soon 으로 이미 작성이 되어있습니다.
value_compact.yaml
파일은 임시 테스트를 위해 잠시 사용했으며, devpoorm.duckdns.org와 연결했던 ghost는 삭제했습니다.이후 포스트들은 실제 블로그인 poorm.com을 기준으로 작성됩니다.