Four Season https://www.junsclub.net A blog of personal stories <![CDATA[tuya IoT Core 인증토큰 만료기간 연장]]>     ]]> Wed, 16 Jul 2025 13:17:36 +0000 <![CDATA[Ubuntu에 docker 설치하기]]> apt update & apt upgrade를 먼저 진행합니다.  

Docker 설치하기

이전과 동일하게 필수 패키지먼저 설치하도록 하겠습니다.

필수 패키지 설치

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

GPG Key 인증

문제없이 설치가 다되었으면 Docker의 GPG Key 인증을 하도록 하겠습니다.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
ok가 나오면 됩니다.  

docker repository 등록

이제 아키텍쳐에 맞춰서 Docker repository를 등록해주도록 하겠습니다. 혹시 아키텍쳐 확인을 원하시면 arch 명령어를 입력해주시며 됩니다. 저희환경의 경우 x86_64 입니다.
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
   

apt docker 설치

  레포 등록이 완료되었으니 이제 apt 명령어로 설치만 해주면 됩니다.
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
설치가 완료되면 docker -v 명령어로 확인해봅니다. 이제 시스템 부팅시 docker가 시작되도록 설정하고 실행도 시켜보겠습니다.
sudo systemctl enable docker && service docker start
service docker status
  이렇게 Active가 뜨신다면 docker 서비스 구축까지 완료한것입니다. 이제 다음단계인 portainer를 시작하겠습니다.    

portainer 구축하기

  사실 portainer의 경우 이전 포스팅에서도 많은 설치를 했기때문에.. 또해야 되나 싶지만 환경이 다르니 또 하겠습니다. portainer는 docker의 이미지,컨테이너,네트워크등을 쉽게 관리할 수 있게 도와주는 GUI Web 서비스 입니다.   docker의 이미지라는 개념이 생소할 수도있는데 윈도우 설치에 필요한 iso라고 보시면 될거같습니다. iso로 윈도우를 설치하듯이 이미지로 docker의 컨테이너를 생성하게됩니다. 이 이미지(iso 같은)는 hub.docker.com에서 검색해보면 엄청나게 방대한양의 데이터베이스가 있습니다. 이번에 설치할 portainer도 찾아본다면 아래처럼 나오게 됩니다. 이외에 cent os, nginx, mariadb 등등 docker의 이미지는 엄청많으니 궁금하면 들어가서 찾아보시면 됩니다. 항상 지원하는 아키텍쳐를 확인하는게 좋습니다.   사용법도 들어가면 자세하게 나와있으나.. 양이 방대해서 따로 설명하지않겠습니다.   portainer 컨테이너 설치에 앞서 컨테이너와 host(vm)간에 볼륨매칭을 위한 디렉터리 생성부터 진행하겠습니다.
mkdir -p /data/portainer
  그리고 docker run 명령어로 실행시켜주도록 하겠습니다.
docker run --name portainer -p 9000:9000 -d --restart always -v /data/portainer:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
길어보이지만 하나씩 설명해보면 –-name 으로 컨테이너 이름 생성, -p 호스트 포트 9000 내부포트 9000번 , -d 데몬으로 백그라운드, –restart always 재부팅시 자동시작, -v /data~~ 호스트와 컨테이너간 볼륨매칭, docker.sock도 마찬가지로 공유, portainer/portainer 이미지 사용순 입니다.  

테스트

  VM 의 IP:9000 으로 웹브라우저로 접속합니다. 저같은경우 http://ip:9000 입니다. 처음에 관리자 계정 생성해주는데 원하는대로 입력하시면 됩니다. Local Docker와 Connect 입니다. 생성 완료되었습니다. 이제 이곳에서 도커의 이미지와 컨테이너,네트워크를 쉽게 할 수 있습니다.]]>
Wed, 19 Mar 2025 09:38:56 +0000
<![CDATA[워드프레스 리눅스 docker 설치]]> 설치환경 Ubuntu 22.04 LTS docker / docker-compose wordpress용 도메인 구성 (wp-test.dalso.org) NPM 구성  

워드프레스 컨테이너 생성하기

  도커를 구동할 폴더를 생성한뒤 docker-compose.yml 파일을 만들어줍니다. 여기서 wordpress와 DB를 한번에 구동합니다.  
