모두가 볼 수 있는 WIKI 페이지를 오픈 했습니다.
Cert-Gen
Certificate Generator. 인증서 생성기.
웹브라우저의 주소 표시줄에 자물쇠 표시를 만들어주는 그것.
자세한 내용은 여기를 보면 된다.
기본적으로 인증서 발급 기관을 통해서 Server용 인증서를 발급받지만 사내 도메인을 사용하거나, 폐쇄망의 환경에서는 자체 서명/발급 인증서를 사용한다.
보통의 경우는 여기의 내용처럼 openssl 어쩌구 명령을 수차례 날려야 하기에 매우 귀찮아서 조금이라도 쉽게 인증서 생성 과정을 처리해보고자 만든 도구다.
Linux(Redhat, Debian, Ubuntu)와 Windows(10,11, Server 2019이상)을 지원한다.
Windows Defender에서 트로이목마로 인식하므로, 허용해서 쓰면 된다.
cert-gen tui
Terminal Ui를 이용해 작업한다.

haedongg.net:~/cert-gen]# ./cert-gen --help
cert-gen 0.1.0 — 자가서명 인증서 생성기 (로컬 CA)
사용법:
cert-gen [전역 옵션] <명령> [하위 명령] [옵션]
전역 옵션:
--data-dir DIR 상태 디렉터리 (기본: <현재 디렉터리>/cert-gen-data)
-c, --config FILE 설정 파일 (기본: <상태 디렉터리>/config.toml)
--json 결과를 JSON 으로 출력
-q, --quiet 사람이 읽는 출력을 생략
-v, --version 버전 출력
명령:
init 상태 디렉터리와 DB 를 만든다
where 상태 디렉터리 위치와 규칙을 보여 준다
doctor 환경 점검 (권한·DB·CA·만료·CRL·openssl). --deep 으로 번들 해시까지
key create --name NAME 개인키를 만들어 둔다 (CA·발급에서 고를 수 있다)
key list 개인키 목록 (쌍 토큰으로 인증서와 짝을 맞춘다)
key show NAME 개인키 상세·사용처
key import --file FILE 외부 개인키를 가져온다
key passphrase NAME 패스프레이즈 설정/제거(--remove)
key delete NAME 개인키 삭제 (쓰이는 중이면 거부)
ca create Root CA 를 만든다 (--cn 필수, --org/--ou/--country)
ca list CA 목록
ca show SLUG CA 상세
ca export SLUG ca.crt 를 내보낸다 (클라이언트 신뢰 등록용)
ca adopt --dir DIR 외부 CA 를 복사 없이 등록해 발급에 쓴다
ca import --key K --cert C 외부 CA 를 상태 디렉터리로 복사해 등록한다
apply FILE... openssl .cnf 를 읽어 CA 생성·발급을 한 번에
(한 파일에 --- 로 블록을 나누거나, 파일을 여러 개 주거나)
cert issue 인증서를 발급한다 (--config 로 openssl .cnf 입력 가능)
cert list 발급 이력
cert show REF 상세 (ID | serial | CN)
cert renew REF 갱신 (기본: 새 키)
cert revoke REF 폐기하고 CRL 을 다시 만든다
cert verify REF 검증 (체인·호스트명·폐기)
cert bundle REF 번들 zip 을 꺼낸다
csr create 외부 CA 제출용 CSR 을 만든다
csr sign --csr FILE 받은 CSR 을 우리 CA 로 서명한다
export p12 REF PKCS#12
export jks REF Java KeyStore
export der REF DER
export pem REF PEM (cert/key/fullchain/ca)
export k8s REF kubernetes.io/tls Secret (+ Ingress)
crl generate SLUG CRL 을 다시 만든다
crl list SLUG 폐기 목록
backup create 상태 디렉터리 전체를 tar.gz 로 묶는다 (CA 개인키 포함)
backup restore FILE 백업을 복원한다 (--dry-run 으로 먼저 확인)
trust show [SLUG] OS·Java 신뢰 저장소 등록 명령을 만든다
tui 터미널 UI 를 띄운다
비밀값은 명령행 인자로 받지 않는다 (/proc/<pid>/cmdline 노출).
환경변수나 --*-stdin 옵션, 또는 TTY 프롬프트를 쓴다.
CERT_GEN_CA_PASSPHRASE, CERT_GEN_EXPORT_PASSWORD, CERT_GEN_KEY_PASSPHRASE
'cert-gen <명령> -h' 로 각 명령의 옵션을 본다.
UnSimple image builder
Unsimple image builder
보통 gii source 기반 이미지 빌드는 Jenkins 빌드파이프라인이나, Argocd 등을 이용하지만 임의로 이미지 빌드 등이 필요한 경우 수동 처리의 귀찮음을 해결하기 위한 도구.
쉽게 말해 매번 docker build -t registry.address/project/category/image_name:tag-tagnumber 명령을 입력하기 귀찮아서 만든 도구.
대강 구성도
┌─────────────────────────────────────────────┐ │ Git Image WebBuilder │ │ :8888 (Flask + gunicorn) │ │ │ │ ┌─────────┐ ┌─────────┐ ┌───────────────┐ │ │ │ Sources │ │ Builder │ │ Scripts │ │ │ │ │ │ │ │ │ │ │ │Registry │ │Build │ │Registered │ │ │ │Git Svr │ │Push │ │Ad-hoc (SSH) │ │ │ └─────────┘ │Rollout │ └───────────────┘ │ │ └────┬────┘ │ │ ┌───────────────┼───────────────┐ │ │ │ SQLite DB │ Build Logs │ │ │ │ (builder.db) │ (data/) │ │ │ └───────────────┴───────────────┘ │ └──────┬──────────┬──────────┬────────────────┘ │ │ │ ┌──────────────┘ │ └──────────────┐ │ │ │ ▼ ▼ ▼ ┌────────────────────┐ ┌──────────────────────┐ ┌──────────────────┐ │ Git Server │ │ Docker Daemon │ │ K8s Cluster │ │ │ │ │ │ │ │ Forgejo / GitHub │ │ docker build │ │ kubectl rollout │ │ Gitea / GitLab │ │ docker push │ │ restart │ │ │ │ │ │ status / pods │ │ SSH clone ──┐ │ │ │ │ │ │ │ HTTP clone ─┤ │ │ ▼ │ └──────────────────┘ └──────────────┘ │ │ ┌──────────────┐ │ │ │ │ Registry │ │ │ │ │ Harbor / │ │ │ │ │ DockerHub │ │ │ │ └──────────────┘ │ │ └──────────────────────┘ │ ┌────────┴─────────┐ │ Build Pipeline │ │ │ │ 1. git clone │ │ 2. Dockerfile ? │ │ 3. docker login │ │ 4. docker build │ │ 5. docker push │ │ 6. rollout │ │ (optional) │ └──────────────────┘
Github 소스 링크
Dockerfile을 이용해 이미지 빌드 후 docker-compose.yaml로 실행하거나, 어플리케이션 디렉토리를 복제하고 실행한다.
사용법
기본적으로 git에 등록된 branch를 Unsimple image builder로 클론.
클론된 파일의 Dockerfile을 기반으로 이미지를 빌드한다.
연결된 image registry에 자동 push, 등록된 k8s 클러스터의 디플로이먼트(deployment, statefulset) rollout 명령 까지 날릴 수 있다.
Cloudera inspector
CDP Private Cloud Base/Data Services 설치를 위한 사전정비 도구.
패키지임에도 불구하고 사전에 작업해야 하는게 뭐 그렇게 많은지 갑갑해서 만들었다.
설치 사전작업, 메타데이터 저장용 Postgresql 설치, CM 설치 과정을 Web UI를 통해 진행할 수 있다.
상세 매뉴얼
사전 준비사항
CDP 설치를 위한 사전 준비사항을 처리하는 어플리케이션이지만 그래도 최소한의 사전 작업은 필요하다. 이 도구는 SSH key를 통한 인증 기반으로 만들어졌기 때문에 키를 배포하는 과정은 처리 해줘야 한다.
# private key 생성 openssl genrsa -out id_rsa 1024 # 이 때 ~/.ssh/id_rsa 파일이 생성된다. 이 파일을 업로드 해야 한다. # public key 생성 ssh-keygen -y -f id_rsa > id_rsa.pub # authoorized_keys cat id_rsa.pub >> authorized_keys # 노드로 등록할 각 서버에 authorized_keys를 복사 해줘야 한다. chmod 700 ~/.ssh chmod 600 ~/.ssh/*
어플리케이션 설치
키 교환이 완료되었으면 아래 파일을 다운로드받고 설치 후 Web페이지에 접속해서 작업을 진행한다.
다운로드 링크 EL8
Github 소스 링크
SSH Tunneling
- SSH(Secure Shell): 프로토콜을 이용하여 네트워크 트래픽을 암호화된 통로(터널)를 통해 안전하게 전송하는 기술
- 일반적인 Proxy의 연결 방식과 차이가 없지만 SSH 프로토콜을 기반으로 작동하므로, 평문 연결에 대해서도 암호화 통신을 하는 효과를 얻을 수 있다. 단, 터널 제한을 하지 않는다면 클라이언트에서 중계서버에서 접근 가능한 모든 서버에 접근할 수 있다는 이야기이므로 오히려 보안상 취약할 수 있다.

