Pular para o conteúdo principal

CUPS PDF - Deploy Kubernets

Deploy de CUPS PDF no Kubernetes

CUPS PDF - Deploy Kubernetes

Introdução

O Common UNIX Printing System (CUPS) é um sistema de impressão modular para sistemas Unix-like que permite que um computador funcione como um servidor de impressão. Nesta publicação, vamos mostrar como configurar um servidor CUPS utilizando Docker e Kubernetes para implantar um serviço de impressão PDF.

Passo 1: Criar o Dockerfile

O primeiro passo é criar um Dockerfile que define a imagem Docker do nosso servidor CUPS. Crie um arquivo chamado Dockerfile com o seguinte conteúdo:

# Use uma imagem base do Ubuntu
FROM ubuntu:24.04

# Instale o CUPS e suas dependências
RUN apt-get update && \
    apt-get install -y cups && \
    apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y cups-pdf && \
    apt-get clean

# Crie usuários e defina suas senhas, e adicione-os ao grupo lpadmin
RUN useradd usuario1 && \
    echo "usuario1:password" | chpasswd && \
    usermod -aG lpadmin usuario1 && \
    useradd usuario2 && \
    echo "usuario2:password" | chpasswd && \
    usermod -aG lpadmin usuario2
    
# Copie o arquivo de configuração do CUPS
COPY cupsd.conf /etc/cups/cupsd.conf

# Exponha a porta 631
EXPOSE 631

# Inicie o CUPS
CMD ["/usr/sbin/cupsd", "-f"]
            

Passo 2: Criar o arquivo de configuração do CUPS (cupsd.conf)

O próximo passo é criar o arquivo de configuração do CUPS. Crie um arquivo chamado cupsd.conf com o seguinte conteúdo:

LogLevel warn
MaxLogSize 0

# Allow remote access
Port 631
Listen 0.0.0.0:631
Listen /run/cups/cups.sock
DefaultEncryption Never
Browsing On
BrowseLocalProtocols dnssd
DefaultAuthType Basic
WebInterface Yes

# Allow access from anywhere

  Order allow,deny
  Allow all



  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow all



  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow all



  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow all

            

Passo 3: Criar o deployment.yaml

Para implantar o CUPS no Kubernetes, precisamos de um arquivo de configuração do Kubernetes. Crie um arquivo chamado deployment.yaml com o seguinte conteúdo:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cups
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cups
  template:
    metadata:
      labels:
        app: cups
    spec:
      containers:
      - name: cups
        image: cups:latest
        ports:
        - containerPort: 631
        - containerPort: 443
            

Passo 4: Fazer o build da imagem Docker

Com o Dockerfile e o arquivo de configuração prontos, o próximo passo é construir a imagem Docker:

#docker build -t cups:latest .
            

Passo 5: Criar uma tag para a imagem

Depois de construir a imagem, crie uma tag para a imagem que será usada no repositório Docker:

#docker tag cups:latest url-repositório/cups:latest
            

Passo 6: Fazer o push da imagem para o repositório

Envie a imagem para o repositório Docker:

#docker push url-repositório/cups:latest
            

Passo 7: Fazer o deploy da imagem no Kubernetes

Finalmente, aplique o deployment no Kubernetes:

#kubectl apply -f deployment.yaml