Installing Asdf

python 은 pyenv, ruby 는 rbenv, terraform 은 tfenv 참 다양한 version manager (VM) 이 존재한다. 그 덕분에 버전을 쉽게 바꿔가며 개발을 할수 있음에 감사한다. 최근에 asdf-vm 라는 version manager 를 알게 되어 연휴동안 golang, python 을 설정해보았다. 동작원리는 plugin 마다 shim 이 생성되어 관리되고, asdf 가 .tool-versions 정의된 정보를 바탕으로 해당 버전을 실행한다. guide 가 잘 되어 있어서 설치 하는 과정만 간단히 정리해 둔다. 설치 (zsh & homebrew) $ brew install asdf $ echo -e "\n....

May 6, 2024 · foobargem

Investigate VPN connection issues

지금 회사는 AWS Client VPN 을 사용하고 있고, 종종 VPN 연결이 안된다는 연락을 받고 있다. 대부분의 경우는 Client VPN endpoint 의 Connections 정보와 IAM Identity Center 에서 해당 유저의 Active sessions 를 점검하고, 설정 변경 여부를 확인하면서 해결을 할수 있었다. 이번에는 좀 특이한 상황이었기에 기록을 남겨둔다. VPN Client 로 연결을 시도했더니 Connection failed. Try again. 이라는 오류가 나면서 연결이 안되고 있다고 슬랙으로 연락을 받았다. 처음에는 Identity Center 에서 해당 유저의 Active sessions 에 1개의 session 이 확인되어, 삭제하고 다시 연결을 해달라고 답을 했다....

February 8, 2024 · foobargem

IAM role and metadata service for EC2

TL;DR: EC2 instance 의 IAM role 은 metadata service 가 필요하다 EC2 instance 에서 S3 같은 다른 리소스에 접근하기 위해서 자격증명(Credentials) 을 사용해야 한다. 몇가지 방법들이 있지만 instance profile 로 IAM role 을 만들고, EC2 instance 에 IAM role 을 할당하는 것이 일반적인 방법이다. 최근에 TLS 인증서 교체 작업중 EC2 instance 의 IAM role 이 동작할때 metadata service 의 관련이 있는것을 알게 되어서 이 글을 작성한다. 새로운 TLS 인증서 파일은 S3 bucket 에 업로드를 해두었다....

September 16, 2023 · foobargem

v0.12 에서 v0.14 로 terraform 업그레이드

사용자에게 제공되는 이미지를 OpenStack 의 Glance 에 업로드할때 Consul 과 Terraform 을 활용하고 있다. 이미지의 속성들을 Consul 의 kv store 에 저장해두고 Terraform 의 consul provider 와 openstack provider 를 사용하여 이미지 업로드 및 state file 로 이력관리를 하고 있다. 2019년 하반기부터 지금까지 잘 사용하고 있던 Terraform 버전은 v0.12.10 이고 작성된 tf 파일들도 v0.12.10 에 맞게 작성되어 있다. 배경 버전이 좀 낮지만 잘 사용하고 있었기 때문에 업그레이드는 고려하지 않고 있었다....

February 24, 2021 · foobargem

Vault 를 사용한 TrustedUserCAKeys 기반 SSH 인증 구현

LDAP 또는 Kerberos 같은 통합인증(Single Sign-On)을 사용하지 않는 환경이라면 password 인증 또는 authorized_keys 인증을 주로 사용할 것이다. 팀 구성원에 변화(입사/퇴사)가 생기는 경우 password 를 변경하거나, 사용자의 public key 를 authorized_keys 에서 제거 또는 추가를 해야 한다. ansible 같은 도구를 통해 관리를 해 나갈수 있지만 쉽지만은 않다. 게다가 인프라가 지속적으로 늘어나기에 이상적으로 관리하는 것은 쉽지 않은것 같다. 그래서 보통은 private key 를 공유해서 사용하는 경우가 빈번한것 같다. CA(Certificate Authority) 기반 인증 CA 서버를 통해서 각 사용자의 public key 에 대한 서명된 인증서를 발급받아 SSH 인증에 사용하는 방법이다....

October 22, 2020 · foobargem

라즈베리파이와 wifi - Operation not possible due to RF-kill

