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

From The Document Foundation Wiki
Jump to: navigation, search


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