HowTo, Linux

RHEL 10 에 Nvidia 드라이버 설치하기

RHEL 10 이나 Rocky 10 서버에 Nvidia 에 3070 그래픽카드를 장착했다. AI 학습을 할 수 있는 장비를 마련한건데, RHEL 10 에 물려 있다. Nvidia 드라이버 설치가 그렇게 쉬운게 아니여서 기록으로 남긴다. Nvidia 정식 저장소 Nvidia 는 RHEL 10 을 위한 저장소를 제공한다. RHEL 10 이 처음 나왔을때에는 없었는데, 최근에 생겼다. 이 저장소를 추가하면 쉽게 설치가 가능하다. RHEL 의 Code Ready Build 저장소도 활성화를 해주고, epel-release 저장소도 설치해 준다. Kernel 헤더와 개발 라이브러리 설치 커널 헤더와 개발 라이브러리를 설치해야 한다. Nvidia […]

HowTo, Linux

rpmbuild 방법

rpm(RedHat Pakcage Management)는 RedHat 계열에서 사용되는 패키지 시스템이다. 레드햇이 리눅스로 사업을 시작하는데 가장 큰 영향을 줬다고 해도 과언이 아닌 시스템이 바로 RPM이다. 아주 간단하면서도 손쉽게 만들 수 있어서 지금도 많이 사용된다. Source RPM 은 RPM을 작성하기 위한 소스를 제공하는데, RPM 작성에 필요한 모든 것이 담겨 있다. 그래서 뭔가 약간의 기능을 추가/삭제를 하고 싶은 RPM을 제작하고 싶다면 Source RPM 을 다운받아서 설치해서 리빌드해주면 된다. 이때 사용하는 명령어가 rpmbuild 명령어다. 이 포스트는 rpmbuild 를 위한 기초를 다룹니다. 설치 rpmbuild 도 명령어이기 때문에 […]

HowTo, Linux

리눅스 자동 로그아웃 설정

TMOUT 로그 TMOUT 쉘 환경 변수를 설정하면 지정한 시간동안 쉘과 상호작용, 키보드 입력이나 마우스 사용이 없을 경우에 자동으로 로그아웃을 해주게 된다. 그런데, 이렇게 로그아웃을 할 때에 시스템에는 어떤 로그를 남길까? 어뜻 보면 Client 로부터 접속이 차단된것 처럼 로그가 남지고 있다. 현장에서 이걸 보고 사용자가 로그아웃 된 것으로 해석하는 경우가 많은 이유이기도 하다. 하지만 쉘에서 보면 다음과 같다. 이렇게 로그가 다르게 남는 이유가 무엇을까? Shell vs SSHD 서비스 쉘은 sshd 서비스를 이용해 접속하게 되면 받게 되는 사용자 인터페이스다. 굳이 따지자면 sshd […]

HowTo

Harbor 업데이트 하기

현재 개인적으로 Harbor 를 사용하고 있다. 별로 중요하지 않은 프로젝트여서 크게 신경쓰지 않는 저장소인데, 그래도 이래저래 테스트를 하는데 유용하다. Harbor 를 사용하다가 새로운 버전이 출시되어서 어떻게 업데이트를 했는지를 기록으로 남겨둔다. Harbor Stop Harbor 를 정지 시켜야 한다. Harbor 는 Docker-compose 기반으로 작동됨으로 docker-compose 명령어를 이용해서 다음과 같이 정지를 시켜줘야 한다. Backup 혹시 잘못됐을때를 대비해 Backup 을 해준다. 디렉토리를 그냥 복사해주는 것으로 하면 된다. 새로운 버전 다운로드 Docker 명령어를 이용해서 새로운 버전의 harbor 이미지를 다운로드 한다. 데이터베이스 Migration 하기 기존의 데이터베이스를 […]

Spring framework

Spring boot 에 systemd 유닛 만들기

요즘 프로젝트를 하고 있는데, 역시나 자바 시스템이 있다. Spring Boot3 을 사용하고 있고 자바 17을 쓰는등 나름대로 괜찮은 환경에서 개발이 이루어지고 있다. 그런데, 이것을 서버에서 배포를 하고 Spring Boot 를 실행해야 하는데, 어떻게 하나 봤더니 초보자 수준도 못 벗어나는 설정을 하고 있으니… 안타까운 마음에 어떻게 하는 것이 좋은 것인지 한번 적어봤다. Spring boot, jar 실행 파일 Spring Boot3 를 컴파일 하면 jar 파일 나온다. 그리고 별다른 서버 없이도 바로 실행하고 접속이 가능해 진다. 한가지 재미있는 사실은 많은 사람들이 Spring boot3 […]

