Instalação automatizada do LibreOffice em máquinas Windows

    From The Document Foundation Wiki


    Introdução

    Licenciamento deste artigo

    Este artigo está licenciado sob uma Licença Creative Commons Atribuição-Uso-Não-Comercial-Compartilhamento pela mesma licença. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

    Documentação e scripts

    O Problema

    Como automatizar a instalação/atualização do LibreOffice e suas extensões em centenas/milhares de estações Windows® conectadas a uma rede? Muitos já se depararam com essa situação e realmente é algo muito importante para ganharmos escalabilidade, principalmente dentro de corporações. O propósito deste artigo é explicar como contornar esse problema utilizando ferramentas livres para automatizar essa tarefa.

    O Gerador de Scripts NSIS

    O NSIS (Nullsoft Scriptable Install System) é uma solução que gera sistemas de instalação através da compilação de scripts (http://nsis.sourceforge.net/Main_Page).

    A Dinâmica da Solução

    Público-alvo: Estações Windows XP®/Vista®/7® conectadas a uma rede Windows®.

    Pré-requisitos:

    • Compilador de scripts NSIS;
    • Ferramenta de edição de código Notepad++;
    • Servidor que disponibilize a funcionalidade de login script;
    • Um drive de rede com permissão de leitura pelo usuário e que possua os arquivos de instalação do LibreOffice (exemplo: drive H:);
    • Um drive de rede com permissão de leitura/escrita pelo usuário para controlar o número de instalações simultâneas (exemplo: drive P:).

    A solução é composta por dois scripts, com comentários detalhados. Um deles faz a instalação do LibreOffice e o outro aplica personalizações ao produto, como por exemplo, a instalação de extensões.

    Primeiramente, você deve colocar esses scripts em um sistema de login script no servidor de sua rede de modo que as estações conectadas os executem a cada login do usuário.

    Logo após o login, o script “LibreOffice_inst_teimosinha-v2.nsi” é carregado para a memória. Em um primeiro momento, ele irá verificar se o LibreOffice já se encontra instalado na estação. Não encontrando a instalação, ele irá verificar a quantidade de instalações simultâneas, como forma de evitar o sobrecarregamento da rede, conforme valor definido no arquivo P:\LibreOffice\contador.txt (a localização do “contador.txt” pode ser alterada, no código fonte do script, para se adequar à sua estrutura de drives/pastas). Estando dentro do limite pré-definido por você, o instalador verificará o espaço disponível.

    Atendida essas três variáveis...

    • já está instalado? (sim/não)
    • está dentro do limite de instalações simultâneas? (sim/não)
    • tem espaço em disco? (sim/não)


    ... então, o instalador será executado, removendo a versão antiga do LibreOffice.org e instalando a nova versão.

    É bom lembrar que, caso o número de instalações simultâneas esteja no limite, o instalador irá realizar novas tentativas a cada 10 minutos (por isso o nome do script: LibreOffice_inst_teimosinha-v2.nsi), repetindo todo o processo.

    O segundo script (nome_do_script) é chamado a partir do primeiro e irá aplicar as personalizações para cada perfil do usuário que logar na estação.

    Comentários sobre o script “LibreOffice_inst_teimosinha-v2.nsi”

    Função do script: remoção da versão anterior do LibreOffice.org (3.x) e instalação da nova versão do LibreOffice (3.5.5)

    Linhas 1 a 41:

    Identificação do script, licença, load de funções e bibliotecas e declaração de variáveis.

    Linhas 42 a 45:

    Verifica se o LibreOffice 3 já está instalado na estação. Se estiver, finaliza o instalador.

    Linhas 47 a 78:

    Se o LibreOffice não estiver instalado, o script consulta a data e hora da última alteração ocorrida no arquivo P:\LibreOffice\contador.txt. Este arquivo guarda o número de instalações simultâneas. Se a última alteração ocorreu há mais de 30 minutos ou há mais de 1 dia, o arquivo P:\LibreOffice\contador.txt será recriado à partir de uma cópia do arquivo H:\LibreOffice\contador.txt (seu conteúdo é “0”).

    Linhas 80 a 84:

    verifica se o arquivo P:\LibreOffice\contador.txt existe pois como ele tem permissão de escrita, algum usuário poderá apagá-lo. Se não existir, ele será recriado à partir de uma cópia do arquivo H:\LibreOffice\contador.txt (seu conteúdo é “0”).

    Linhas 86 a 94:

    abre o arquivo P:\LibreOffice\contador.txt para ler o número de instalações online que estão ocorrendo no momento. Se algum usuário estiver gravando o arquivo no momento da consulta, não será possível ler o conteúdo do mesmo e portanto será realizada nova tentativa (no máximo 10) a cada 20 segundos (função Wait_Open). Em seguida, faz o incremento do número de instalações simultâneas.

    Linhas: 96 a 107:

    realiza a leitura do número máximo de instalações simultâneas permitidas ($LIM) conforme definido no arquivo H:\LibreOffice\limite.txt (Exemplo: “3”). Se o número de instalações online contido em P:\LibreOffice\contador.txt ($VAL) for maior do que o limite definido em H:\LibreOffice\limite.txt, o instalador irá permanecer com o processo na memória da estação, fazendo nova tentativa dentro de 10 minutos.

    Linhas 109 a 134:

    controle do número de tentativas de leitura do arquivo p:\LibreOffice\contador.txt

    Linhas 136 a 139:

    verifica se há espaço disponível suficiente para instalação. No exemplo. 400 MB.

    Linhas 141 a 149:

    consulta qual é o sistema operacional da estação ($SISOP), o usuário logado ($USERNAME) e a pasta de dados do usuário ($LOCALDATA)

    Linhas 151 a 153:

    avisa o usuário sobre o processo de desinstalação da versão antiga e instalação da nova versão.

    Linha 163:

    desinstala a versão antiga do LibreOffice e executa a instalação do LibreOffice para todos os usuários da estação (ADDLOCAL=ALL), em modo passivo, sem interação com o usuário e sem reinicializar (/passive /norestart), removendo o inicializador rápido Quickstart (REMOVE=gm_o_Quickstart ALLUSERS=1).

    Linha 167:

    chama o executável H:\LibreOffice\personal\libre-personal.exe que aplica as personalizações para o LibreOffice (ex.: extensões).

    Linhas 169 a 188:

    finalizada a instalação, decrementa o número de instalações simultâneas e mostra aviso para o usuário.

    Linhas 195 a 207:

    mostra aviso para o usuário caso a estação não tenha espaço suficiente para a instalação (400 MB)

    Comentários sobre o script “libre-personal.nsi”

    Função do script: instalar as extensões do modelo de etiquetas Pimaco, Dicionário de Sinônimos e o BB Menu.

    Linhas 1 a 18:

    Identificação do script, licença, load de funções e bibliotecas e declaração de variáveis.

    Linhas 35 a 51:

    consulta qual é o sistema operacional da estação ($SISOP), o usuário logado ($USERNAME) e a pasta de dados do usuário ($LOCALDATA)

    Linhas 53 a 57:

    caso as personalizações já estiverem aplicadas, finalizo o script.

    Linhas 62 a 94:

    aplica as personalizações.

    Clique aqui para baixar a última versão do script de instalação automatizada.

    Contato

    Fique a vontade caso queira entrar em contato comigo. Clique no meu nome e envie um email. Kraucer Fernandes Mazuco