mkdir -p /data/wordpress cd /data/wordpress vi docker-compose.yml
  컨테이너 내용에서 수정할 부분은 DB정보정도 입니다. 버전은 latest부분을 입맛에 맞게 수정해주시면됩니다.(mysql 이나 mariadb나 아무거나..)
version: ‘3.1’ services: wordpress: image: wordpress:latest restart: always ports: – 8080:80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: examplepass WORDPRESS_DB_NAME: exampledb volumes: – ./data:/var/www/html db: image: mysql:8.0 restart: always environment: MYSQL_DATABASE: exampledb MYSQL_USER: exampleuser MYSQL_PASSWORD: examplepass MYSQL_RANDOM_ROOT_PASSWORD: ‘1’ volumes: – ./db:/var/lib/mysql
  docker-compose up -d 로 컨테이너를 실행시켜줍니다. 컨테이너가 생성되면 ip:8080 포트로 접속해주시면 됩니다.]]>
Wed, 19 Mar 2025 09:38:29 +0000
<![CDATA[리눅스에서 APC UPS 연결 데몬 설치]]> apcupsd 설치

아래 명령어를 입력하여 apcupsd를 설치한다.

sudo apt install apcupsd

apcupsd 설정

설치가 완료되었으면 이제 설정을 해야한다.

내가 구매한 모델은 USB를 이용하여 연결이 가능한 모델이어서 USB 연결 기준으로 설명한다.

아래 명령어를 입력하여 데몬 설정 파일을 연다.

sudo vi /etc/apcupsd/apcupsd.conf

...
...
...
UPSCABLE usb
...
...
...
UPSTYPE usb
...
...
...
DEVICE
...
...
...

위와 같이 3개의 설정을 변경해준다,

  1. UPSCABLE usb

    • UPS와 usb를 통하여 연결했기 때문에 usb로 설정한다.

  2. UPSTYPE usb

    • usb를 통한 연결 정의

  3. DEVICE

    • 기본값으로는 tty… 라고 적혀있는데 usb 연결 시에는 아무것도 써주지 않아야 한다. (자동으로 찾는다)

기타 나머지 자세한 설정들이 존재하는데, 해당 설정마다 모두 주석이 달려있기 때문에 읽어보고 설정하기 바란다.

그 후 아래 명령어로

sudo vi /etc/default/apcupsd

# Defaults for apcupsd initscript (unused with systemd as init).
# Set to "yes" to enable startup of apcupsd.
ISCONFIGURED=yes

ISCONFIGURED 부분이 처음에는 no로 되어 있는데 yes로 바꿔서 구성이 완료되었음을 저장한다.

그 후 서비스가 자동실행 되도록 아래 명령어를 입력하여 활성화 시켜준다.

sudo systemctl enable apcupsd

서비스 재실행

sudo systemctl restart apcupsd

아래 명령어를 입력하여 연결되어 있는 ups의 상태를 볼 수 있다.

apcaccess

APC      : 001,036,0867
DATE     : 2022-12-24 17:19:26 +0900  
HOSTNAME : kimhwan
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : kimhwan
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2022-12-24 16:29:59 +0900  
MODEL    : Back-UPS BX1200MI 
STATUS   : ONLINE 
LINEV    : 221.0 Volts
LOADPCT  : 11.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 41.0 Minutes
MBATTCHG : 50 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
SENSE    : Low
LOTRANS  : 140.0 Volts
HITRANS  : 300.0 Volts
ALARMDEL : 30 Seconds
BATTV    : 13.4 Volts
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : OK
STATFLAG : 0x05000008
BATTDATE : 2001-01-01
NOMINV   : 230 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 650 Watts
FIRMWARE : 294201G -302201G 
END APC  : 2022-12-24 17:19:42 +0900

정상적으로 연결되어 정보를 받아온다.

다른 서버와의 추가 연결 방법

현재 UPS와 서버가 usb를 통하여 연결되어 설정이 되어 있는데, 해당 UPS에는 사실 총 2대의 서버가 연결되어 있다.

