#!/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 e Red Hat/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 # ################################################################################################# # # # FUNÇÕES # # # ################################################################################################# servicos () { SERVICOS=$( dialog --backtitle "$BACKTITLE" --stdout --separate-output \ --checklist 'Por favor, selecione quais os serviços serão instalados neste computador:' 14 75 14 \ http 'Servidor http (apache) juntamente com o módulo 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 ) for I in $SERVICOS do # Executa funcao de instalacao/configuracao do servico no respectivo SO. $I_$SO done } get_pass () { LDAP_PWD=$( dialog --backtitle "$BACKTITLE" --stdout --passwordbox 'Digite uma senha:' 0 0 ) LDAP_PWD_CONF=$( dialog --backtitle "$BACKTITLE" --stdout --passwordbox 'Confirme a senha:' 0 0 ) if [ "x$LDAP_PWD" != "x$LDAP_PWD_CONF" ] then dialog --backtitle "$BACKTITLE" --title 'As senhas não conferem' \ --msgbox 'Favor digitar as duas senhas iguais!!!' 6 40 senhas fi } ################################################################################################# # # # MAIN # # # ################################################################################################# alias cp="cp" # Variaveis globais ARQS="arquivos" VERSAO="2.2.xxxx" # Inclusao dos outros arquivos . $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 #[ $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!!"; 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 \ debian-etch 'GNU/Linux Debian Etch (v.4.x)' \ debian-lenny 'GNU/Linux Debian Lenny (v.5.x)' \ rhel5 'GNU/Linux Red Hat (v5.x) ou CentOS (v5.x)' \ sles10 'GNU/Linux SuSe Enterprise Linux (v.10.x)' \ sles10 'GNU/Linux SuSe Enterprise Linux (v.11.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 ORG=$( dialog --backtitle "$BACKTITLE" --stdout --inputbox 'Digite uma organização:(ex.: celepar)' 0 55 ) DOMAIN=$( dialog --backtitle "$BACKTITLE" --stdout --inputbox 'Digite seu domínio:(ex.: '$ORG'.com.br)' 0 55 ) # Substitui o '.' por ',dc=' LDAP_DN=`echo "dc=$DOMAIN" | sed 's/\./,dc=/g'` # Substitui qualquer coisa apos o primeiro '.' por 'nada' LDAP_DC=`echo $DOMAIN | sed 's/\..*//g'` LDAP_PWD_MD5=`$ARQS/scripts/md5pass.pl $LDAP_PWD` # Inicia a escolha/instalacao e configuracao dos servicos nessarios ao ExpressoLivre servicos #dialog --backtitle "$BACKTITLE" --cr-wrap --msgbox "FIM. www.expressolivre.org" 7 55 &&