전체 글 27

KVM Bridged Networking Configuration

지난 번에는 KVM을 설치하고 X11 Forwarding을 통해 Virt-manager를 사용하는 것 까지 해봤습니다.이번 포스팅에서는,  KVM Networking 설정 방법을 공유하도록 하겠습니다.Bridged Network Configuration KVM 구축을 하면 기본적으로, Default Network로 NAT가 구성됩니다. virsh net-list --all 명령어를 통해 확인하실 수 있습니다. 본인의 서버구성 목적에 따라 네트워킹 구성에 정답은 없지만, 필자는 가정용 서버에 KVM을 설치하였고, 이를 iptime 공유기에서 배분하는 사설IP를 각각의 Guest OS에 동적 할당하도록 할 것입니다. 그렇다면 어떻게 해야 할까요? Bridged Network 기술을 사용하면 됩니다. 해당 네..

Linux/Ubuntu 2024.07.26

KVM install on Ubuntu 22.04 CLI

KVM install on Ubuntu 22.04 CLI ● 목표 Ubuntu 22.04 CLI 환경에서 KVM을 설치한 다음, Windows 환경에서 X11을 통해 KVM 환경을 구성합니다. KVM은 Kernel-based Virtual Machine의 약자로, 리눅스 커널을 기반으로 가상화를 지원하는 오픈 소스 가상화 솔루션입니다. KVM은 가상화 확장 기술(Intel VT-x, AMD-V)을 사용하기에 해당 기능을 BIOS에서 활성화해야합니다. 필자는 Ubuntu 22.04 CLI 환경에서 KVM을 구성했으며, 가상머신을 구축하기 위해 CLI 명령을 사용하지 않고 X11 프로토콜을 활용하여 구성하였습니다.● 설치KVM을 사용할 수 있는 환경인지 확인해야 합니다.egrep -c '(vmx|svm)' ..

Linux/Ubuntu 2024.07.25

[Spring Framework] IntelliJ Community 환경 구성

[Spring Framework] IntelliJ CE 환경 구성 IntelliJ Community 버전으로 Spring Framework 환경 구성하는 법을 작성합니다. 사용된 버전 IntelliJ - 2024.1 JDK - Amazon Corretto 11.0.21 WAS - apache tomcat 9.0.88-windows-x64 WEB - 실습용이기에 WAS로 대체 [IntelliJ - Spring Framework 환경 구성] [세부 항목] Name : 프로젝트 이름을 기재합니다. Location : 프로젝트가 저장될 경로를 지정합니다. JDK : 해당 프로젝트에 사용할 JDK를 선택합니다. (필자는 Amazon Correto 11.0.21을 Local PC에 설치 후 진행하였음.) Arche..

Java/Spring 2024.04.19

[Java의 정석 - 1장] Java

