#!/bin/bash # # set tabstop=5 # # Criado por William Fernando Merlotto # Baseado no script original desenvolvido por João Alfredo Knopik Junior # com colaborações de: # "William Fernando Merlotto" , para Debian, Red Hat e CentOS # "Alexandre Felipe Muller de Souza" , para Debian # "Cássio Luiz" , para Red Hat e CentOS # "M. Rodrigo Monteiro" , para Red Hat e CentOS # # # Versões: # 12/03/2010 - v0.1 # 27/02/2011 - v0.2 # 22/03/2012 - v0.3 # Termino do instalador basico e inclusao do Debian Squeeze ################################################################################################# # # # MAIN # # # ################################################################################################# # TODO: Internacionalizar o script de instalação: # http://www.linuxquestions.org/questions/programming-9/bash-script-how-to-get-locale-translations-802726/ # http://tldp.org/LDP/abs/html/localization.html # http://mywiki.wooledge.org/BashFAQ/098 alias cp='cp -f' # Variaveis globais ARQS="arquivos" VERSAO="2.4.0" # Inclusao dos scripts de apoio . $ARQS/scripts/aux.sh . $ARQS/scripts/ini.sh . $ARQS/scripts/http.sh . $ARQS/scripts/ldap.sh . $ARQS/scripts/bd.sh . $ARQS/scripts/smtp.sh . $ARQS/scripts/imap.sh # Verifica o usuario que esta executando o script # DEBUG: Comente esta linha para testar o script sem utilizar o usuário root. #[ $UID != 0 ] && { echo "Este script deve ser executado como superusuario (root) ou com sudo"; exit 1; } # Como o SO ainda não foi escolhido, não dá para instalar automaticamente o dialogo `/usr/bin/which dialog | grep -q "^/usr/bin/dialog$"` || { echo "Dialog não está instalado!!\nPara continuar, por favor, instale o dialog!"; exit 1; } # Telas da instalacao BACKTITLE="Instalação do ExpressoLivre versão $VERSAO" INTRO=' Bem-Vindo(a) a instalação do ExpressoLivre! O script de instalação lhe permitirá escolher entre instalar e configurar automaticamente todos os serviços necessário ao funcionamento do ExpressoLivre ou lhe permitirá escolher quais serviços serão instalados e configurados. Esta última alternativa é interessante para ambientes grandes, onde os serviços são instalados e configurados em máquinas distintas. As informações de senha, domínio e organização serão requisitadas de acordo com o(s) serviço(s) selecionado(s). A equipe ExpressoLivre não se responsabiliza por danos ocasionados pelo uso deste instalador ou mesmo pelo próprio ExpressoLivre. Você deseja prosseguir, por sua conta e risco, a instalação ExpressoLivre?' # Se o usuario escolher "nao", será retornado 1 e consequentemente o script será encerrado. dialog --backtitle "$BACKTITLE" --cr-wrap --yesno "$INTRO" 18 80 || exit 0 # Menu de selecao do SO SO=$( dialog --backtitle "$BACKTITLE" --stdout --menu 'Em qual sistema operacional (SO) o ExpressoLivre será instalado?' 13 70 10 \ rhel6 'GNU/Linux Red Hat (v6.x) ou CentOS (v6.x)' \ debian-squeeze 'GNU/Linux Debian Squeeze (v6.x)' \ ubuntu-11.10 'GNU/Linux Ubuntu Server (11.10)' ) # TODO: Precio de ajuda para implementar e testar nestas distros #sles10 'GNU/Linux SuSe Enterprise Linux (v10.x)' \ #sles11 'GNU/Linux SuSe Enterprise Linux (v11.x)' \ BACKTITLE="$BACKTITLE, para $SO" # Inicializacao basica de instalacao, como atualização de repositório e criação de variáveis de ambiente ini_$SO # Inicia a escolha/instalacao e configuracao dos servicos nessarios ao ExpressoLivre SERVICOS=$( dialog --backtitle "$BACKTITLE" --stdout --separate-output \ --checklist 'Por favor, selecione quais serviços serão instalados neste sistema operacional:' 14 75 14 \ http 'Servidor http (apache) juntamente com os módulos do PHP5' on \ ldap 'Servidor ldap (openldap)' on \ bd 'Servidor de banco de dados (postgresql)' on \ smtp 'Sevirdor smtp (postfix)' on \ imap 'Servidor imap (cyrus-imap)' on ) # Executa funcao de instalacao/configuracao do servico no respectivo SO. for I in $SERVICOS do $I\_$SO done #dialog --backtitle "$BACKTITLE" --cr-wrap --msgbox "A comunidade do Expresso Livre agradece a sua participação.\n\n\nEm caso de dúvidas, por favor, visite: http://www.expressolivre.org" 8 75