개발자 블로그를 위한 열걸음
드디어 블로그 운영을 위한 모든 준비가 완성되었습니다. 하지만 준비가 끝난 것이지 정상적으로 이용할 수는 없습니다. 예를들어 SMTP 설정을 하지 않고 시작했기 때문에 새로운 스탭이나 회원을 모집할 수 없고, 업로드 최대 용량설정으로 인해 Theme를 다운로드 받을 수 없는 상태입니다. 그래서 가장 먼저 데이터베이스에 직접 새로운 스탭을 넣거나 테마를 다운받아 마운트된 폴더에 넣어주는 방법을 사용했습니다.

스탭 추가
블로그를 개인적으로 운영하기 때문에 혼자 운영을 하고 있습니다. 그럼에도 불구하고 계정을 "Manager" 와 "HyoBin" 이라는 스탭으로 분리해서 작업을 하고 있습니다.

애초에 Ghost에서도 각기 다른 역할이 부여되어 있고, 역할 기반 접근 제어 (Role-Based Access Control, RBAC) 에 근거해 Owner 와 Editors 라는 계정으로 분리해 블로그의 운영과 글쓰기를 분리해서 사용하고 있습니다. 특히 Owner의 계정은 블로그 테마, 운영방침, 초기화 등 운영에 민감한 기능들을 포함한 모든 기능을 사용할 수 있기에 제한적으로 사용하는 것이 좋다고 판단했습니다.
하지만 설치 과정 중 설정을 하지 않았다면 SMTP 의 부재로 스탭 초대 기능이 정상적으로 작동되지 않습니다. 그래서 관련 포스팅을 먼저 작성했으니 참고 부탁드립니다.

설정을 하지 않고 추가하는 방법은 다음과 같습니다. (namespace와 pod 는 설정을 확인해주세요)
- 운영중인 k8s에 ghost의 mysql이 작동하는 pod를 확인합니다.
kubectl get pod -n namespace

- pod를 통해 mysql에 접근합니다.
kubectl exec -it ghost-mysql-0 -n namespace – mysql -u root -p

- 데이터 베이스 및 스탭 관련 테이블에 확인합니다.
use bitnami_ghost;
select * from roles;
select * from users;
select * from roles_users;

데이터베이스를 확인했다면 roles_users 테이블의 user_id는 users 테이블의 id, role_id는 roles의 id인 것을 확인 할 수 있습니다.
- 계정 추가
다음과 같이 입력을 합니다. 비밀번호는 암호화된 비밀번호로 입력해야하지만 변경할 수 있으니 여기선 평문으로 입력합니다.
INSERT INTO users (
id,
name,
slug,
password,
email,
status,
visibility,
created_at,
created_by
) VALUES (
'3', -- 유니크한 ID
'testuser', -- 이름
'testuser', -- 슬러그 (고유 URL에 사용)
'testpassword', -- 평문 비밀번호
'test@test.com', -- 이메일
'active', -- 상태
'public', -- 가시성
NOW(), -- 생성 시간
'1' -- 생성자 ID
);

- 역할 부여
INSERT INTO roles_users (id, role_id, user_id) values ('676a66fc79b46a00dc34da71', '676a66fc79b46a00dc34da69', 3);
id값은 뒷자리에 1을 추가하고 role_id와 user_id에 적절한 역할의 id값과 방금 생성한 user의 id(3)을 입력합니다.

- 스탭 확인

이렇게 SMTP 설정이 안되있을 때 임시 방편으로 스탭을 추가하는 방법에 대해 알아 봤습니다.
delete from roles_users where user_id=3;
delete from users where id=3;