HowTo

node_exporter 설치하기

node_exporter 는 OS 에 대한 각종 지표를 수집해주는 exporter 다. Prometheus 가 읽어 갈수 있도록 작은 웹서버로 작동된다. 설치야 바이너리로 배포를 하기 때문에 아키텍쳐에 맞게 다운받아서 설치를 하면 된다. 압축 풀고 시작하면 그만일 정도로 아주 간단하다. Prometheus 에 exporter들은 대부분 간단하다. 복잡하게 설치하지는 않는다. 그런데… 고려해야하는 부분이 존재한다. 일단, 설치부터… Download & Install 다운로드는 Github 저장소에 받으면 된다. node_exporter 디렉토리가 보이고 그 안에 node_exporter 바이너파일이 있다. 이것을 적당한 곳으로 이동시키놓으면 끝난다. 어떻게 시작/중지 할건지… 여기서 이제 고민을 해야한다. 많은 사람들은 […]

HowTo

Running a arm64 of guest on x86_64 host via kvm

최근들어 arm64 아키텍쳐가 인기가 많아졌다. 애플의 실리콘 반도체라고 불리는것도 arm64 기반이며 Windows 11 도 arm64 에서도 작동된다. 리눅스는 오래전부터 다양한 아키텍쳐로 포팅이되었기 때문에 arm64 를 위한 배포판도 다양하게 존재한다. 문제는 arm64 아키텍쳐를 경험하기 위해서 arm64 하드웨어가 있어야 했지만, 이제는 x86_64 기반의 가상머신을 이용하면 arm64 아키텍쳐를 게스트로 운영할 수 있다. 이 문서는 x86_64 기반 가상머신에서 arm64 아키텍쳐기반의 게스트를 실행하는 방법에 대해서 기술한 것이다. x86_64 가상머신 x86_64 아키텍쳐 기반의 가상머신으로 리눅스 운영체제를 기반으로 KVM 을 활용하고 있다. GUI 툴로서 virt-manager, CLI 로는 […]

HowTo

민트 리눅스에 KVM 가상환경 구성하기

민트 리눅스 21.03 에서 KVM 가상환경을 구성해 본다. 구성에 핵심은 KVM 의 네트워크 설정이다. 앞서 설정한 OpenvSwitch 를 이용하도록 설정 해야 한다. 네트워크 환경 KVM 가상화를 위해서는 네트워크 환경을 먼저 고려해야 한다. 필자의 경우에는 공유기를 이용하고 있다. 외부 광랜으로 들어온 라인을 모뎀에서 받아서 이더넷로 변환해준다. 여기서 랜선으로 공유기에 연결하고 각 컴퓨터에 연결해서 쓴다. 공유기는 다들 아는 IpTime 인데, IpTime 은 새로운 장비가 접속되면 자동으로 사설IP 를 할당해 준다. 이것을 외부로 내보낼때는 NAT 기능을 이용해서 하나의 인터넷 라인으로 공유기 안쪽에 많은 […]

HowTo

Linux HotSwap 사용하기

컴퓨터 하드웨어가 발달하면서 기존 서버시스템의 기능을 데스크탑에서도 사용할 수 있게 되었다. 그중에 하나가 Hot Swap 이다. 스토리지(Storage) 를 컴퓨터를 끄지 않고도 교체할 수 있는게 Hot Swap 기능이다. BIOS 설정 Hot Swap 을 이용하기 위해서는 BIOS 에 기능을 활성화 해줘야 한다. 제조사마다 BIOS 설정 메뉴가 다르지만 내가 사용하는 메인보드의 경우에는 다음과 같이 설정이 가능하다. Hot Plug 라고 이름이 다르지만 이것이 Hot Swap 이다. 만을 BlOS 에서 이 메뉴가 없다면 메인보드에서 Hot Swap 기능을 제공하지 않는 것이다. Linux 에서 사용하기 대부분의 최근의 […]