블로그 이전 - K8S에서 onPrem으로

라즈베리파이에 SSD Hat을 씌워서, 이전에 USB나 SDCard로부터 구동되는 OS가 SSD Hat에서 구동되게 만들었다.

들인 비용은, HAT과 SSD(128GB) 합쳐서 3만원 남짓... 들었는데...
일단 SSD Hat으로 부팅되게 만드는 것부터가 난관으로... 제조사의 충분한 설명이 없어서 삽질을 많이 함... 결론은, SSD Hat에 연결되는 SSD에 처음부터 라즈베리 OS 파티셔닝이 되어 있어야 인식이 되며, 일단 붙이고 나서 설치하는 건 안됨

어쨌든 OS를 우분투 24.04로 설치 완료하고 CUPS, Ghost 등의 이전을 실시...

  1. CUPS(프린터 서버) 설치
  • CUPS는 별도의 서버 설치 필요 없이, 우분투에 기본으로 포함되어 있음
  • 그런데... 내 Epson L3100은 CUPS에 제대로 된 드라이버가 없고, Epson 사이트를 가도 ARM64용의 제대로 된 드라이버 없음(Armv7용만...) 따라서 기본 Cups는 지우거나 사용하지 말고, 차라리 도커 컨테이너를 사용하면 훨씬 낫다... 특히 K8S때 사용하던 도커허브 이미지를 사용하니, 프린터 드라이버가 제대로 동작한다.
docker run -d --name cups \
    --restart unless-stopped \
    -p 631:631 \
    --device /dev/bus/usb \
    -e CUPSADMIN=#### \
    -e CUPSPASSWORD=#### \
    -e TZ="Asia/Seoul" \
    -v /etc/cups:/etc/cups \
    -v /dev/bus/usb:/dev/bus/usb \
    -v /var/run/dbus:/var/run/dbus \
    anujdatar/cups
  • 위의 --device나 -v로 붙인 /dev/bus/usb 등은 프린터 접근을 위해 컨테이너에 디바이스를 붙인 것...

  • 기본 설치는 localhost:631로만 설정되어 있어서, 로컬 서버가 아니면 접근이 불가함

    • /etc/cups/cupsd.conf를 수정할 것(아래 참고)
# Only listen for connections from the local machine.
#Listen localhost:631
Listen /run/cups/cups.sock
#Listen 192.168.0.83:631
Port 631

ServerAlias *
# Show shared printers on the local network.
Browsing On
BrowseLocalProtocols dnssd

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Web interface setting...
WebInterface Yes

# Timeout after cupsd exits if idle (applied only if cupsd runs on-demand - with -l)
IdleExitTimeout 60

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow all
</Location>

# Restrict access to the admin pages...
<Location /admin>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow all
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow all
</Location>
  1. Ghost 설치
  • https://ko.linux-terminal.com/?p=3505 를 참고하여 작업
  • nodejs, nginx, mariadb 를 설치한 후에 ghost를 설치하면 됨(npm설치도 필요)
  • DDNS서비스로 CODNS를 사용하고 있고, 무료로 이용중이기 때문에 1일 1회의 갱신이 필요하다
    • 이건 내가 root로 Linux Binary를 shell script로 만들어서 crontab을 매일 자정에 돌리는데
    • 문제는 이 Binary가 32bit 버전이라는거... 자세한 것은 /root/readme.txt에 적어놨으니 참고
  • Ghost 설치하면서 Let's encrypt SSL도 해 줘서 편함