편(編) 13

NTP Server 설치 - OpenNTPD

사내 서버에서 자꾸만 time sync가 어긋나면서 그 위에서 동작하는 애플리케이션들이 문제를 일으키기 시작했다. 문제의 원인은 이렇다. 사내 서버는 보안을 위해서 오직 사내에서만 사용하기 때문에, 외부 네트워크 연결이 안 된다. 그래서 public NTP 서버에 접속이 안 되고, 계속 조금씩 조금씩 시간이 어긋나게 된 것이었다. 해결 방법은 간단했다. 사내에서 외부로 인터넷 연결이 가능한 컴퓨터에 NTP 서버를 설치하고, 사내 서버에서 해당 NTP 서버에 연결하면 된다. 설치 방법은 아래와 같다. - NTP Server 설치 및 실행 sudo pacman -S openntpd sudo systemctl enable --now openntpd > 인터넷 연결할 수 있는 컴퓨터 OS가 Archlinux 인..

편(編)/설치 2022.03.02

ansible 설치

Ansible은 자동화 도구다. 설정 관리, 응용프로그램 배포, 클라우드 프로비저닝 등등 굉장히 다양한 일들을 할 수 있다. 필자는 보통 Openstack이나 Kubernetes처럼 여러 대 노드에 설치와 설정을 해야 할 때 Ansible을 사용한다. 복잡한 일들이 그냥 시간 때우는 일 정도로 변해버린다. 아주 좋다. 설치 Ansible은 아래와 같은 2가지 방법으로 설치할 수 있다. 둘 중 하나를 선택하면 된다. 패키지 매니저 OS의 패키지 매니저를 사용하는 경우, 설치/삭제/업그레이드가 굉장히 쉽게 이루어진다. 그러므로 이 방법을 추천한다. Archlinux sudo pacman -S ansible --noconfirm Fedora 34 sudo dnf install ansible -y Ubuntu ..

편(編)/설치 2021.11.07

Clean Architecture - 2장. 두 가지 가치에 대한 이야기

