colab.sh
5.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#!/bin/sh
#Instalação do Colab
#-------------------
#
#Siga os passo na máquina destinada ao Colab
IP_HOSTS=$1
COLAB_IP=$2
COLAB_PORT=$3
if [[ ! "$IP_HOSTS" || ! "$COLAB_IP" || ! "$COLAB_PORT" ]]
then
echo " Parametros nao encontrados. Utiliza o caminho absoluto para o arquivo."
echo ""
echo " ./colab.sh <PATH_TO_IP_HOSTS.YML> <IP_COLAB_EXTERN> <PORT> "
echo ""
echo "Utilize o modelo de ips:
wget https://gitlab.com/softwarepublico/colabdocumentation/raw/master/Arquivos/colab/ipconfig.yml -O /tmp/ipconfig.yml
Exemplo: ./colab.sh /tmp/ipconfig.yml 127.0.0.1 8000
"
exit -1
fi
#
#*NOTE:*
#
# Libere um acesso externo para esta máquina, pois o site do colab será acessado por esta máquina.
#
#Instale as ferramentas de desenvolvimento do python e algumas dependências para compilar o python
#
#.. code-block::
#
sudo yum groupinstall "Development tools" -y
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel libxslt-devel vim -y
#
#Faça o download e compile o Python 2.7
#
#.. code-block::
#
cd /tmp
sudo wget --no-check-certificate https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
sudo tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
sudo ./configure --prefix=/usr/local
sudo make
#
#Instale o python 2.7 como um python alternativo
#
#.. code-block::
#
sudo make altinstall
#
#Atualize a variável PATH para executar o python2.7
#
#.. code-block::
#
sudo sh -c "echo 'export PATH=$PATH:/usr/local/bin/' >> ~/.bashrc"
sudo sh -c "source ~/.bashrc"
#
#Instale o easy_install para o python 2.7
#
#.. code-block::
#
cd /tmp
sudo wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
sudo /usr/local/bin/python2.7 ez_setup.py
#
#Instale o pip 2.7
#
#.. code-block::
#
sudo /usr/local/bin/easy_install-2.7 pip
#
#Instale alguns pacotes adicionais do python
#
#.. code-block::
#
sudo yum remove libevent -y
sudo yum install mercurial libevent-devel python-devel -y
#
#Edite o arquivo sudores para executar o ``python2.7`` como sudo
#
#
#Mude a linha
#
#
sudo sed -i 's/\/sbin:\/bin:\/usr\/sbin:\/usr\/bin/\/sbin:\/bin:\/usr\/sbin:\/usr\/bin:\/usr\/local\/bin/' /etc/sudoers
#
#Instalando o Django 1.6
#
#Instale o django e o uwsgi
#
#.. code-block::
#
sudo pip2.7 install django
sudo pip2.7 install uwsgi
#
#Instale o Colab
#
#Instale o git e clone o repositório do colab
#
#.. code-block::
#Verifica se git instalado para não conflitar com gitlab
git_loc=`type -p $1`
if [[ ! "$git_loc" ]]
then
sudo yum install git -y
fi
cd /opt
sudo git clone https://github.com/colab-community/colab.git -b dev_spb
#
#Instale os pré-requisitos do colab
#
#.. code-block::
#
sudo yum install postgresql-devel -y #Foi preciso adicionar esta linha quando o postgrsql não é instalado na mesma máquina
sudo pip2.7 install mimeparse
sudo pip2.7 install -r /opt/colab/requirements.txt
#
#Crie o arquivo local_settings na pasta src/colab
#
#.. code-block::
#
sudo cp /opt/colab/src/colab/local_settings-dev.py /opt/colab/src/colab/local_settings.py
#
#Edite o arquivo local_settings criado, nele deverão ser alterados os IPs das máquinas utilizadas
#
#.. code-block::
#
TRAC_IP=`sed -n 1p $1 | grep -Po "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"`
GITLAB_IP=`sed -n 2p $1 | grep -Po "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"`
REDMINE_IP=`sed -n 3p $1 | grep -Po "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"`
#Troque os IPs das seguintes linhas
#
#.. code-block::
#
sudo sed -i "s/http:\/\/localhost:5000\/trac\//http:\/\/$TRAC_IP:5000\/trac\//g" /opt/colab/src/colab/local_settings.py
sudo sed -i "s/http:\/\/localhost:8090\/gitlab\//http:\/\/$GITLAB_IP:8090\/gitlab\//g" /opt/colab/src/colab/local_settings.py
sudo sed -i "s/http:\/\/localhost:9080\/redmine\//http:\/\/$REDMINE_IP:9080\/redmine\//g" /opt/colab/src/colab/local_settings.py
#Na máquina do colab, sincronize e migre o banco de dados.
#
#.. code-block::
#
#Passo adicionado: Recebendo o IP onde está instalado o Postgresql
DATABASE_IP=`sed -n 4p $1 | grep -Po "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"`
sudo sed -i "s/DATABASES\['default'\]\['HOST'\] = '[^']\+'/DATABASES\['default'\]\['HOST'\] = '$DATABASE_IP'/g" /opt/colab/src/colab/local_settings.py
sudo sed -i "s/DATABASES\['trac'\]\['HOST'\] = '[^']\+'/DATABASES\['trac'\]\['HOST'\] = '$DATABASE_IP'/g" /opt/colab/src/colab/local_settings.py
cd /opt/colab/src
python2.7 manage.py syncdb
python2.7 manage.py migrate
#Atualize o index com o solr, para executar esta ação o solr já deve estar funcionando na máquina voltada para o Solr
#
#.. code-block::
#
SOLR_IP=`sed -n 5p $1 | grep -Po "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"`
sudo sed -i "s/HAYSTACK_CONNECTIONS\['default'\]\['URL'\] = '[^']\+'/HAYSTACK_CONNECTIONS\['default'\]\['URL'\] = 'http:\/\/$SOLR_IP:8983\/solr\/'/g" /opt/colab/src/colab/local_settings.py
cd /opt/colab/src
python2.7 manage.py update_index
#Importe os e-mails do mailman
#
#.. code-block::
#
sudo python2.7 /opt/colab/src/manage.py import_emails
#
#Crie os Cronjobs para rodar em background a importação de email e a atualização do index
#
#.. code-block::
#
sudo sh -c "echo \"5 * * * * /usr/bin/python2.7 /opt/colab/src/manage.py import_emails
45 * * * * /usr/bin/python2.7 /opt/colab/src/manage.py update_index\" > /tmp/crontabs"
sudo crontab /tmp/crontabs
#Instale a inicialização do colab como serviço
# Adicionando o repositório PUIAS(para o supervisor)
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puias
sudo yum install supervisor -y
sudo sh -c "echo \"[program:colab]
command=/usr/local/bin/python2.7 /opt/colab/src/manage.py runserver $2:$3
directory=/opt/colab
user=colab
autostart=true
autorestart=false
redirect_stderr=true\" >> /etc/supervisord.conf"
## 12. Reinicie o supervisor
sudo service supervisord restart