Category: DevOps

0

Linux에서 연결된 볼륨 확인하기

Linux 시스템에서 연결된 디스크와 볼륨을 확인하는 다양한 방법을 소개합니다. 1. lsblk - 블록 디바이스 목록 확인가장 직관적이고 많이 사용되는 명령어입니다. lsblk 출력 예시: NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 50G 0 disk├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 49G 0 part /sdb 8:16 0 100G 0 disk└─sdb1 8:17 0 100G 0 part /data 유용한 옵션: # 파일시스템 정보 포함lsblk -f# 상세 정보 출력lsblk -a# 특정 디바이스만 확인lsblk /dev/sda 2. fdisk - 디스크 파티션 확인

0

Linux에서 파일과 디렉토리 찾기

Linux 시스템에서 파일과 디렉토리를 효율적으로 찾는 다양한 방법을 소개합니다. 1. find - 강력한 파일 검색 명령어가장 강력하고 유연한 파일 검색 도구입니다. 기본 사용법# 현재 디렉토리에서 특정 파일명 찾기find . -name "filename.txt"# 대소문자 구분 없이 찾기find . -iname "filename.txt"# 특정 디렉토리에서 찾기find /home/user -name "*.log" 파일 타입으로 찾기# 일반 파일만find . -type f -name "*.txt"# 디렉토리만find . -type d -name "backup"# 심볼릭 링크만find . -type l 파일 크기로 찾기# 100MB보다 큰 파일find . -type f -size +100M# 10KB보다 작은 파일find . -type f -size -10k# 정확히 1GB 파일find . -type f -size 1G# 크기 단위: c(bytes), k(KB), M(MB), G(GB)

0

Nginx SSL/TLS 적용하기

SSL/TLS란?SSL (Secure Sockets Layer) 과 TLS (Transport Layer Security) 는 인터넷 통신을 암호화하는 프로토콜입니다. 1994년 넷스케이프에서 SSL 1.0을 개발한 이후, SSL은 웹 보안의 표준으로 자리잡았습니다. 그러나 여러 보안 취약점이 발견되면서 1999년 IETF(Internet Engineering Task Force)는 SSL 3.0을 기반으로 한 TLS 1.0을 발표했습니다. 현재 SSL 3.0과 TLS 1.0, 1.1은 보안상의 이유로 폐기되었으며, TLS 1.2(2008년 발표)와 TLS 1.3(2018년 발표)만 사용해야 합니다. 그럼에도 불구하고 역사적 이유와 관례상 “SSL 인증서” 또는 “SSL/TLS”라는 용어를 계속 사용하고 있습니다. SSL/TLS의 작동 원리SSL/TLS는 비대칭 암호화와 대칭 암호화를 조합하여 안전한 통신을 제공합니다: 핸드셰이크 단계: 클라이언트와 서버가 비대칭 암호화(공개키/개인키)를 사용하여 안전하게 세션키를 교환합니다. 데이터 전송 단계: 교환된 세션키를 사용하여 대칭 암호화로 빠르게 데이터를 암호화/복호화합니다. 검증 단계: 인증서를 통해 서버의 신원을 확인하고, 메시지 인증 코드(MAC)로 데이터 무결성을 보장합니다. 이러한 구조 덕분에 SSL/TLS는 높은 보안성과 효율성을 동시에 제공할 수 있습니다. 왜 SSL/TLS가 필수인가?1. 데이터 암호화 - 도청 방지

0

Nginx 완벽 가이드

