source: sandbox/2.3-MailArchiver/doc-expressolivre/rhel5-centos5/expressoInstallCentos5-es.sh @ 6779

Revision 6779, 10.2 KB checked in by rafaelraymundo, 12 years ago (diff)

Ticket #2946 - Liberado Expresso(branch 2.3) integrado ao MailArchiver?.

Line 
1#
2# set tabstop=5
3#
4#!/bin/bash
5# Criado por João Alfredo Knopik Junior <jakjr@celepar.pr.gov.br>
6# Colaborações:
7#       "William Fernando Merlotto" <william@prognus.com.br>
8#       "Alexandre Felipe Muller de Souza" <amuller@celepar.pr.gov.br>
9#
10#
11#
12# Adaptação feita para o Red Hat EL 5 e Centos 5
13# Cássio Luiz <cassiolp@cnpq.br>
14# - Alterações feitas por M. Rodrigo Monteiro <mrodrigom@gmail.com>
15# - 14/09/09 - Reescrita por William Fernando Merlotto <william@prognus.com.br>
16#
17#
18
19LC_TELEPHONE=es_VE.UTF-8
20LC_CTYPE=es_VE.UTF-8
21LANGUAGE=es_VE:pt_PT:pt
22LC_MONETARY=es_VE.UTF-8
23LC_ADDRESS=es_VE.UTF-8
24LC_COLLATE=es_VE.UTF-8
25LC_PAPER=es_VE.UTF-8
26LC_NAME=es_VE.UTF-8
27LC_NUMERIC=es_VE.UTF-8
28SYSFONT=lat1-16
29LC_MEASUREMENT=es_VE.UTF-8
30LC_TIME=es_VE.UTF-8
31LANG=es_VE.UTF-8
32LC_IDENTIFICATION=es_VE.UTF-8
33LC_MESSAGES=es_VE.UTF-8
34
35export LC_TELEPHONE LC_CTYPE LANGUAGE LC_MONETARY LC_ADDRESS LC_COLLATE LC_PAPER LC_NAME LC_NUMERIC SYSFONT LC_MEASUREMENT LC_TIME LANG LC_IDENTIFICATION LC_MESSAGES
36
37#alterado - mostrar as msgs de erro
38#set -e # Para caso de erro
39
40if [ $UID != 0 ]; then {
41        echo "Este script debe ser ejecutado como superusuario, root o sudo";
42        exit 1;
43        }
44fi
45
46#
47# Testa se o Dialog esta instalado
48
49#alterado
50testadialog=$(/usr/bin/which dialog | grep "^/usr/bin/dialog$")
51
52#alterado
53if [ "$testadialog" != "/usr/bin/dialog" ]; then
54     echo "Dialog no está instalado."
55     echo ""
56     echo ""
57     echo "Instalando  Dialog!!!"
58     #alterado - tenta instalar o Dialog com o yum, caso contrario instala com o rpm e mostra a msg se foi instalado ou nao
59         yum -y install dialog || rpm -ivh arqs-conf-rhel5/rpms/dialog-1.0.20051107-1.2.2.i386.rpm && echo "Dialog foi instalado instalado!!!" || echo "No fue posible instalar  Dialog" && exit 0
60else
61     echo "Dialog instalado!!!"
62fi
63
64BACKTITLE='Instalación de ExpressoLivre 2.0'
65INTRO='
66Bienvenido(a) a la instalación de ExpressoLivre!
67
683 (tres) preguntas seran hechas a usted.
69- Escriba una contraseña.
70- Escriba una organización.
71- Escriba un dominio.
72
73Con estas informaciones el script podrá
74instalar y configurar el ExpressoLivre.
75'
76#.....................................................................
77dialog --backtitle "$BACKTITLE" \
78   --cr-wrap \
79   --msgbox "$INTRO" \
80   17 55 &&
81#.....................................................................
82#alterado - confirmar a senha
83LDAP_PWD=$( dialog --stdout --passwordbox 'Escriba una contraseña:' 0 0 )
84LDAP_PWD_CONF=$( dialog --stdout --passwordbox 'Confirme la contraseña:' 0 0 )
85if [ "$LDAP_PWD" != "$LDAP_PWD_CONF" ] ; then
86        dialog                                                   \
87        --title 'Las contraseñas no son iguales '                   \
88        --msgbox 'Favor escribir dos contraseñas iguales!!!'    \
89        6 40
90        exit 0
91fi
92#.....................................................................
93ORG=$( dialog --stdout --inputbox 'Escriba una organización:(ej.: celepar)' 0 55 )
94#.....................................................................
95DOMAIN=$( dialog --stdout --inputbox 'Escriba su Dominio:(ej.: '$ORG'.com.br)' 0 55 )
96
97
98# Instala os pacotes necessarios
99pacotes () {
100        dialog --yesno 'Desea que el script instale automaticamente los paquetes disponibles de la distribución?' 7 70
101        # yes
102        if [ $? = 0 ]
103        then
104                dialog                                                                  \
105                        --title 'Aguarde'                                                       \
106                        --infobox '\nVerificando la instalación de los paquetes nesesarios...'         \
107                        0 0
108                yum clean all
109                yum -y install httpd mod_ssl \
110                        unzip zip \
111                        openldap openldap-clients openldap-servers \
112                        cyrus-imapd cyrus-imapd-perl cyrus-imapd-utils cyrus-sasl cyrus-sasl-ldap cyrus-sasl-plain perl-IO-Socket-SSL \
113                        postfix \
114                        postgresql postgresql-server \
115                        php php-cli php-ldap php-pgsql php-imap php-mbstring php-gd php-xml
116        else
117                dialog                                            \
118                --title 'Aviso'                             \
119                --yesno 'Ok, no será realizada la instalación de los paquetes y eso ocasionara que  Expresso Livre no funcione!!!\n\nDesea continuar ?'  \
120                10 40
121                # no, sai do script
122                [ $? = 1 ] && exit 1
123        fi
124}
125
126# POSTGRES
127postgres () {
128        service postgresql stop
129        service postgresql start
130        sleep 3
131        service postgresql stop
132
133        cp -f ./arqs-conf-rhel5/var/lib/pgsql/data/postgresql.conf /var/lib/pgsql/data/
134        cp -f ./arqs-conf-rhel5/var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/
135
136        service postgresql start
137
138        su - postgres -c 'dropdb expresso'  || { echo "Base de datos expresso no existia. [OK]"; }
139        su - postgres -c 'createdb -E LATIN1 expresso'  || { echo "Problemas en la creación de base de datos expresso. [Fallo]"; exit 1;}
140
141        sed -e "s/LDAP_DN/$LDAP_DN/g" -e "s/LDAP_PWD/$LDAP_PWD/g" -e "s/ORG/$ORG/g" -e "s/DOMAIN/$DOMAIN/g" ./arqs-conf-rhel5/expresso.dump > /tmp/expresso.dump
142
143        service postgresql start
144        chkconfig postgresql on
145
146        su - postgres -c 'psql -f /tmp/expresso.dump expresso'
147
148        rm /tmp/expresso.dump
149}
150
151# APACHE
152apache () {
153        cp -r -p ../../../expresso/ /var/www/
154        #TODO: Verificar erro:
155        sed -e "s/HEADER_PWD/$HEADER_PWD/g" ./arqs-conf-rhel5/header.inc.php > /var/www/expresso/header.inc.php
156
157        mkdir /home/expressolivre || { echo "Diretório já existe. [OK]"; }
158        cp ./arqs-conf-rhel5/home/expressolivre/* /home/expressolivre/
159
160        cp ./arqs-conf-rhel5/etc/httpd/conf/httpd.conf /etc/httpd/conf/
161        cp ./arqs-conf-rhel5/etc/httpd/conf.d/expresso.conf /etc/httpd/conf.d/
162        cp ./arqs-conf-rhel5/etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/
163        cp ./arqs-conf-rhel5/etc/php.ini /etc/
164
165        chown -R apache.apache /var/www/expresso /home/expressolivre
166
167        #mkdir /php_sessions/ || { echo "Diretório já existe. [OK]"; }
168        #chmod -R 777 /php_sessions/
169
170        service httpd restart
171        chkconfig httpd on
172}
173
174# OPENLDAP
175ldap () {
176        service ldap stop
177
178        rm -rf /var/lib/ldap/*
179        sed -e "s/LDAP_DN/$LDAP_DN/g" -e "s/LDAP_PWD_MD5/$LDAP_PWD_MD5/g" ./arqs-conf-rhel5/etc/openldap/slapd.conf > /etc/openldap/slapd.conf
180        cp ./arqs-conf-rhel5/etc/openldap/schema/* /etc/openldap/schema/
181        cp ./arqs-conf-rhel5/etc/openldap/DB_CONFIG /var/lib/ldap/
182        sed -e "s/LDAP_DN/$LDAP_DN/g" -e "s/LDAP_PWD_MD5/$LDAP_PWD_MD5/g" -e "s/ORG/$ORG/g" -e "s/DOMAIN/$DOMAIN/g" -e "s/LDAP_DC/$LDAP_DC/g" ./arqs-conf-rhel5/expresso.ldif > /tmp/expresso.ldif
183        slapadd -v -l /tmp/expresso.ldif
184        chown -R ldap.ldap /var/lib/ldap/
185
186        service ldap start
187        chkconfig ldap on
188
189        rm /tmp/expresso.ldif
190}
191
192# CYRUS
193cyrus () {
194        cp ./arqs-conf-rhel5/etc/imapd.conf /etc/
195        cp ./arqs-conf-rhel5/etc/cyrus.conf /etc/
196        sed -e "s/LDAP_DN/$LDAP_DN/g" ./arqs-conf-rhel5/etc/saslauthd.conf > /etc/saslauthd.conf
197        cp ./arqs-conf-rhel5/etc/sysconfig/saslauthd /etc/sysconfig/
198        cp -p ./arqs-conf-rhel5/usr/bin/cyradm_expresso /usr/bin/
199
200        service saslauthd restart
201        chkconfig saslauthd on
202        sleep 4
203
204        service cyrus-imapd restart
205        chkconfig cyrus-imapd on
206
207        #./arqs-conf-rhel5/cyrus.pl $LDAP_PWD
208}
209
210# POSTFIX
211postfix () {
212        sed -e "s/LDAP_DN/$LDAP_DN/g" -e "s/DOMAIN/$DOMAIN/g" ./arqs-conf-rhel5/etc/postfix/main.cf > /etc/postfix/main.cf
213        sed -e "s/DOMAIN/$DOMAIN/g" ./arqs-conf-rhel5/etc/postfix/expresso-dominios > /etc/postfix/expresso-dominios
214        #cp ./arqs-conf-rhel5/etc/postfix/master.cf /etc/postfix/
215
216        postmap /etc/postfix/expresso-dominios
217
218        service postfix restart
219        chkconfig postfix on
220}
221
222# Especifico para instalacao do PHP de pacotes de terceiros, nao oficiais da distribuicao
223pacotes_php () {
224        dialog --yesno 'Los paquetes de PHP disponibles en esta distribucion possee versiones inferiores a las requeridas por Expresso. Expresso necessita de PHP-5.2.1 o superior.\nPor lo que, este script podrá configurar automaticamente un repositório externo, de terceros y sin soporte (en este caso, el REMI-Enterprise), para instalar versiones mas recientes de PHP.\n\nA equipo de Expresso Livre recomienda el uso de este repositório y la instalación de los nuevos paquetes, por eso, no nos responsabilizamos por qualquier dano. En caso  de que usted no utilize los paquetes mas recientes de PHP,  Expresso no funcionara correctamente!!\n\nUsted desea proseguir, por su cuenta y riesgo, la instalación del PHP mas reciente?' 20 70
225        # yes
226        if [ $? = 0 ]
227        then
228                # Utiliza o repositorio do Remi, que possui (em 10/09/09) o php-5.3.0
229                # http://blog.famillecollet.com/pages/Config-en
230                rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
231                wget http://rpms.famillecollet.com/remi-enterprise.repo -O /etc/yum.repos.d/remi-enterprise.repo
232                # Atualiza os pacotes...
233                yum --enablerepo=remi install php php-cli php-ldap php-pgsql php-imap php-mbstring php-gd libtool
234        else
235                       
236                dialog --infobox 'Ok! A versão mais recente do PHP não foi instalada!' 0 0
237        fi
238}
239
240# Outros
241outros () {
242        # Deixa o SELinux permissivo
243        cp -f ./arqs-conf-rhel5/etc/selinux/config /etc/selinux/config
244        setenforce 0
245        # Desativa o sendmail
246        service sendmail stop
247        chkconfig --del sendmail
248        yum -y erase sendmail
249}
250
251###########################################################################################
252#                                                                                                                                               #
253#                                                               MAIN                                                                            #
254#                                                                                                                                               #
255###########################################################################################
256
257alias cp="cp"
258
259pacotes
260outros
261# Uma solução alternativa para a versão do PHP
262pacotes_php
263
264# GET VARs
265LDAP_DN=`php ./arqs-conf-rhel5/makedn.php $DOMAIN`
266LDAP_DC=`php ./arqs-conf-rhel5/makedc.php $DOMAIN`
267LDAP_PWD_MD5=`slappasswd -v -s $LDAP_PWD -h {MD5}`
268LDAP_PWD_MD5=`php ./arqs-conf-rhel5/regexp.php $LDAP_PWD_MD5`
269HEADER_PWD=`php ./arqs-conf-rhel5/pass.php $LDAP_PWD`
270
271dialog --yesno 'Deseja escolher quais serviços (apache, ldap, postfix, cyrus e postgres) serão configurados pelo script?' 7 70
272# no
273if [ $? = 1 ]
274then
275        apache
276        ldap
277        postfix
278        cyrus
279        postgres
280else
281        for I in apache ldap postfix cyrus postgres
282        do
283                dialog --yesno "Deseja configurar o $I?" 7 70
284                if [ $? = 0 ]
285                then
286                        dialog --infobox "Configurando o serviço: $I. Aguarde..." 0 0
287                        $I
288                fi
289        done
290fi
291
292# Por algum motivo, ainda desconhecido para mim, esta chamada não é executada corretamente dentro da função "cyrus"
293./arqs-conf-rhel5/cyrus.pl $LDAP_PWD
294
295############################################################################################
296
297dialog --backtitle "$BACKTITLE" --cr-wrap --msgbox "FIM. www.expressolivre.org" 7 55 &&
298
299#dialog                                          \
300#   --title 'Aviso Importante!!!'               \
301#   --textbox arqs-conf-rhel5/rpms/listalang.txt \
302#   0 0
303
304echo '.'
Note: See TracBrowser for help on using the repository browser.