gitlab.sh 4.24 KB
#!/bin/bash

#To show the debug log
set -x

DATABASE_HOST=$1
LOCALHOST=$2

if [[ ! "$DATABASE_HOST"  && ! "$LOCALHOST"  ]]
    then
    echo "Uso: ./gitlab.sh <DATABASE_HOST> <EXTERNAL_IP>"
    exit -1
fi

# [ -s "$HOME/.rvm/scripts/rvm" ] && . "$HOME/.rvm/scripts/rvm"

sudo yum install -y wget yum-utils

sudo wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/0608B895.txt
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

sudo wget -O /etc/yum.repos.d/PUIAS_6_computational.repo https://gitlab.com/gitlab-org/gitlab-recipes/raw/master/install/centos/PUIAS_6_computational.repo
sudo wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-puias http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-puias
sudo yum-config-manager --enable epel --enable PUIAS_6_computational

sudo yum -y groupinstall 'Development Tools'
sudo yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc sqlite-devel libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui redis crontabs logwatch logrotate postfix zlib-devel perl-CPAN gettext curl-devel gettext-devel openssl-devel perl-Time-HiRes.x86_64 

sudo chkconfig redis on
sudo service redis start

sudo yum -y remove git

mkdir /tmp/git && cd /tmp/git
wget https://git-core.googlecode.com/files/git-1.9.0.tar.gz
tar xzf git-1.9.0.tar.gz
cd git-1.9.0/
./configure
make
sudo make prefix=/usr/local install

sudo adduser --system --shell /bin/bash --comment 'GitLab' --create-home --home-dir /home/git/ git
sudo bash -c "echo 'git ALL=(ALL) ALL' > /etc/sudoers.d/git"
sudo -iu git rvm use 2.0.0@gitlab --default

sudo -iu git /usr/local/bin/git clone https://gitlab.com/gitlab-org/gitlab-shell.git
sudo -iu git /usr/local/bin/git --git-dir=/home/git/gitlab-shell/.git --work-tree=/home/git/gitlab-shell/ reset --hard v1.9.3
sudo -iu git cp /home/git/gitlab-shell/config.yml.example /home/git/gitlab-shell/config.yml
sudo -iu git ruby /home/git/gitlab-shell/bin/install
sudo restorecon -Rv /home/git/.ssh

sudo -iu git /usr/local/bin/git clone https://github.com/colab-community/gitlabhq.git -b spb-stable /home/git/gitlab
sudo -iu git cp /home/git/gitlab/config/gitlab.yml.example /home/git/gitlab/config/gitlab.yml
sudo -iu git mkdir /home/git/gitlab-satellites
sudo chmod u+rwx,g+rx,o-rwx /home/git/gitlab-satellites
sudo -iu git cp /home/git/gitlab/config/unicorn.rb.example /home/git/gitlab/config/unicorn.rb
sudo -iu git cp /home/git/gitlab/config/initializers/rack_attack.rb.example /home/git/gitlab/config/initializers/rack_attack.rb
sudo sed -i "s/gitlab_url: \"http:\/\/localhost\/\"/gitlab_url: \"http:\/\/$LOCALHOST:8090\/gitlab\//" /home/git/gitlab-shell/config.yml

sudo -iu git /usr/local/bin/git config --global user.name "GitLab"
sudo -iu git /usr/local/bin/git config --global user.email "gitlab@localhost"
sudo -iu git /usr/local/bin/git config --global core.autocrlf input
sudo su - git -c "echo 'production:
  adapter: postgresql
  encoding: unicode
  database: gitlabhq_production
  pool: 10
  username: git
  host: $DATABASE_HOST' > /home/git/gitlab/config/database.yml"
sudo -iu git -H chmod o-rwx /home/git/gitlab/config/database.yml

# Baixando as dependencias, criando o banco, instalando de fato
sudo su - git -c 'cd /home/git/gitlab && bundle config build.pg'
sudo su - git -c 'cd /home/git/gitlab && bundle config build.nokogiri --use-system-libraries'
sudo su - git -c 'cd /home/git/gitlab && bundle install --verbose --deployment --without development test mysql aws'
sudo su - git -c 'cd /home/git/gitlab && echo yes | bundle exec rake db:create db:migrate RAILS_ENV=production'
sudo su - git -c 'cd /home/git/gitlab && echo yes | bundle exec rake gitlab:setup RAILS_ENV=production'
sudo su - git -c 'cd /home/git/gitlab bundle exec rake assets:precompile RAILS_ENV=production'

# Configurando o servico do gitlab
sudo wget -O /etc/init.d/gitlab https://gitlab.com/softwarepublico/colabdocumentation/raw/master/Arquivos/gitlab-unicorn
sudo chmod +x /etc/init.d/gitlab
sudo chkconfig --add gitlab
sudo chkconfig gitlab on
sudo cat /home/git/gitlab/lib/support/logrotate/gitlab > /etc/logrotate.d/gitlab
sudo service gitlab restart