Instalação Offline
Como fazer o Chinaski rodar em uma máquina que não pode (ou não deve) alcançar a internet.
Em uma máquina conectada: faça o bundle
O repositório embarca um criador de bundle:
bash install/make-bundle.shIsso produz um tar.gz contendo o código-fonte da aplicação, todos os tarballs de módulos CPAN, um instalador de módulos embutido e o script de instalação (com um arquivo de checksum).sha256 ao lado, para que a transferência via USB possa ser verificada. (A verificação de integridade é a finalidade do arquivo; verifique antes da transferência.)
Na máquina alvo: instale sem internet
Dois pré-requisitos rígidos e uma ressalva:
- Os pacotes de sistema (perl, make, gcc, sqlite3, e as três dev libraries de imagem + openssl e cpanminus para o instalador) devem existir no alvo ou ser providenciados de um espelho local / um conjunto de .deb pré-baixados.
- Em placas ARM, certifique-se de instalar explicitamente essas dev libraries de imagem, caso contrário o módulo de processamento de imagens falhará na compilação.
Então:
tar -xzf chinaski-<commit>.tar.gz
sudo bash install.sh # instalação padrão: cria o usuário de sistema chinaski, instala a unit systemd, inicializa o banco de dadosO instalador instala os módulos CPAN estritamente do bundle, “nenhuma conexão de saída é feita”. Ele escreve o arquivo de ambiente para você, com um segredo de sessão gerado e o modo air-gap ativo, para que o app instalado seja seguro-offline desde a primeira inicialização. Duas opções: --no-service pula o systemd (bom para configurações rápidas de servidor único), e --prefix /srv/chinaski escolhe um diretório de instalação.
Executando imediatamente
Sem systemd: dê source no arquivo de env gerado, export PERL5LIB=./local/lib/perl5, execute o hypnotoad embarcado sobre a aplicação, o admin estará em host:8080. Com systemd: habilite a unit chinaski@<instance> como em uma instalação normal.
O que lembrar
- O bundle também leva seus scripts de instalação e arquivos por instância, de modo que as máquinas alvo nunca precisam chamar o repositório para nada no momento da instalação.
- Cada deployment é por instância: o mesmo padrão de instalação via tarball é o que uma “segunda instância” usa no mesmo host offline.