wbh16/iba_lic_cad

By wbh16

Updated almost 2 years ago

Servidor de licença da Autodesk, basta inserir o arquivo gerado no site e iniciar o container.

Image
Networking
0

10K+

wbh16/iba_lic_cad repository overview

Aqui está a formatação do seu texto com a estrutura e o estilo adequados para o Docker Hub:


Instalação e Configuração do Servidor de Licença AutoCAD com Docker

Preparando o Ambiente

Consideramos que seu servidor Docker e Docker Compose estão totalmente operacionais.

Passo 1: Configuração do Diretório do Projeto
  • Vá até a pasta dos seus projetos Docker no servidor raiz:

    cd /root/app/
    
  • Crie a pasta do projeto e entre nela:

    mkdir 10-MLTOOLS_Auto_cad && cd 10-MLTOOLS_Auto_cad
    
Passo 2: Compilar a Imagem Base para o Container
  • Crie o arquivo que conterá as instruções para gerar a imagem (Dockerfile):

    nano Dockerfile
    
  • Adicione ao arquivo o conteúdo:

    FROM rockylinux/rockylinux
    LABEL maintainer="[email protected]"
    ARG NLM_URL=https://damassets.autodesk.net/content/dam/autodesk/www/files/linux/nlm11-19-4-1-ipv4-ipv6-linux64.tar.gz
    ARG TEMP_PATH=/tmp/flexnetserver
    EXPOSE 2080
    EXPOSE 27000-27009
    
    # Atualiza o sistema e instala pacotes necessários
    RUN yum update -y && \
        yum install -y tar redhat-lsb-core wget && \
        yum clean all
    
    RUN mkdir -p ${TEMP_PATH} && cd ${TEMP_PATH} && \
        wget --progress=bar:force ${NLM_URL} && \
        tar -zxvf *.tar.gz && rpm -vhi *.rpm && \
        rm -rf ${TEMP_PATH}
    
    # Cria um grupo e um usuário específico para executar o lmgrd
    RUN groupadd -r lmadmin && \
        useradd -r -g lmadmin lmadmin
    
    # Cria pasta onde será escrito os log no arquivo lmgrd.log
    RUN mkdir -p /var/logs/flexlm /usr/local/flexlm/licenses /opt/flexnetserver && \
    touch /var/logs/flexlm/debug.log && \
    chown -R lmadmin:lmadmin /usr/local/flexlm /var/logs/flexlm /var/logs/flexlm/debug.log
    
    # Define o diretório de trabalho onde o lmgrd será executado
    WORKDIR /opt/flexnetserver
    
    # Define o usuário para executar o lmgrd
    USER lmadmin
    
    # Adiciona os comandos do flexlm ao PATH
    ENV PATH="${PATH}:/opt/flexnetserver/"
    
    # lmgrd -z flag é necessário para 'Executar em primeiro plano' para que o Docker não entre em modo sleep
    ENTRYPOINT ["lmgrd", "-z"]
    
    # Comando para iniciar o servidor de licença
    CMD ["-c", "/usr/local/flexlm/licenses/license.dat/", "-l", "/var/logs/flexlm/debug.log"]
    
Passo 3: Edição do Arquivo Docker Compose
  • Edite o arquivo do Docker Compose:

    nano docker-compose.yml
    
  • Adicione ao arquivo o conteúdo abaixo (editando conforme necessário):

    version: '3.8'
    services:
      rockylinux:
        build: .                         # Indica que o Dockerfile está no diretório atual
        image: wbh16/iba-lic-cad:latest  # Nome e tag da imagem que será gerada
        container_name: Lic_AutoDesk     # Nome do container
        restart: unless-stopped
        cap_add:
          - ALL
    
        #################################### Estes itens serão editáveis ################################
        hostname: "iba_lic_autod"          # Define o hostname fixo
        mac_address: "11:22:33:44:55:6F"   # Defina o endereço MAC fixo aqui separados por dois pontos ":"
        networks:
          vlan_rede_admin:
            ipv4_address: "10.10.10.200"
        #################################################################################################
    
        volumes:
          - ./license.dat:/usr/local/flexlm/licenses/license.dat:ro
        ports:
          - 2080:2080
          - 27000-27009:27000-27009
    #    logging:
    #      driver: "syslog"
    #      options:
    #        syslog-address: "udp://10.10.10.13:514"
    #        tag: IBA-Lic_AutoCad
    networks: # Verificar na documentação da instalação do Docker onde a rede vlan_rede_admin é criada
      vlan_rede_admin:
        external: true
    