그런데 UPS에는 한 개의 usb 포트밖에 없기 때문에 usb를 통하여 서버와 추가로 연결은 불가능하다.

더 비싼 제품의 UPS에는 snmp를 이용한 네트워크 방식으로 UPS를 연결할 수 있지만 내가 구매한 모델은 그러한 기능은 탑재되어 있지 않다.

그래서 메인서버에 설정했던 apcupsd의 기능을 이용해서 추가로 연결하는 방법을 정리한다.

추가 연결을 위한 apcupsd 설정

usb로 연결이 되어 있는 서버에서 아래 명령어를 입력하여 데몬 설정 파일을 연다.

sudo vi /etc/apcupsd/apcupsd.conf

...
...
...
NETSERVER on
...
...
...
NISIP 0.0.0.0
...
...
...
NISPORT 3551
...
...
...

위와 같이 3개의 설정을 변경해준다.

  1. NETSERVER on

  2. NISIP 0.0.0.0

    • 외부 접속을 위해서 loopback ip를 0.0.0.0으로 변경한다.

  3. NISPORT 3551

    • 원하는 포트 설정 (나는 기본값을 사용했다)

그 후 아래 설정파일을 열어서 현재 서버의 정보와 추가로 연결할 서버의 정보를 입력한다.

sudo vi /etc/apcupsd/hosts.conf

# Network UPS Tools - hosts.conf
#
# This file does double duty - it lists the systems that multimon will
# monitor, and also specifies the systems that upsstats is allowed to 
# watch.  It keeps people from feeding random addresses to upsstats,
# among other things.  upsimage also uses this file to know who it 
# may speak to. upsfstats too.
#
# Usage: list systems running upsd that you want to monitor
#
# MONITOR <address> "<host description>"
#
# Please note, MONITOR must start in column 1 (no spaces permitted)
#
# Example: 
# MONITOR 10.64.1.1 "Finance department"
# MONITOR 10.78.1.1 "Sierra High School data room #1"
#
MONITOR x.x.x.x "Proxmox-MainServer"
MONITOR x.x.x.x "Proxmox-SubServer"

서비스 재실행

sudo systemctl restart apcupsd


이제 추가 연결을 위한 서버에서도 위에서 했던것과 동일하게 apcupsd 설치를 진행하고 설정을 해야 한다.

아래 명령어를 입력하여 데몬 설정 파일을 연다.

sudo vi /etc/apcupsd/apcupsd.conf

...
...
...
UPSCABLE ether
...
...
...
UPSTYPE net
...
...
...
DEVICE x.x.x.x:3551
...
...
...
NETSERVER on
...
...
...
NISIP 0.0.0.0
...
...
...
NISPORT 3551
...
...
...

위와 같이 6개의 설정을 변경해준다,

DEVICE x.x.x.x:3551 부분은 UPS와 연결되어 있는 서버의 IP를 입력한다.

그 후 동일하게 apcaccess 명령어를 입력해서 상태를 보면 정상적으로 연결이 된 것을 볼 수 있다.

APC      : 001,037,0928
DATE     : 2022-12-24 17:33:43 +0900  
HOSTNAME : deskmini
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : kimhwan
CABLE    : Ethernet Link
DRIVER   : NETWORK UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2022-12-24 16:29:36 +0900  
MASTERUPD: 2022-12-24 17:33:43 +0900  
MASTER   : 192.168.0.92:3551
MODEL    : Back-UPS BX1200MI 
STATUS   : ONLINE SLAVE 
LINEV    : 219.0 Volts
LOADPCT  : 11.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 41.0 Minutes
MBATTCHG : 50 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
SENSE    : Low
LOTRANS  : 140.0 Volts
HITRANS  : 300.0 Volts
BATTV    : 13.4 Volts
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : OK
STATFLAG : 0x05000408
BATTDATE : 2001-01-01
NOMINV   : 230 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 650 Watts
FIRMWARE : 294201G -302201G 
END APC  : 2022-12-24 17:33:51 +0900

이제 갑자기 전원이 나가는 상황에서도 서버가 종료되지 않거나, 정상적으로 종료과정을 거칠 수 있는 시간을 벌 수 있게 되었다.

]]>
Wed, 19 Mar 2025 09:37:42 +0000