Nginx란?Nginx(엔진엑스)는 2004년 러시아 개발자 Igor Sysoev가 만든 고성능 웹 서버이자 리버스 프록시 서버입니다. 처음에는 Rambler.ru라는 러시아 포털 사이트의 C10K 문제(동시에 10,000개의 연결을 처리하는 문제)를 해결하기 위해 개발되었으며, 현재는 전 세계 웹사이트의 30% 이상에서 사용되고 있습니다. Apache가 오랫동안 웹 서버 시장을 지배했지만, Nginx는 높은 동시 접속 처리 능력과 낮은 메모리 사용량으로 빠르게 시장 점유율을 확대했습니다. Netflix, Airbnb, GitHub, WordPress.com 등 트래픽이 많은 대형 사이트들이 Nginx를 사용하고 있습니다. 주요 특징1. 높은 성능과 확장성Nginx는 비동기 이벤트 기반(Event-Driven) 아키텍처를 채택하여 적은 수의 워커 프로세스로 수만 개의 동시 연결을 처리할 수 있습니다. Apache의 프로세스/스레드 기반 모델과 달리, 각 연결마다 새로운 프로세스나 스레드를 생성하지 않아 메모리 효율이 뛰어납니다. 2. 낮은 리소스 사용동일한 트래픽을 처리할 때 Apache 대비 메모리 사용량이 현저히 낮습니다. 이는 클라우드 환경에서 비용 절감으로 직결되며, 제한된 리소스를 가진 서버에서도 우수한 성능을 발휘합니다. 3. 확장성과 모듈화

0

[쿠버네티스 DevOps 구축] - Keycloak 설치하기

목차 [쿠버네티스 DevOps 구축] - OpenSearch 설치하기 [쿠버네티스 DevOps 구축] - Prometheus 와 Grafana 설치하기 [쿠버네티스 DevOps 구축] - Keycloak 설치하기 [쿠버네티스 DevOps 구축] - Ingress Nginx Controller 설치하기 [쿠버네티스 DevOps 구축] - Local PC 쿠버네티스 동적 프로비저닝을 위한 StorageClass 설치 [쿠버네티스 DevOps 구축] - Local PC 에 쿠버네티스 설치하기 🔎 SSO 를 위한 Keycloak보통 DevOps 시스템을 구축하게 되면 각 시스템 마다 접근을 위한 계정 관리를 해줘야 합니다. 즉, N 개의 관리 시스템을 설치하게 되면 N 개의 계정이 필요합니다. 계정이 너무 많아지면 사용하는 입장에서도 관리하는 입장에서도 너무 복잡해져서 보통, 한 서비스 가입을 통해 모든 시스템에 접근할 수 있는 SSO 를 많이들 구축합니다. 저는 일반적으로 많이 사용하는 OpenSource 인 KeyCloak 을 이용해 쿠버네티스 위에 올라가는 서비스에 대한 SSO 를 구축하려고 합니다. ✅ Helm 을 이용한 KeyCloak 설치 참고 https://artifacthub.io/packages/helm/bitnami/keycloak # Helm Repo 추가helm repo add keycloak https://charts.bitnami.com/bitnami# Helm Default Chart 내려받기helm show values keycloak/keycloak >> values-keycloak.yaml# Keycloak 설치 helm upgrade --install -f ./values-keycloak.yaml keycloak keycloak/keycloak -n auth --create-namespace

0

SonarQube

공식 홈페이지 https://www.sonarsource.com/products/sonarqube/ SonarQube SonarQube는 코드 품질 관리 도구로, 개발자들이 작성한 소스 코드의 품질을 측정하고 향상시키는 데 사용됩니다. SonarQube는 정적 코드 분석(Static Code Analysis)을 수행하여 코드 품질을 측정하며, 다양한 측면에서 코드 품질을 분석합니다. 예를 들어, 코드의 복잡성, 중복, 버그 및 취약점, 코드 커버리지 등을 측정하여 개발자들이 더 나은 코드를 작성할 수 있도록 돕습니다. SonarQube는 다양한 프로그래밍 언어 및 프레임워크를 지원하며, 대규모 프로젝트에서도 충분히 사용될 수 있는 안정적이고 확장 가능한 도구입니다. 또한 SonarQube는 CI/CD 파이프라인에 통합하여 자동화된 코드 검사 및 품질 향상을 가능하게 합니다. SonarQube는 오픈소스 라이선스를 가지고 있으며, 개발자들은 무료로 사용할 수 있습니다. 또한 상용 버전인 SonarQube Enterprise도 제공되며, 기업에서는 추가적인 기능 및 지원을 제공받을 수 있습니다. SonarQube 설치brew install sonarbrew install sonar-scanner

0

[Gitea] - Gitea Storage 로 S3 사용하기

