경매 공매 지도/개발일지

로컬 USB 프린터를 네트워크 프린터로 만들기 (ESXi 7 + Photon OS + Docker + CUPS)

오리야호 2022. 4. 14. 02:32
반응형

이전에 네트워크 프린터 서버 역할을 하던 라즈베리 제로가 망하면서 이걸 살려야 하나 싶다가..

 

예전에 라즈베리파이에 아래 방식으로 설치했었습니다.

(ARM 프로세서라 삼성에서 공식으로 배포하는 리눅스 드라이버 설치가 안되서 고생 좀 했던 기억이 나네요)

 

https://blog.oriang.net/20?category=939009 

 

Raspberry Pi 활용 삼성 SL-M2027 네트워크 프린터로 만들기

몇년 전 삼성 SL-M2027을 구매했습니다. 구매할 당시엔 PC에 바로 연결해서 사용할 것이고 네트워크 프린터로 굳이 사용할 이유가 없다고 생각했었어요. 출력할 문서가 필요하면 USB 연결해서 출력

blog.oriang.net

 

 

최근 구매한 NUC에 도커 설치하면서 첫 컨테이너로 CUPS를 설치하였습니다.

 

 

아.. 사실 첫 컨테이너는 portainer 였네요.

 

 

만약 Intel CPU가 장착된 Synology를 사용하고 있다면 Synology에 있는 도커를 이용하면 좋을 듯 하네요.

 

Photon OS 설치

 

 

일단 ESXi 환경에서 도커 설치는 Photon OS를 사용하는 가이드가 많았습니다.

 

 

찾아보니 그럴려고 만든 OS 였네요. vmware에서 배포하는 OS로 가상화 환경에 최적화된 미니멀한 리눅스 기반의 운영체제라고 소개하고 있습니다.

 

 

다른 버전이지만 잘 정리해둔 글이 있어서 참고하시면 좋을 것 같습니다.

 

http://egloos.zum.com/mcchae/v/11314059

 

[ESXi 6.5] Photon OS 설치하여 Docker Host로 운영하기

거의 지난 주말부터 ESXi 서버에 대해서 살펴보고 있습니다. ESXi 서버는 그 안에 필요한 VM을 하나 하나 설치하는 것이니, 쉽게 말해 나만의 IaaS 를 구축한다고 할 수 있겠습니다. (ESXi 서버가 https

egloos.zum.com

 

 

https://github.com/vmware/photon/wiki/Downloading-Photon-OS

 

GitHub - vmware/photon: Minimal Linux container host

Minimal Linux container host. Contribute to vmware/photon development by creating an account on GitHub.

github.com

 

저는 OVA with virtual hardware v13 (UEFI Secure Boot) 로 설치하였습니다.

 

 

ESXi에서 설치과정 필요 없이 사전 설치된 OVA format을 사용하였습니다.

 

 

OVA 설명에 향상된 부팅 및 런타임 성능을 제공하는 "위생적"이고 최적화된 커널이 포함되었다는 말이 인상적이네요.

 

 

이미지로 VM을 하나 생성 해주고

 

고정 IP 설정

https://vmware.github.io/photon/assets/files/html/3.0/photon_admin/setting-a-static-ip-address.html

 

Setting a Static IP Address · VMware Photon OS 3.0 Documentation

No results matching ""

vmware.github.io

 

가상화 사양 변경

- CPU, 메모리, 디스크용량 추가 할당

 

최신 패키지 업데이트

tdnf update

 

 

도커 활성화

# 상태 확인
systemctl status docker

# 활성화
systemctl enable docker

# 시작
systemctl start docker

 

 

 

 

Portainer 설치(Optional)

 

portainer 를 사용하면 손쉽게 GUI로 도커를 관리할 수 있습니다.

 

필수 설치는 아니며 필요한 경우만 설치해서 사용하시면 됩니다.

 

https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux

 

Install Portainer with Docker on Linux - Portainer Documentation

de5b28eb2fa9 portainer/portainer-ce:2.9.3 "/portainer" 2 weeks ago Up 9 days 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp portainer

docs.portainer.io

 

# 볼륨 생성
docker volume create portainer_data

# 컨테이너 생성
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:latest

 

CUPS 도커 설치

 

1. ESXi 호스트 장치에 USB로 꽂은 프린터가 인식되는지 확인

 

ESXi 호스트 SSH 접속 허용으로 변경 후 usbutils 패키지 설치

 

tdnf install usbutils

 

 

 

2. Docker 용으로 사용하고 있는 VM (Photon OS) Geust에 USB 패스스루 설정

 

 

3. Docker가 설치된 VM상에서 USB 인식 확인

 

4. CUPS Docker 설치

 

dockerhub에 있는 cups중 다운로드와 start가 가장 높은 이미지로 설치함

 

https://hub.docker.com/r/olbat/cupsd

 

Docker Hub

 

hub.docker.com

 

#도커 생성 (/dev/bus/usb 경로를 로컬과 연결해주는 것이 포인트)
docker run \
-d --restart always \
-p 631:631 \
-v /var/run/dbus:/var/run/dbus \
-v /dev/bus/usb:/dev/bus/usb \
--name cupsd \
olbat/cupsd

 

설치된 주소로 접속하면 관리자페이지로 접근할 수 있습니다.

 

http://192.168.0.21:631/

 

 

프린터 드라이버를 설치해줍니다.

 

https://www.samsung.com/sec/support/model/SL-M2027/

 

Samsung 대한민국

 

www.samsung.com

 

#컨테이너 id 확인
docker ps

#도커 컨테이너 bash 
docker exec -it 컨테이너ID /bin/bash

#프린터 드라이버 다운로드
wget https://downloadcenter.samsung.com/content/DR/201510/20151028115008613/uld_v1.00.36_00.91.tar.gz

# 압축해제
tar zxvf uld_v1.00.36_00.91.tar.gz

# 설치
sh install-printer.sh

 

 

http://192.168.0.21:631/ 관리자 페이지에서 프린터를 추가해줍니다.

 

로그인 하라고 하면 print/print (기본 계정/비번)

 

 

 

 

 

 

 

드라이버는 Samsung M2020 Series 선택 합니다.

 

다른 컴퓨터에서 공유된 프린터를 사용할 수 있도록 설정을 조금 변경해준다.

 

/etc/cups/cupsd.conf 파일을 편집하거나 웹 관리자에서 Edit Configuration File 수정

 

Listen *:631

<Location />
  # Allow shared printing and remote administration...
  Order allow,deny
  Allow localhost
  Allow 192.168.0.0/24
</Location>

<Location /admin>
  # Allow remote administration...
  Order allow,deny
  Allow localhost
  Allow 192.168.0.0/24
</Location>

 

 

맥, 윈도우에서 네트워크 프린터 추가

 

IPP 방식으로 프린터를 추가하였습니다.

 

윈도우에서는 프린터 추가 → 이름으로 공유 프린터 선택 → http://192.168.0.21:631/printers/Samsung_M2020_Series

입력 후 추가하였습니다.

 

해당 URL은 관리자 화면에서 프린터 페이지를 사용하면 IPP 방식으로 프린터를 추가할 수 있습니다.

 

 

왜 처음부터 네트워크 프린터를 구매 하지 않았을까요...

 

ㅠㅠ

 

반응형