- 터널링 설정 : Linux Shell / Windows Power shell / OS X shell
# ssh -L $LOCALHOST_LISTEN_PORT:$TARGET_HOST:$TARGET_PORT $USER_NAME@TUNNEL_SERVER # ssh -L 내_PC에서_오픈할_포트:실제_접속할_서버_호스트:실제_접속할_서버_포트 중계서버_계정@중계서버_호스트 ssh -L 18080:172.17.0.100:8080 user@172.17.200.200
- 터널링 설정 : Windows Putty

OpenLdap 설치 (on Redhat linux)
- LDAP 개요

- LDAP(Lightweight Directory Access Protocol) :
디렉터리 서비스(Directory Service)에 접근하고 관리하기 위한 표준 프로토콜로써 다음과 같은 특징을 가진다.
경량 프로토콜 : 이름 그대로 “Lightweight”, 기존 X.500 디렉터리 서비스의 복잡한 구조를 단순화해 TCP/IP 환경에서 효율적으로 동작한다.
계층적 구조(Tree 구조): dc=example,dc=com과 같은 도메인 기반 트리 구조로 데이터를 저장.ou=users,dc=example,dc=com (ou=Organizational Unit).
데이터 저장 방식: 사용자 정보(UID, 이름, 비밀번호, 메일 등)를 속성(attribute) 형태로 저장.
검색 및 인증 서비스: SSO, RBAC 등에 사용 (OpenLDAP / Active Directory)
Cloudera Components Configuration
Cloudera Manager (Hadoop Eco Ssytem) & Components Configuration 예제
Cloudera Manager, HDFS, Hive, Impala 등 CM 및 각 콤포넌트 설정 예시
Hive 설정
Apache Hive는 방대한 규모에서 분석할 수 있는 내결함성을 갖춘 분산 데이터 웨어하우스 시스템이다. 데이터 웨어하우스는 정보에 입각한 데이터 중심 의사 결정을 내릴 수 있도록 쉽게 분석할 수 있는 정보의 중앙 스토어를 제공하며, 사용자가 SQL를 사용하여 페타바이트 데이터를 읽고 쓰고 관리할 수 있도록 한다.
JDBC, ODBC 연결 및 SQL을 처리해주는 hiveserver2와
테이블 정보 등 메타데이터를 관리해주는 metastore 두 기능을 제공한다.
