Instalação automatizada do LibreOffice em máquinas Windows
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