Linux

오픈 소스 구현을 이용한 NETCONF Hands-On

오픈 소스 구현을 이용한 NETCONF Hands-On

오픈소스를 이용하여 NETCONF 의 간단한 동작을 확인 해보자.

사용할 오픈소스 구현은 다음과 같다.

  • libyang: YANG 데이터 모델링 언어의 파서와 툴킷을 제공한다. sysrepo, libnetconf2, netopeer2에서 사용된다.
  • sysrepo: YANG 으로 모델링된 데이터의 데이터 스토어를 제공한다.
  • libnetconf2: NETCONF 서버와 클라이언트에서 사용되는 라이브리를 제공한다.
  • netopeer2: NETCONF 서버와 테스트용 클라이언트를 제공한다.

설치 하기

설치에 시간이 걸리기 때문에 빠른 테스트를 위해 도커 이미지를 만들어 놓았다.

시스템에 도커가 설치되어 있다면 별도의 설치 없이 테스트가 가능하다.

구글 도메인에서 DDNS 사용하기

Google Domains

Google Domains에의 도메인 등록 과 고객 정보를 Squarespace, Inc. 로 이전 하기로 하였다. 자세한 내용은 여기를 참고 하자. 아직 구글 도메인즈를 통해 도메인에 대한 관리는 가능하지만 이전에 완료 되는 대로 Google Domains 서비는 종료 할 것으로 보인다. 즉, 이전에 완료된 후에는 Squarespace에서 도메인을 관리 해야 한다.

시간을 내어 관리 하고 있는 도메인의 네임서버를 Cloudflare로 이전하는 작업을 하였다.

DDNS with Google Domains

잠시 짬을 내어 창고에서 잠자고 있던 구형 PC로 개발 서버로 쓰기 위해 리눅스도 설치 하고 몇가지 개발 환경을 구축 했다. 유동 IP를 쓰다 보니 할당받은 IP가 변경 되었을 때 외부에서 접속할 방법이 마땅치 않아 내가 사용하는 도메인 네임 서비스인 구글 도메인즈에 을 통해 DDNS 설정을 하기로 하였다.

fcitx 한글 입력기 사용하기

Gnome 기본 IM(Input Method)인 IBus 입력기에 문제가 있어 fcitx로 입력기를 변경 했다.

Arch Linux

pacman -S fcitx5 fcitx5-hangul fcitx5-gtk fcitx5-qt fcitx5-configtool 

/etc/environment

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

시스템을 재시작 하면 fcitx가 자동 실행된다.

Insync Moving to new computer without re-syncing

이 글에서는 Insync을 사용중 PC를 옯기거나 OS를 재설치 하여야 하는 경우 재 동기화 없이 데이터를 옮기는 방법에 대하여 설명한다.

Insync: Google Drive Syncing Application for Linux

Insync: 리눅스를 위한 Google Drive 동기화 어플리케이션

Insync 종료

PC를 Apple에서 Banana로 옯기는 경우 Apple PC와 Bnana PC에서 Insync를 종료 한다. OS를 다시 설치 하는 경우 해당 PC의 Insync만 종료 한다.

insync quite
insync-headless quite

Data 디렉터리 백업 또는 이동

다른 컴퓨터로 이동

Insync의 동기화 폴더를 Apple에서 Banana로 이동한다.

리눅스의 경우 rsync로 동기화 할 수 있다. 이동 하고자 하는 Banana에 접속 하여 아래 명령을 수행한다.

실제 명령 입력 시 Apple은 자신의 기존 컴퓨터의 호스트네임으로 변경한다.

AppleBanana의 동기화 디렉터리는 경로가 같아야 한다.

Insync 3.x auto start with systemctl

Desktop 라이센스로 같이 사용할 수 있을 줄 알았는데. 서버용 라이센스를 별도로 구매 해야 된다. WTF 그것도 일년에 39.99 달러, 거기다 나처럼 Google Workspace를 사용하여 gmail.com 이 아닌 커스텀 도메인 을 사용하는 사람은 일년에 159.99 달러다. 돈이 썩어 나는구나. 다음글을 참고 하여 Insync Desktop 버젼을 자동실행 하는 방법을 사용하자. Insync 3.x auto start with xvfb and systemctl. 굳이 연간 39.99 달러나 159.99 달러를 내면서 headless 버젼을 사용하고 싶으신 분은 다음글을 참고 하기 바란다.

그냥 GoodSync로 갈아 타 버릴까?

이 글에서는 Google Drive 와 One Drive의 third-party 동기화 유틸인 Insync의 headless 버전을 설치 하고 자동 실행 하는 방법에 대하여 알아본다.

Insync: Google Drive Syncing Application for Linux

Insync: 리눅스를 위한 Google Drive 동기화 어플리케이션

Insync가 3.x 버전으로 판올림 되면서 headless 버전이 사라지는 바람에 xvfb를 통해 우회 실행 하는 방법에 대하여 설멍한 적이 있다.

하지만 Insync 3.x 대한 headless 버전이 릴리즈 되었기 때문에 이런 번거로운 작업이 필요 없어 졌다.

잘 돌아가는 Insync를 headless 버전으로 바꾸기 귀찮아서 미루고 있었는데 이번에 Ubuntu Box를 Bionic에서 Focal로 판올림 하는 김에 시간을 내서 headless 버전으로 변경 하였다.

Prerequisites

  • insync-headless

Insync headless 설치

Insync의 설치 방법은 Insync - Linux에서 Google Drive Desktop Client 사용하기를 참고 한다.

Continous Deployment Hugo with Github Actions

Continous Deployment Hugo with Github Actions

Github Page(이하 GH)를 사용하여 정적 사이트를 배포 하고자 한다.

jekyll 유명한 Static Site Generator가 있지만 Go를 공부할 목적으로 Hugo 를 선택했다.

Hugo는 Github Page에서 공식적으로 지원하는 jekyll과 달리 로컬에서 정적 사이트를 빌드 하여 GH 저장소에 push 해주어야 한다.

Github 에서지원하는 CI/CD 인 Github Actions을 이용하여 이를 자동화 할 수 있는데 Github Actions은 일반적은 CI/CD 와 사용법이 비슷하다.

Hugo 시작하기

Installing

ArchLinux

pacman 명령으로 설치한다.

sudo pacman -Syu hugo

Ubuntu

Ubuntu 공식 패키지로 등록 되어 있으므로 apt 명령으로 설치 한다.

sudo apt install hugo

Terminator 화면 분할 상태에서 브로드캐스트시 문자 두번 입력 문제

Multiple GNOME terminal in one window

Terminator Terminal Emulator

터미털 에뮬레이터의 화면 분할 기능을 제공하는 Terminator Terminal Emulator를 사용한다.

무엇 보다 손에 익었고 화면 분할 기능을 제공하는 터미널 에뮬레이터에는 없는 그룹 브로드캐스트 기능을 제공하기 때문에 터미널을 여러 개 열어 놓고 그룹별로 다른 입력을 해야 하는 테스트에 적합하다.

문제점

브로드캐스트 시 문자 두번 입력

얼마전 아래 위의 그림 처럼 부터 화면 분할 상태에서 브로드캐스트 기능을 키면 수신받는 터미널에서 문자가 2번 입력되는 문제가 발생한다.