Instalação automatizada e distribuída do BrOffice.org
por Kraucer Fernandes Mazuco <kraucer@bb.com.br>
Brasília/DF, 20 de janeiro de 2009
Como automatizar a instalação ou a atualização do BrOffice.org e suas extensões em centenas ou 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.
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.
|
O Problema
Como automatizar a instalação/atualização do BrOffice.org 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® e Vista® 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 BrOffice.org (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 BrOffice.org e o outro aplica personalizações ao produto (instala extensões, carrega dicionários, etc.).
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 “BrOffice_inst_teimosinha-v6.nsi” é carregado para a memória. Em um primeiro momento, ele irá verificar se o BrOffice.org 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:\OpenOffice\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 BrOffice.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: BrOffice_inst_teimosinha-v6.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 “BrOffice_inst_teimosinha-v6.nsi”
Função do script: remover a versão anterior do BrOffice.org (2.4) e instalação da nova versão (3.0)
* O texto escrito em verde poderá ou deverá ser alterado de acordo com a sua estrutura de pastas.
- Linhas 1 a 41:
- Identificação do script, licença, load de funções e bibliotecas e declaração de variáveis.
- Linhas 45 a 48:
- verifica se o BrOffice.org 3 já está instalado na estação. Se estiver, finaliza o instalador.
- Linhas 50 a 81:
- se o BrOffice.org não estiver instalado, o script consulta a data e hora da última alteração ocorrida no arquivo P:\OpenOffice\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:\OpenOffice\contador.txt será recriado à partir de uma cópia do arquivo H:\BrOffice-v30\contador.txt (seu conteúdo é “0”).
- Linhas 83 a 87:
- verifica se o arquivo P:\OpenOffice\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:\BrOffice-v30\contador.txt (seu conteúdo é “0”).
- Linhas 89 a 103:
- abre o arquivo P:\OpenOffice\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: 99 a 110:
- realiza a leitura do número máximo de instalações simultâneas permitidas ($LIM) conforme definido no arquivo H:\BrOffice-v30\limite.txt (Exemplo: “3”). Se o número de instalações online contido em P:\OpenOffice\contador.txt ($VAL) for maior do que o limite definido em H:\BrOffice-v30\limite.txt, o instalador irá permanecer com o processo na memória da estação, fazendo nova tentativa dentro de 10 minutos.
- Linhas 112 a 137:
- controle do número de tentativas de leitura do arquivo p:\openoffice\contador.txt
- Linhas 140 a 142:
- verifica se há espaço disponível suficiente para instalação. No exemplo. 400 MB.
- Linhas 144 a 158:
- consulta qual é o sistema operacional da estação ($SISOP), o usuário logado ($USERNAME) e a pasta de dados do usuário ($LOCALDATA)
- Linhas 160 a 166:
- avisa o usuário sobre o processo de desinstalação da versão antiga e instalação da nova versão.
- Linha 168:
- desinstala a versão antiga do BrOffice.org e executa a instalação do BrOffice.org 3 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 171:
- remove o verificador ortográfico default para não conflitar com a nova versão (VERO) que será instalado.
- Linha 174:
- chama o executável H:\BrOffice-v30\personal\bro-personal.exe que aplica as personalizações para o BrOffice.org (ex.: extensões).
- Linhas 176 a 200:
- finalizada a instalação, decrementa o número de instalações simultâneas e mostra aviso para o usuário.
- Linhas 202 a 214:
- 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 “BrO-personal.nsi”
Função do script: instalar as extensões do VERO, CoGroo, Modelos de Documentos e load dos dicionários instalados.
* O texto escrito em verde poderá ser alterado de acordo com a sua estrutura de pastas.
- Linhas 1 a 21:
- Identificação do script, licença, load de funções e bibliotecas e declaração de variáveis.
- Linhas 28 a 42:
- consulta qual é o sistema operacional da estação ($SISOP), o usuário logado ($USERNAME) e a pasta de dados do usuário ($LOCALDATA)
- Linhas 44 a 47:
- caso as personalizações já estiverem aplicadas, finalizo o script.
- Linhas 49 a 94:
- aplica as personalizações.
Sugestões para melhoria dos scripts
- criar variáveis para guardar o path dos arquivos contador.txt e limite.txt;
- criar uma variável para guardar o valor do espaço em disco necessário;
- fazer algo que possa evitar a tela de diálogo do UAC no Windows Vista®.
| Anexo | Tamanho |
|---|---|
| Instalador_BrOffice.zip | 5.42 KB |
- 90113 leituras