모든 소프트웨어는 이해관계자에게 서로 다른 두 가지 가치를 제공한다. 행위(Behavior)와 구조(Structure)이다. 행위 누군가가 프로그래머를 고용하는 이유는 아래와 같다. 수익 창출 비용 절약 이해관계자는 기능 명세서와 요구 사항 명세서를 고용된 프로그래머에게 제공한다. 프로그래머는 이러한 요구 사항들을 만족하도록 코드를 작성하며, 요구 사항을 위반할 때 디버깅을 진행한다. 구조 소프트웨어(software)는 부드러운(soft)과 제품(ware)의 합성어이다. 여기서 부드럽다는 변경하기 쉽다는 것을 뜻한다. 즉, 소프트웨어는 변경하기 쉬운 제품을 의미한다. 프로그래머는 변경하기 쉬운 제품을 만들기 위해 소프트웨어의 구조를 잘 만들고, 이 구조를 향상하거나 유지해야 한다. 더 높은 가치(행위 v..

편(編)/책 2021.11.03

Clean Architecture - 1장. 설계와 아키텍쳐

설계(Design)와 아키텍처(Architecture)는 아키텍트(architect) 관점에서 차이가 없다. 단, 아키텍처는 고수준, 설계는 저수준의 무언가를 가리킬 때 흔히 사용된다. 흔히 사용된다는 것이지 반드시 그렇다는 게 아니다. 하지만 설계와 아키텍처(이하 설아)는 개별로 존재할 수 없으며, 각각을 구분 짓는 경계도 명확하지 않다. 고수준에서 저수준으로 향하는 의사결정의 연속성만 있을 뿐이다. 설아의 목표와 품질 척도 설아의 목표는 다음과 같다. "필요한 시스템을 만들고, 유지보수하는 비용을 최소화하는 것이다." 설아의 품질 척도는 다음과 같다. "새로운 기능을 추가할 때마다 비용이 증가한다면, 나쁜 설계이다." 나쁜 설아를 하는 이유 코드는 나중에 정리하면 돼, 당장은 시장에 출시하는 게 먼저..

편(編)/책 2021.11.02

kubernetes 설치 - minikube

로컬 환경에서 싱글 노드 구성, 멀티 노드 구성을 쉽게 할 수 있다. 가상머신 혹은 컨테이너를 사용하기 때문에 어떤 운영체제를 사용하더라도 문제없이 사용할 수 있다. 요구사항 CPU: 2 core 이상 RAM: 2 GB 이상 DISK: 20 GB 이상 컨테이너 혹은 가상머신 - Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, Virtualbox, Vmware 같은 것 중 하나 개인적으로 Window : Virtualbox Linux : KVM 를 추천한다. minikube 설치 운영체제에 따라 minkube를 설치하는 방법이 아주 조금 다르다. windows https://storage.googleapis.com/minikube/releases/latest/mi..

편(編)/설치 2021.10.25

kubernetes 설치

kubernetes는 이름이 너무 길기도 하고, 오타 자체도 너무 많이 발생해서 보통 k8s로 줄여 부른다. 이 포스팅에서도 k8s로 줄여 부르겠다. k8s는 컨테이너 오케스트레이션 도구이다. 컨테이너 오케스트레이션 도구는 다수의 노드에서 컨테이너의 배포, 관리, 확장, 네트워크의 자동화를 해준다. 하지만, 이 컨테이너 자동화를 하기 위해서 설정해야 하는 것들이 아주 많아서 설치 자체가 어렵다. 이러한 문제를 해결하기 위해 k8s를 쉽게 설치할 수 있는 다양한 방법이 존재한다. 이 포스팅에서는 k8s를 설치하는 방법들에 대해 다루겠다. 새로운 설치 방법을 접할 때마다 업데이트할 예정이니, 설치 자체가 너무 힘들다 싶을 때 한 번씩 들려주시면 감사하겠다. 설치 방법 설치 방법에 앞서 자신이 k8s를 설치하..

편(編)/설치 2021.10.25

kubernetes 설치 - kubespray

요구사항 kubespray는 ansible을 통해 kubernetes를 자동으로 다수의 노드에 설치해준다. 하지만, 모든 운영체제에서 설치할 수 있는 것이 아니며, 아래의 운영체제에서만 설치할 수 있다. Ubuntu 16.04, 18.04, 20.04 CentOS/RHEL/Oracle Linux 7, 8 Debian Buster, Jessie, Stretch, Wheezy Fedora 31, 32, CoreOS openSUSE Leap 15 Flatcar Container Linux by Kinvolk 다른 운영체제에서도 막상 해보면 될 수 있으나, 위의 운영체제들은 공식 웹사이트에서 설치 가능하다고 표기되어있다. 패키지 설치 이 포스팅에서는 Ubuntu 20.04를 기준으로 진행하며, 패키지 설치를 제..

편(編)/설치 2021.10.04

gitlab 설치

개요 gitlab은 git 기반 코드 저장소이다. 필자는 gitlab을 외부에 코드를 공개하기는 싫고, 나 혼자 쓰고 싶을 때 사용한다. 이 포스트에서는 podman을 이용하여 gitlab을 설치하는 방법에 대해 다룬다. 요구 사항 CPU core: 2개 이상 RAM: 4G 이상 라즈베리파이 같은 경우, gitlab 구동은 굉장히 어렵다. 차라리 gogs같은 다른 코드 저장소를 사용하기를 바란다. 단, gogs는 gitlab과 같은 다양한 기능을 제공하지 않는다. host 설정 host 설정은 보통 안 해도 된다. 그런데, OS에 따라 localhost가 설정 안 되어 있을 수가 있다. 설정 안 되어 있을 때만 설정하면 된다. /etc/hosts 127.0.0.1 localhost podman 설치 [편..

편(編)/설치 2021.09.20

podman 설치

docker가 보안 이슈를 문제 삼아 유료화되었다. 물론, 개인용으로는 계속 무료로 사용할 수 있다. 하지만, 충분한 대체재인 podman이 존재하므로, 이 기회에 podman을 사용하기로 했다. 현재는 Archlinux에 대한 것만 정리했다. 나머지 운영체제는 기회가 되면 살펴보겠다. Archlinux 설치 sudo pacman -S podman --noconfirm 설정(주의) 일반 사용자가 podman을 실행할 수 있도록 해준다. 하지만, 보안 문제로 인해 권장하지 않는다. 네트워크의 격리가 보장되었을 때, 혹은 잠깐의 테스팅일때에만 수행하길 바란다. sudo sysctl -w kernel.unprivileged_userns_clone=1 sudo touch /etc/subuid /etc/subgi..

편(編)/설치 2021.09.14

nextcloud 설치

넘쳐나는 파일들을 관리하기 위해서 개인적인 것들은 google drive에서 관리하고, 회사와 관련된 것들은 Onedrive에서 관리한다. 그런데, 무료로 쓰다 보니 용량 제한 문제도 있고, 접속이 느려지는 현상도 빈번히 발생하고, 로그인 자체가 안되는 경우도 가끔이지만 발생했다. 이러한 문제들을 해결하기 위해서 사설 서버에 nextcloud를 설치하기로 했다. 욕할 대상이 서비스 업체에서 나로 변경된다. 마조인가? 설치 간단한 설치와 관리를 위해 docker를 이용한다. docker 설치는 docker 설치를 보면 된다. 먼저, yaml 파일을 생성한다. nextcloud_docker.yml version: '3.9' services: db: image: postgres restart: always v..

편(編)/설치 2021.09.06