#!/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 () { dialog --backtitle "$BACKTITLE" --yesno 'Deseja que os serviços sejam instalados e configurados automaticamente? ou irá fazer isso manualmente?' 7 70 # yes if [ $? = 0 ] then http_$DISTRO ldap_$DISTRO bd_$DISTRO smtp_$DISTRO imap_$DISTRO else S=$( 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)' off \ bd 'Servidor de banco de dados (postgresql)' off \ smtp 'Sevirdor smtp (postfix)' off \ imap 'Servidor imap (cyrus-imap)' off ) for I in $S do echo $I done fi } senhas () { 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.1" # Inclusao dos outros arquivos source $ARQS/scripts/ini.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" servicos INTRO=' Bem-Vindo(a) a instalação do ExpressoLivre! Quatro perguntas serão feitas a você: 1. Em qual sistema operacional o Expresso Livre será instalado; 2. Insira uma senha para o usuário administrador, o expresso-admin; 3. Escolha o nome da organização; 4. Escolha um domínio. Com estas informações o script poderá instalar e configurar o ExpressoLivre. Deseja continuar?' dialog --backtitle "$BACKTITLE" --cr-wrap --yesno "$INTRO" 15 80 || exit 0 # Menu de selecao do SO SO=$( dialog --backtitle "$BACKTITLE" --stdout --menu 'Em qual SO o Expresso Livre 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" # Requisita a senha para o expresso-admin senhas 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 ) # Monta as variáveis # 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=`slappasswd -v -s $LDAP_PWD -h {MD5}` LDAP_PWD_MD5=`echo $LDAP_PWD | md5sum -t | cut -d' ' -f1` #LDAP_PWD_MD5=`php ./arqs-conf-rhel5/regexp.php $LDAP_PWD_MD5` #LDAP_PWD_MD5=`echo $LDAP_PWD_MD5 | sed 's/\//\\//g'` #HEADER_PWD=`php ./arqs-conf-rhel5/pass.php $LDAP_PWD` HEADER_PWD=$LDAP_PWD_MD5 dialog --backtitle "$BACKTITLE" --yesno 'A equipe ExpressoLivre não se responsabiliza por danos ocasionados pelo uso deste instalador ou mesmo pelo próprio Expresso.\n\nVocê deseja prosseguir, por sua conta e risco, a instalação ExpressoLivre?' 10 80 # yes if [ $? = 0 ] then # 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" --cr-wrap --msgbox "FIM. www.expressolivre.org" 7 55 && else exit 0; fi