Raspberry Pi OS(이전의 Raspbian) 를 부팅한뒤 wpa_supplicant, interfaces 정보를 적절하게 설정하고 wlan0 인터페이스를 활성화 하려고 하니 이런 오류가 발생! root@raspberrypi:~# ifup wlan0 Internet Systems Consortium DHCP Client 4.4.1 Copyright 2004-2018 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ RTNETLINK answers: Operation not possible due to RF-kill Listening on LPF/wlan0/dc:a6:32:b2:5e:db Sending on LPF/wlan0/dc:a6:32:b2:5e:db Sending on Socket/fallback DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5 send_packet: Network is down dhclient....

June 15, 2020 · foobargem

RPi3로 wifi extender 만들기

굴러다니는 RPi3 를 활용해서 wifi extender (wifi 拡張ポイント)를 만들어 보았다. LAN cable 을 연장하기 싫어서 wireless nic 2개로 bridge 구성을 했다. 처음에는 단순하게 hostapd 를 사용하여 wlan1 을 ap 로 구성하고, br0(linux-bridge) 에 wlan0 를 추가해주면 끝날것으로 생각했다. 그러나 wlan0 를 br0 에 추가하면 아래와 같이 실패가 된다. # brctl addif br0 wlan0 can't add wlan0 to bridge br0: Operation not supported 좋은 방법이 없을까 고민을 하다가 openvswitch 로 시도를 해보았다....

June 1, 2020 · foobargem

rabbitmq_exporter rpm packaing

OpenStack 을 지탱하는 Message queue 인 RabbitMQ 를 모니터링 하기 위해서 방안을 찾던중, 이미 퇴사한 친구가 구성해둔 Prometheus 가 있어서 활용하기 위해 rabbitmq_exporter 를 찾아 보았다. PoC 를 위해서 https://github.com/kbudde/rabbitmq_exporter 를 사용하여 구성을 하기로 했는데, 당장 production 환경을 Docker 같은 container 환경으로 구성할수 없어서 rpm build 를 해야 했다. 이번에는 누구나 언제든 rpmbuild 를 할수 있도록 Docker 기반으로 스크립트를 만들었다. rpm packaing $ git clone https://github.com/foobargem/packaging-rabbitmq_exporter.git $ cd packaging-rabbitmq_exporter $ make rpm 특별한 오류가 없다면 output 디렉토리에 rabbitmq_exporter-2020....

May 3, 2020 · foobargem

Docker container 로 Graylog 구동하기

Ubuntu 의 cloud-config 기반의 자동설치를 시험하다 디버깅을 위해 syslog 수집이 필요해서 graylog 를 docker 로 구성을 해보았다. 단순히 디버깅 목적이라 production 에서 사용하려면 많은 검증이 필요하다. 준비 환경은 Debian 10(buster) 기준이다. 필요한 것 VM docker docker-compose 우선 TOAST Cloud 에서 Debian 10 기반의 VM을 하나 생성한다. VM 접속후 docker 및 docker-compose 를 설치한다. 아래와 같은 스크립트면 docker, docker-compose 설치 및 debian user 에 docker 권한을 추가해준다. sudo apt update sudo apt -y install \ apt-transport-https ca-certificates curl \ gnupg gnupg-agent software-properties-common curl -fsSL https://download....

May 3, 2020 · foobargem

v4.19 kernel 에서 xfs 의 barrier/nobarrier mount option 이 제거됨

kernel 변화에 따른 성능변화를 측정하기 위해서 CentOS 7.4 / 3.10.0-693.21.1.el7.x86_64 기반의 시스템에 elrepo 의 kernel(5.5.x) 을 설치하고 재부팅을 했다. 그런데, 오랜 시간이 지나도 ssh 접속이 되지 않았다. (beta 장비라서 OOB 구성이 안되어 있음) 어쩔수 없이 IDC 엔지니어에게 요청을 해서 다시 3.10.0-693.21.1.el7.x86_64 로 부팅을 했다. 동일 형상의 VM 을 가지고 elrepo 의 kernel 을 설치하고 console 화면을 확인해보니 부팅 중에 root filesystem 을 마운트 하지 못하여 maintenance mode 가 되어 있는게 원인이었다....

March 31, 2020 · foobargem