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 anywhereOrder 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