목차 [Gitea] - Gitea Storage 로 S3 사용하기 [Gitea] - Gitea 를 Maven Repository 로 사용하기 [Gitea] - Helm 을 이용해 Gitea 설치하기 참고 https://docs.gitea.io/en-us/config-cheat-sheet/#issue-and-pull-request-attachments-attachment Storage 변경 작업 EBS -> S3gitea: ## @param gitea.config Configuration for the Gitea server,ref: [config-cheat-sheet](https://docs.gitea.io/en-us/config-cheat-sheet/) config: storage: STORAGE_TYPE: minio MINIO_ENDPOINT: s3.ap-northeast-2.amazonaws.com MINIO_ACCESS_KEY_ID: <S3 Access Key> MINIO_SECRET_ACCESS_KEY: <S3 Secret Key> MINIO_BUCKET: <S3 Bucket 이름> MINIO_LOCATION: <S3 위치> MINIO_USE_SSL: true MINIO_INSECURE_SKIP_VERIFY: false

0

Maven - Settings.xml

참고 Maven 공시 Document https://maven.apache.org/settings.html Settings.xmlSettings.xml 은 Pom.xml 과 같이 Maven 실행에 있어 필요한 요소들을 정의하는 파일이다. 다만 Pom.xml 과 달리 Local Repository 의 위치 Remote Repository 의 위치 혹은 인증 정보와 같은 민감한 정보를 갖고 있기 때문에 프로젝트의 번들로서 제공되거나 배포되서는 안된다. Settings.xml 구성 요소<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository/> <interactiveMode/> <offline/> <pluginGroups/> <servers/> <mirrors/> <proxies/> <profiles/> <activeProfiles/></settings> localRepositoryinteractiveMode

0

Helm 을 이용한 Jenkins 설치 - Kubernetes

목차 [Jenkins] - Jenkinsfile 작성하기 [Jenkins] - Gitea 와 연동하기 [Jenkins] - Agent 추가하기 [Jenkins] - Helm 을 이용한 Jenkins 설치하기 Jenkins 란Erorr : You must be logged in to the server (Unauthorized)참고 https://artifacthub.io/packages/helm/jenkinsci/jenkins 1. Repository 추가helm repo add jenkins https://charts.jenkins.io 2. value.yaml 준비

0

[Gitea] - Gitea 를 Maven Repository 로 사용하기

목차 [Gitea] - Gitea Storage 로 S3 사용하기 [Gitea] - Gitea 를 Maven Repository 로 사용하기 [Gitea] - Helm 을 이용해 Gitea 설치하기 Gitea Maven Repository 로 사용하기참고 https://docs.gitea.io/en-us/packages/maven/ 일괄로 Dependency 올리는 코드Library 를 S3 로 변경할 경우 아래 스크립트로 Upload 시 명확하게 인식이 안돼서 Storage 타입에 따라 사용하도록 하자 #!/bin/bashfiles="./files.out"giteaurl="https://gitea.mbcp.co.kr/api/packages/vitality/maven/"token="d00b1001f5cfaf91c6143730f2fec34d13e16d2a"find . -name '*.*' -type f | cut -c 3- | grep "/" >$fileswhile read i; do echo "upload $i to $giteaurl" curl -v -H "Authorization: Bearer $token" --upload-file $i "$giteaurl$i"done <$files settings.xml 설정

0

[Gitea] - Helm 을 이용해 Gitea 설치하기

목차 [Gitea] - Gitea Storage 로 S3 사용하기 [Gitea] - Gitea 를 Maven Repository 로 사용하기 [Gitea] - Helm 을 이용해 Gitea 설치하기 Gitea 란? 오픈 소스 기반의 자체 호스팅 Git 서비스 1. Helm Repository 추가# Repository 추가helm repo add gitea https://dl.gitea.io/charts/# Repository Updatehelm repo update 2. Gitea value.yaml 생성 및 수정 참고 https://docs.gitea.io/en-us/config-cheat-sheet/ gitea 를 아무 설정 없이 설치하게 되면 다음과 같이 ROOT_URL 과 접근 URL 이 다르다는 경고를 보여준다.