티스토리 뷰

반응형

오류 확인

Fabric peer의 database로 couchdb를 사용하고 있는데, 갑자기 couchdb UI 화면에서 로그인을 하라는 창이 나오기 시작했다.

(couchdb 웹 페이지 : http://localhost:5984/_utils)

couchdb 로그인 페이지

 

couchdb 컨테이너를 실행할 때, CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME과 CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD 환경변수를 공백으로 넣고 실행하기 때문에 항상 Admin Party 모드로 작동해야 하는데 이 설정에 문제가 생긴 것 같다.

docker-compose-couch.yaml 파일

 

Admin Party 모드로 작동하지 않아 체인코드 내에서 couchdb 쿼리를 해올 때 오류가 발생한다.

 

모든 couchdb 컨테이너가 이런 로그인 화면이 뜨는 것은 아니고, 몇 개의 컨테이너에서만 오류가 발생했다.

 

원인 파악

couchdb UI 화면에서 Create Admin 메뉴를 통해 admin 계정을 생성하게 되면, 그에 따라 로그인 화면이 나오게 된다.

couchdb 'Create Admin' 메뉴

 

네트워크 사용자들 중 누군가가 이 화면에 접근해 admin 계정을 생성한 것 같다.

아니면 누군지 모를 해커에 의해 공격을 당했다던가...

 

아무튼 내가 모르는 admin 계정이 생겼기 때문에 이를 해결해야 한다.

 

오류 해결

이럴 경우, couchdb 컨테이너 내의 .ini 파일을 수정해 원래대로 Admin Party 모드로 작동하도록 만들어주어야 한다.

 

우선 해당 오류가 발생하는 couchdb 컨테이너 내에 접속을 한다

#couchdb 컨테이너 접속
docker container exec -it couchdb0 bash

couchdb 컨테이너 접속

 

local.ini 파일 수정

/opt/couchdb/etc/local.ini 파일에 대한 수정이 필요하다.

# local.ini 파일 수정 (couchdb 컨테이너 내에서 실행)
cd /opt/couchdb/etc
vi local.ini

 

[admins] 항목에 주석(;으로 시작하는 줄)을 제외하고, 다른 내용이 존재한다면 해당 내용을 지워준다.

...

; To create an admin account uncomment the '[admins]' section below and add a
; line in the format 'username = password'. When you next start CouchDB, it
; will change the password to a hash (so that your passwords don't linger
; around in plain-text files). You can add more admin accounts with more
; 'username = password' lines. Don't forget to restart CouchDB after
; changing this.
[admins]
;admin = mysecretpassword

couchdb 컨테이너 내의 local.ini 파일

 

만약, vi 명령어를 찾을 수 없다는 오류가 발생할 경우 'apt-get update' 명령을 실행하면 vi 편집기 사용이 가능해진다.

# vi 편집기 사용을 위한 패키지 업데이트 (couchdb 컨테이너 내에서 실행)
apt-get update
# vi 편집기 설치 (couchdb 컨테이너 내에서 실행)
apt-get install vim

 

docker.ini 파일 수정

couchdb를 Docker 컨테이너로 실행했기 때문에 /opt/couchdb/etc/local.d/docker.ini 파일도 수정이 필요하다.

# docker.ini 파일 수정 (couchdb 컨테이너 내에서 실행)
cd /opt/couchdb/etc/local.d
vi docker.ini

couchdb 컨테이너 내의 docker.ini 파일

 

[admins] 항목의 내용을 모두 지우고 [couchdb] 항목만 남긴 상태로 저장한다.


[couchdb]
uuid = ba090a3e45aab943bed94364b7e1b731

couchdb 컨테이너 내의 docker.ini 파일에서 [admin] 항목 내용 제거

 

couchdb 컨테이너 재시작

수정한 내용을 적용하기 위해 couchdb 컨테이너를 재시작한다.

# couchdb 컨테이너 재시작
docker container restart couchdb0 

 

이제 couchdb 웹 페이지(http://localhost:5984/_utils)에 다시 접속하면 로그인 화면이 사라진 것을 확인할 수 있다.

couchdb 메인 페이지

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함