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