[개인 기록] 남궁성 저자의 Java의 정석을 읽고 공부한 내용을 요약/정리합니다. Java Sun MicroSystems에서 개발한 객체지향 프로그래밍 언어 Java의 특징 1. 운영체제에 독립적인 언어 자바는 운영체제에 따라 프로그램의 변동사항이 없다. 이는 JVM을 통해서 가능한데, 자바 응용프로그램이 JVM과 통신 후, JVM이 OS가 이해할 수 있도록 변환하여 전달한다. 따라서, JVM은 운영체제에 종속적이어서 OS에 따라 서로 다른 버전의 JVM이 있다. 2. 객체지향언어 상속, 캡슐화, 다형성을 적용한 언어다. 3. 자동 메모리 관리 가비지컬렉터(Garbage Collector)가 자동적으로 메모리를 관리하기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도 된다. JDK(Java Deve..

Java/Java 2024.04.18

Docker in Docker

Docker in Docker 내가 이해한 점 Docker는 Docker Client와 Docker Server로 나뉘어있고 그 사이에 REST API로 소통을 한다. 결국 Client는 요청을 할 뿐 실질적으로 Build, Run, Push 등.. 각종 명령어들의 수행은 Docker Daemon(Server)에서 수행한다. 보통 로컬에서 도커를 실행할 때는 클라이언트와 서버의 역할을 동시에 하지만, Gitlab CI 에서는 도커 클라이언트의 역할만 수행하기에 Docker Daemon의 역할을 수행할 수 있는 수단이 필요하다. 이 문제점을 해결하기 위한 방법으로 dind가 있다. 따라서, .gitlab-ci.yml 에 다음과 같이 docker:dind를 구성할 수 있다. 이것 또한 컨테이너이며 Servi..

ELK Stack install

ELK Stack 1. 개요 · Elasticsearch 로그 저장 및 검색 · Logstash 로그 수집 엔진 · Kibana 로그 시각화 및 관리 Elasticsearch, Logstash, Kibana 세 가지 기술이 합쳐진 로그 수집 기술입니다. FIlebeat는 본연이 가지고 있는 로그를 그대로 읽어서 뒷단에 보내주는 역할만 합니다. 로그를 파싱을 한다던지, 어그리게이션하는 역할은 logstash에서 담당합니다. Elasticsearch에서 해당 인덱스를 인덱싱하고 저장합니다. 그 이후에 키바나를 통해 클라이언트에게 시각화를 제공합니다. 2. Elastic Search es의 master node는 split brain 현상을 엘라스틱서치 2번 노드에서 r_shard2가 p_shard2로 승격하..

Jenkins CI/CD

Jenkins CI/CD 목표 Jenkins 내에서 CI를 구성, ArgoCD 에서 CD를 구성한다. 젠킨스 Job 생성하기 대쉬보드 → 새로운 Item → Pipeline 1. GitHub hook trigger for GITScm polling 체크하기 2. Pipeline → Definition → Pipeline script from SCM → SCM에서 GIT 클릭 → Repository URL 설정 → Branch Specifier (blank for 'any') 에서 Branch 지정 ->Script Path 에서 Jenkinsfile 기입 1-1. app.py Github 레포지터리에 “GitOps Test” 메시지를 출력하는 웹서비스를 제공하는 파이썬 코드를 작성하여 등록합니다. from..

Public Cloud/CICD 2023.01.20

Github Actions

Github Actions · Github 저장소에서 CI / CD 자동화를 할 수 있게 해주는 도구입니다. 개념 · Workflows: 작업 뭉치 · Events: 작업 뭉치 동작하는 이벤트, push, release, pull request, 스케줄, 등 · Jobs: 동시 수행 가능한 작업 단위 · Runners: Job 실행되는 곳. GitHub이 제공하는 가상 머신(Linux, macOS, Windows) · Steps: 순서대로 실행되는 쉘 커맨드 또는 action · Actions: 재사용할 수 있는 job의 step. 공유된 action은 GitHub Marketplace에서 구할 수 있음. 장점 · 별다른 CI/CD 서비스가 필요 없다. (No separate CI/CD service) ..

Public Cloud/CICD 2023.01.20

Webhook Relay - Jenkins Github Webhook

Webhook Agent 솔루션을 사용해서 테스트한다. 관련 솔루션은 많기 때문에 그 중에 webhookrelay를 골랐다. 간단하게 해당 솔루션에 대해 설명하자면, Github와 같이 Webhook을 사용하는 경우, Webhook Relay를 통해 사설 IP를 가진 도메인을 공인 IP와 연결하여 Webhook을 사용할 수 있다. 가령, Github Repository가 변경할 때 마다 Webhook을 통해 Jenkins 파이프라인을 동작하려고 한다. 하지만, AWS EC2 같은 공인IP를 가진 곳에 젠킨스를 설치하면 Webhook을 걸 수 있지만, 현재는 로컬PC에 젠킨스서버를 설치한 상황(사설 IP라 Github사이트에서 사설IP인 젠킨스 서버를 등록하지 못함.) https://webhookrelay..

Git flow

git flow Git-flow에는 5가지 종류의 브랜치가 존재합니다. 항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있습니다. · master : 제품으로 출시될 수 있는 브랜치 · develop : 다음 출시 버전을 개발하는 브랜치 · feature : 기능을 개발하는 브랜치 · release : 이번 출시 버전을 준비하는 브랜치 · hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치 처음에는 master와 develop 브랜치가 존재하며 develop 브랜치에서는 상시로 버그를 수정한 커밋들이 추가됩니다. 새로운 기능 추가 작업이 있는 경우 develop 브랜치에서 feature 브랜치..

Public Cloud/CICD 2023.01.19