[5797] | 1 | #!/bin/bash |
---|
| 2 | # |
---|
| 3 | # set tabstop=5 |
---|
| 4 | # |
---|
| 5 | # Criado por William Fernando Merlotto <william@prognus.com.br> |
---|
| 6 | # Baseado no script original desenvolvido por João Alfredo Knopik Junior <jakjr@celepar.pr.gov.br> |
---|
| 7 | # com colaborações de: |
---|
[5837] | 8 | # "William Fernando Merlotto" <william@prognus.com.br>, para Debian, Ubuntu, Red Hat e CentOS |
---|
| 9 | # "Gustavo Nakahara" <gustavonk@prognus.com.br>, para Debian, Ubuntu, Red Hat e CentOS |
---|
| 10 | # "Rafael Cristaldo" <rafael@prognus.com.br>, para Debian, Ubuntu, Red Hat e CentOS |
---|
[5797] | 11 | # "Alexandre Felipe Muller de Souza" <amuller@celepar.pr.gov.br>, para Debian |
---|
| 12 | # "Cássio Luiz" <cassiolp@cnpq.br>, para Red Hat e CentOS |
---|
| 13 | # "M. Rodrigo Monteiro" <mrodrigom@gmail.com>, para Red Hat e CentOS |
---|
| 14 | # |
---|
| 15 | # |
---|
| 16 | # Versões: |
---|
[5837] | 17 | # 27/03/2012 - v1.0 |
---|
| 18 | # Termino do instalador basico, para Debian Squeeze, CentOS 6 e Ubuntu Server 11.10 |
---|
[5797] | 19 | |
---|
| 20 | ################################################################################################# |
---|
| 21 | # # |
---|
| 22 | # MAIN # |
---|
| 23 | # # |
---|
| 24 | ################################################################################################# |
---|
| 25 | |
---|
| 26 | # TODO: Internacionalizar o script de instalação: |
---|
| 27 | # http://www.linuxquestions.org/questions/programming-9/bash-script-how-to-get-locale-translations-802726/ |
---|
| 28 | # http://tldp.org/LDP/abs/html/localization.html |
---|
| 29 | # http://mywiki.wooledge.org/BashFAQ/098 |
---|
| 30 | |
---|
| 31 | alias cp='cp -f' |
---|
| 32 | |
---|
| 33 | # Variaveis globais |
---|
| 34 | ARQS="arquivos" |
---|
| 35 | VERSAO="2.4.0" |
---|
| 36 | # Inclusao dos scripts de apoio |
---|
| 37 | . $ARQS/scripts/aux.sh |
---|
| 38 | . $ARQS/scripts/ini.sh |
---|
| 39 | . $ARQS/scripts/http.sh |
---|
| 40 | . $ARQS/scripts/ldap.sh |
---|
| 41 | . $ARQS/scripts/bd.sh |
---|
| 42 | . $ARQS/scripts/smtp.sh |
---|
| 43 | . $ARQS/scripts/imap.sh |
---|
| 44 | |
---|
| 45 | # Verifica o usuario que esta executando o script |
---|
| 46 | # DEBUG: Comente esta linha para testar o script sem utilizar o usuário root. |
---|
[5837] | 47 | [ $UID != 0 ] && { echo "Este script deve ser executado como superusuario (root) ou com sudo"; exit 1; } |
---|
[5797] | 48 | |
---|
| 49 | # Como o SO ainda não foi escolhido, não dá para instalar automaticamente o dialogo |
---|
| 50 | `/usr/bin/which dialog | grep -q "^/usr/bin/dialog$"` || { echo "Dialog não está instalado!!\nPara continuar, por favor, instale o dialog!"; exit 1; } |
---|
| 51 | |
---|
| 52 | # Telas da instalacao |
---|
| 53 | BACKTITLE="Instalação do ExpressoLivre versão $VERSAO" |
---|
| 54 | |
---|
| 55 | INTRO=' |
---|
| 56 | Bem-Vindo(a) a instalação do ExpressoLivre! |
---|
| 57 | |
---|
| 58 | 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. |
---|
| 59 | |
---|
| 60 | As informações de senha, domÃnio e organização serão requisitadas de acordo com o(s) serviço(s) selecionado(s). |
---|
| 61 | |
---|
| 62 | A equipe ExpressoLivre não se responsabiliza por danos ocasionados pelo uso deste instalador ou mesmo pelo próprio ExpressoLivre. |
---|
| 63 | Você deseja prosseguir, por sua conta e risco, a instalação ExpressoLivre?' |
---|
| 64 | |
---|
| 65 | # Se o usuario escolher "nao", será retornado 1 e consequentemente o script será encerrado. |
---|
| 66 | dialog --backtitle "$BACKTITLE" --cr-wrap --yesno "$INTRO" 18 80 || exit 0 |
---|
| 67 | |
---|
| 68 | # Menu de selecao do SO |
---|
| 69 | SO=$( dialog --backtitle "$BACKTITLE" --stdout --menu 'Em qual sistema operacional (SO) o ExpressoLivre será instalado?' 13 70 10 \ |
---|
| 70 | rhel6 'GNU/Linux Red Hat (v6.x) ou CentOS (v6.x)' \ |
---|
[5836] | 71 | debian-squeeze 'GNU/Linux Debian Squeeze (v6.x)' \ |
---|
| 72 | ubuntu-11.10 'GNU/Linux Ubuntu Server (11.10)' ) |
---|
[5797] | 73 | |
---|
| 74 | # TODO: Precio de ajuda para implementar e testar nestas distros |
---|
| 75 | #sles10 'GNU/Linux SuSe Enterprise Linux (v10.x)' \ |
---|
| 76 | #sles11 'GNU/Linux SuSe Enterprise Linux (v11.x)' \ |
---|
| 77 | |
---|
| 78 | BACKTITLE="$BACKTITLE, para $SO" |
---|
| 79 | |
---|
| 80 | # Inicializacao basica de instalacao, como atualização de repositório e criação de variáveis de ambiente |
---|
| 81 | ini_$SO |
---|
| 82 | |
---|
| 83 | # Inicia a escolha/instalacao e configuracao dos servicos nessarios ao ExpressoLivre |
---|
| 84 | SERVICOS=$( dialog --backtitle "$BACKTITLE" --stdout --separate-output \ |
---|
| 85 | --checklist 'Por favor, selecione quais serviços serão instalados neste sistema operacional:' 14 75 14 \ |
---|
| 86 | http 'Servidor http (apache) juntamente com os módulos do PHP5' on \ |
---|
| 87 | ldap 'Servidor ldap (openldap)' on \ |
---|
| 88 | bd 'Servidor de banco de dados (postgresql)' on \ |
---|
| 89 | smtp 'Sevirdor smtp (postfix)' on \ |
---|
| 90 | imap 'Servidor imap (cyrus-imap)' on ) |
---|
| 91 | |
---|
| 92 | # Executa funcao de instalacao/configuracao do servico no respectivo SO. |
---|
| 93 | for I in $SERVICOS |
---|
| 94 | do |
---|
| 95 | $I\_$SO |
---|
| 96 | done |
---|
| 97 | |
---|
[5837] | 98 | 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 |
---|