728x90
728x90
[ 시스템 & 인프라/Linux & DevOps ][리눅스 한 학기 살기 #6] Docker로 Jenkins 띄우기: CI/CD 개념부터 컨테이너 실행·초기 설정까지2025-04-22 22:35:43TL;DR — 3줄 핵심 요약• 문제: 서버에 Jenkins를 직접 설치하면 8080 포트가 이미 쓰이거나, JDK 버전이 꼬이거나, 지울 때 남는 파일이 생긴다. 이런 충돌을 없애려고 컨테이너에 넣어 실행한다.• 기술/원인: Docker 컨테이너는 이미지에 들어 있는 파일 시스템과 프로세스만 따로 띄우고, 바깥과는 포트 매핑(-p)과 볼륨(-v)으로만 연결한다. Jenkins의 설정과 작업 데이터는 /var/jenkins_home에 있으므로 이 디렉터리를 볼륨으로 빼 두면 컨테이너를 지워도 남는다.• 해결/인사이트: docker run 한 줄에 이름·포트·볼륨·재시작 정책을 모두 넣는다. 초기 비밀번호는 docker exec로 initialAdminPassword 파일을 읽어 얻고, 플러그인은 추천 세..
[ 시스템 & 인프라/Linux & DevOps ][리눅스 한 학기 살기 #5] 라즈베리파이5(ARM64) Ubuntu 24.04에 Docker Engine 공식 저장소로 설치하기2025-04-13 11:08:44TL;DR — 3줄 핵심 요약• 문제: 라즈베리파이 5는 CPU가 ARM64(aarch64)다. x86용으로 만든 설치 안내나 패키지를 그대로 쓰면 설치가 실패하거나 동작하지 않는다.• 기술/원인: apt는 sources.list에 적힌 저장소 주소와 아키텍처를 보고 패키지를 받는다. 아키텍처를 명시하지 않으면 엉뚱한 바이너리를 받을 수 있어, 공식 저장소를 추가할 때 arch=arm64로 고정한다.• 해결/인사이트: GPG 키를 /etc/apt/keyrings에 따로 저장하고 signed-by로 그 키만 신뢰하도록 지정한다. 설치 후에는 hello-world 컨테이너로 데몬·이미지 받기·실행이 모두 되는지 한 번에 확인한다.환경부터 확인한다lsb_release -a # Ubuntu 24.04,..
[ 시스템 & 인프라/Linux & DevOps ][리눅스 한 학기 살기 #4] 라즈베리파이 VPN 구축: Tailscale vs WireGuard(PiVPN) 비교와 ufw 삽질기2025-04-09 16:30:10TL;DR — 3줄 핵심 요약• 문제: 집 안의 라즈베리파이에 밖에서 접속하려고 SSH(22)·RDP(3389) 포트를 공유기에 열어 두면, 전 세계의 자동 스캔 프로그램이 그 포트를 계속 두드린다.• 기술/원인: VPN은 두 기기 사이에 암호화된 가상 인터페이스(wg0, tailscale0)를 만들고, 그 인터페이스를 지나는 패킷만 암호화해 상대에게 보낸다. 그래서 바깥에는 VPN 포트 하나만 열려 있으면 되고, SSH·RDP는 터널 안쪽 주소로만 접근한다.• 해결/인사이트: 포트포워딩은 VPN 포트만 남기고 삭제한다. ufw는 기본 정책을 deny incoming으로 두고 VPN 인터페이스에서 들어오는 트래픽만 허용한다. 원격 작업 중 ufw를 잘못 만지면 접속이 끊기므로 콘솔 접근 수단을 먼저 확보..
[ 시스템 & 인프라/Linux & DevOps ][리눅스 한 학기 살기 #3] Ubuntu 24.04 원격 데스크톱: xrdp 대신 grdctl로 RDP 접속 붙이기2025-04-01 00:05:45TL;DR — 3줄 핵심 요약• 문제: 모니터 없이 돌리는 라즈베리파이에 화면을 붙이려면 원격 데스크톱이 필요하다. 예전 방식은 xrdp 패키지를 따로 설치하고 세션을 수동으로 연결해야 했다.• 기술/원인: Ubuntu 24.04에는 GNOME 원격 데스크톱이 기본 들어 있고, RDP 프로토콜로 화면을 보낸다. Wayland에서도 PipeWire로 화면 프레임을 가져와 RDP로 전송한다. 그래서 xrdp 없이 3389 포트 하나로 Windows·macOS·Linux 클라이언트가 모두 접속한다.• 해결/인사이트: 재부팅 뒤에도 접속하려면 Desktop Sharing이 아니라 Remote Login을 켜야 한다(로그인 화면까지 원격). 연결이 인증 직후 끊기면 rdp 파일을 export해 use redire..
[ 시스템 & 인프라/Linux & DevOps ][리눅스 한 학기 살기 #2] curl과 Makefile 제대로 쓰기: 주요 옵션부터 jq 연동·자동 변수까지2025-03-17 23:42:44TL;DR — 3줄 핵심 요약• 문제: 서버에 요청을 보내고 응답을 확인하는 일, 소스를 컴파일하는 일은 매번 반복된다. 이 두 반복을 명령 한 줄로 줄이는 도구가 curl과 make다.• 기술/원인: curl은 libcurl로 URL에 요청을 보내고 응답 바이트를 출력하거나 파일로 저장한다. make는 Makefile의 규칙(타겟: 의존성 → 명령)을 읽고, 의존성 파일의 수정 시각이 더 최신일 때만 명령을 실행한다.• 해결/인사이트: curl은 -s(조용히) -f(HTTP 오류를 실패로) -L(리다이렉트 추적) -o(파일 저장) 조합과 jq 파이프가 실무 기본형이다. make는 변수·자동 변수($@, $curl: URL에 요청을 보내는 도구1996년 다니엘 스텐버그가 IRC에서 환율 정보를 자동으로 ..
[ 시스템 & 인프라/Linux & DevOps ][리눅스 한 학기 살기 #1] 라즈베리파이5에 Ubuntu 24.04 설치하고 SSH 원격 접속까지2025-03-16 00:52:51TL;DR — 3줄 핵심 요약• 문제: "리눅스 한 학기 살기" 과제로 1주차에 리눅스를 설치하고 원격에서 접속 가능한 상태까지 만들어야 했다. 라즈베리파이5에 Ubuntu 24.04 LTS를 설치하고 SSH로 외부 접속을 확인하는 것이 목표였다.• 기술/원인: 원격 접속은 세 가지가 동시에 맞아야 성립한다. ① sshd가 22번 포트에서 대기 ② 방화벽(ufw)이 그 포트를 허용 ③ 공유기가 외부 포트를 내부 IP로 전달. 하나만 빠져도 연결되지 않는다.• 해결/인사이트: 순서를 지켜야 한다. ufw allow 22/tcp를 먼저 넣고 enable을 켠다. 바깥에서 접속하려면 공유기 포트포워딩과 DDNS(A 레코드)까지 설정하고, ssh 사용자@주소 -p 포트로 확인한다.무엇을 하려는 과제인가오픈소스S..
728x90
728x90