Passo 4: Script de Inicialização
  • Crie um script para facilitar o início do serviço:

    nano Instala.sh
    
  • Adicione ao arquivo o conteúdo:

    #!/bin/bash
    
    # Nome da rede Docker
    NETWORK_NAME="vlan_rede_admin"
    
    # Sub-rede e gateway
    SUBNET="10.10.10.0/20"
    GATEWAY="10.10.10.1"
    
    # Nome do projeto Docker Compose (ajustar conforme necessário)
    COMPOSE_PROJECT_NAME="Lic_AutoDesk"
    
    # Função para iniciar tudo
    start() {
        # Verifica quantidade de arquivos .lic
        lic_count=$(ls -1 *.lic 2>/dev/null | wc -l)
        if [ $lic_count -eq 1 ]; then
            # Renomeia o arquivo .lic para license.dat
            mv *.lic license.dat
            echo "Arquivo .lic renomeado para license.dat."
        elif [ $lic_count -gt 1 ]; then
            echo "Existem $lic_count arquivos .lic na pasta. Deve existir apenas um arquivo de licença na pasta."
            exit 1
        else
            echo "Nenhum arquivo .lic encontrado na pasta."
        fi
    
        dat_count=$(ls -1 *.dat 2>/dev/null | wc -l)
        if [ $dat_count -eq 1 ]; então
            # Ajustando permissões dos arquivos .lic
            chmod 755 *.dat
        elif [ $dat_count -gt 1 ]; então
            echo "Existem $dat_count arquivos .dat na pasta. Deve existir apenas um arquivo de licença na pasta."
            exit 1
        else
            echo "Nenhum arquivo .dat encontrado na pasta."
            exit 1
        fi
    
        # Verifica se a rede já existe
        if ! docker network ls | grep -q "$NETWORK_NAME"; então
            echo "A rede $NETWORK_NAME não existe. Criando a rede..."
            docker network create -d bridge --subnet=$SUBNET --gateway=$GATEWAY $NETWORK_NAME
        else
            echo "A rede $NETWORK_NAME já existe."
        fi
    
        # Executa o Docker Compose
        docker-compose build && \
        docker-compose up -d
    }
    
    # Função para parar tudo
    stop() {
        docker-compose down
    }
    
    # Função para parar e limpar tudo relacionado ao projeto
    stop_limpa() {
        docker-compose down --volumes
        docker rmi $(docker images -q "${COMPOSE_PROJECT_NAME}_*") -f
        echo "Containers, imagens e volumes relacionados ao projeto foram removidos."
    }
    
    # Case para lidar com os argumentos
    case "$1" em
        start)
            start
            ;;
        stop)
            stop
            ;;
        stop_limpa)
            stop_limpa
            ;;
        *)
            echo "Uso: $0 {start|stop|stop_limpa}"
            exit 1
            ;;
    esac
    
    exit 0
    
Passo 5: Copiar o Arquivo de Licença

Se você estiver no Windows e precisa copiar para o servidor, use o FileZilla com comunicação via SFTP. Conecte-se ao servidor Docker e envie o arquivo de licença gerado para a pasta do projeto, que neste caso é a pasta /root/app/10-MLTOOLS_Auto_cad.

Dicas Extras
  • Para obter o hostname do servidor:

    docker exec Lic_AutoDesk /opt/flexnetserver/lmutil lmhostid hostname
    
    lmutil - Copyright (c) 1989-2023 Flexera. All Rights Reserved.
    The FlexNet host ID of this machine is "HOSTNAME=iba_lic_autod"
    
  • Para obter o endereço MAC do servidor:

    docker exec Lic_AutoDesk /opt/flexnetserver/lmutil lmhostid
    
    lmutil - Copyright (c) 1989-2023 Flexera. All Rights Reserved.
    The FlexNet host ID of this machine is "7d0b3c2d4e6f"
    
  • Verificar se o container está rodando:

    docker ps
    
    CONTAINER ID  IMAGE                  COMMAND                CREATED          STATUS    PORTS            NAMES
    16c5f5891512 wbh16/iba_lic_cad:1.0 "lmgrd -z -c /usr/lo…"   10 hours ago Up 10 hour                 Lic_AutoDesk
    
  • Verificar se o AutoCAD está usando o servidor: Na aba superior, clique em "Efetuar login" e vá à última opção "Gerenciar licença...". Abrirá uma tela com as informações.


Sinta-se à vontade para ajustar o conteúdo conforme necessário para refletir as especificidades do seu projeto e servidor.

Tag summary

Content type

Image

Digest

sha256:4cfde3f41

Size

197.6 MB

Last updated

almost 2 years ago

docker pull wbh16/iba_lic_cad:k8s