diff --git a/provision.sh b/provision.sh index 0f5b34e..395eb74 100755 --- a/provision.sh +++ b/provision.sh @@ -2,10 +2,15 @@ set -x -enable_start_gitlab() +enable_start_service() { - systemctl enable gitlab - systemctl start gitlab + args=("$@") + i="0" + while [[ ! -z "${args[i]// }" ]]; do + systemctl enable ${args[i]// } + systemctl start ${args[i]// } + i=$[$i + 1] + done } package() @@ -24,61 +29,20 @@ sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 package epel-release -package wget postgresql-server nginx - -wget -P /etc/yum.repos.d/ https://copr.fedorainfracloud.org/coprs/softwarepublico/v4/repo/epel-7/softwarepublico-v4-epel-7.repo - -package gitlab - -############################################ -# Coisas estranhas: -# -# Installing : gitlab-shell-2.4.0-5.1.noarch -### Aparentemente, tanto as receitas quanto os specs, esperam que exista um usuário git -### criado nas máquinaso usuário git -# id: git: no such user - -### Isso não é uma coisa estranha, é o output padrão quando se instala o gitlab-shell -# mkdir -p /var/lib/gitlab-shell/repositories/: OK -# mkdir -p /var/lib/gitlab-shell/.ssh: OK -# chmod 700 /var/lib/gitlab-shell/.ssh: OK -# touch /var/lib/gitlab-shell/.ssh/authorized_keys: OK -# chmod 600 /var/lib/gitlab-shell/.ssh/authorized_keys: OK -# chmod -R ug+rwX,o-rwx /var/lib/gitlab-shell/repositories/: OK -# find /var/lib/gitlab-shell/repositories/ -type d -exec chmod g+s {} ;: OK - -# -# -# -# Installing : gitlab-7.6.2-13.2.noarch -### Isso é um erro no pacote do gitlab-7.6. Ele cria um link simbólico apontado -### para /var/lib/gitlab-assets, e depois tenta dar um chown, mas a pasta ainda não existe. -### Podemos fazer esse fix. -# chown: cannot access ‘/var/lib/gitlab-assets’: No such file or directory - -# Redirecting to /bin/systemctl start redis.service -# rake aborted! - -### No pacote do gitlab 8.5 eu simplesmente dei permissão git:git pra pasta /usr/lib/gitlab -# Errno::EACCES: Permission denied - /usr/lib/gitlab/.gitlab_shell_secret -# -# Tasks: TOP => db:migrate:status => environment -# (See full trace by running task with --trace) -# rake aborted! -# Errno::EACCES: Permission denied - /usr/lib/gitlab/.gitlab_shell_secret -# -# Tasks: TOP => gitlab:setup => environment -# (See full trace by running task with --trace) -# I, [2016-04-25T22:50:47.389656 #11843] INFO -- : Writing /usr/lib/gitlab/public/assets/authbuttons/github_32-7d94ec26bfa902d9573dac174421752a.png -# I, [2016-04-25T22:50:47.391563 #11843] INFO -- : Writing /usr/lib/gitlab/public/assets/authbuttons/github_64-cfef80f36a1826b9c90eeb38534dbd18.png -# -# -# -############################################ - +package wget postgresql-server postgresql-contrib nginx redis + +#### Redis configuration +echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis.conf +echo 'unixsocketperm 770' | sudo tee -a /etc/redis.conf +mkdir /var/run/redis +chown redis:redis /var/run/redis +chmod 755 /var/run/redis +if [ -d /etc/tmpfiles.d ]; then + echo 'd /var/run/redis 0755 redis redis 10d -' | sudo tee -a /etc/tmpfiles.d/redis.conf +fi +### Postgresql config postgresql-setup initdb - cat << EOF > /var/lib/pgsql/data/pg_hba.conf # METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", @@ -87,13 +51,15 @@ local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust EOF +enable_start_service postgresql redis +sudo usermod -aG redis git -enable_start_gitlab -sudo -u postgres createuser git +sudo -u postgres createuser git -d -l +psql -U git -d template1 -c "create database gitlabhq_production with owner git" +wget -P /etc/yum.repos.d/ https://copr.fedorainfracloud.org/coprs/softwarepublico/v4/repo/epel-7/softwarepublico-v4-epel-7.repo +package gitlab cd /usr/lib/gitlab -sudo -u git bundle exec rake db:setup RAILS_ENV=production && touch /var/lib/gitlab/setup.done - sed -i 's,http://localhost:8080/,http://localhost:8080/gitlab,' /etc/gitlab-shell/config.yml echo 'production: redis://localhost:6379' > /usr/lib/gitlab/config/resque.yml @@ -104,6 +70,14 @@ Gitlab::Application.configure do config.relative_url_root = "/gitlab" end EOF +sed -i 's/# ENV/ENV/' /etc/gitlab/unicorn.rb +sed -i 's/# config.relative_url_root/config.relative_url_root/' /usr/lib/gitlab/config/application.rb +chown -R git:git /usr/lib/gitlab/tmp/cache +chown -R git:git /usr/lib/gitlab/public/assets +chown -R git:git /var/lib/gitlab-assets +enable_start_service gitlab + +sudo -u git bundle exec rake db:setup RAILS_ENV=production && touch /var/lib/gitlab/setup.done cat << EOF > /etc/nginx/conf.d/gitlab.conf upstream gitlab { @@ -138,17 +112,8 @@ server { } EOF -systemctl enable nginx -systemctl restart nginx - +enable_start_service nginx -sed -i 's/# ENV/ENV/' /etc/gitlab/unicorn.rb - -sed -i 's/# config.relative_url_root/config.relative_url_root/' /usr/lib/gitlab/config/application.rb - -chown -R git:git /usr/lib/gitlab/tmp/cache -chown -R git:git /usr/lib/gitlab/public/assets -chown -R git:git /var/lib/gitlab-assets cd /usr/lib/gitlab && sudo -u git bundle exec rake assets:precompile RAILS_ENV=production @@ -170,7 +135,7 @@ if [[ -e $backup ]]; then chown git.git $backup ln $backup /var/lib/gitlab/backups/ cd /usr/lib/gitlab - #sudo -u git bundle exec rake gitlab:backup:restore RAILS_ENV=production force=yes + sudo -u git bundle exec rake gitlab:backup:restore RAILS_ENV=production force=yes else printf "Backup não encontrado" fi @@ -179,7 +144,48 @@ printf "Instalando gitlab 8.5" wget -P /etc/yum.repos.d/ https://copr.fedorainfracloud.org/coprs/softwarepublico/experimental/repo/epel-7/softwarepublico-experimental-epel-7.repo -package centos-release-scl -package rh-ruby22 -yum -y update gitlab -enable_start_gitlab +package centos-release-scl rh-ruby22 +package gitlab +sudo chmod -R ug+rwX,o-rwx /var/lib/gitlab-shell/repositories/ +sudo chmod -R ug-s /var/lib/gitlab-shell/repositories/ +sudo find /var/lib/gitlab-shell/repositories/ -type d -print0 | sudo xargs -0 chmod g+s +sudo chmod -R 777 /var/log/gitlab-shell/ + +cat << EOF > /usr/lib/gitlab-shell/config.yml + +user: git +gitlab_url: "http://127.0.0.1:8080/gitlab" + +http_settings: +# user: someone +# password: somepass +# ca_file: /etc/ssl/cert.pem +# ca_path: /etc/pki/tls/certs + self_signed_cert: false + +repos_path: "/var/lib/gitlab-shell/repositories/" +auth_file: "/var/lib/gitlab-shell/.ssh/authorized_keys" + +redis: + bin: /usr/bin/redis-cli + host: 127.0.0.1 + port: 6379 + # pass: redispass # Allows you to specify the password for Redis + #database: 0 + #socket: /var/run/redis/redis.sock # Comment out this line if you want to use TCP + #namespace: resque:gitlab + +log_file: "/var/log/gitlab-shell/gitlab-shell.log" +log_level: INFO +audit_usernames: false +EOF + + + +enable_start_service gitlab + +sudo -u git env PATH=/opt/rh/rh-ruby22/root/usr/bin/:/opt/rh/nodejs010/root/usr/bin/:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin LD_LIBRARY_PATH=/opt/rh/rh-ruby22/root/usr/lib64:/opt/rh/nodejs010/root/lib64/:/opt/rh/v8314/root/usr/lib64/ bundle exec rake db:migrate RAILS_ENV=production + +sudo -u git env PATH=/opt/rh/rh-ruby22/root/usr/bin/:/opt/rh/nodejs010/root/usr/bin/:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin LD_LIBRARY_PATH=/opt/rh/rh-ruby22/root/usr/lib64:/opt/rh/nodejs010/root/lib64/:/opt/rh/v8314/root/usr/lib64/ bundle exec rake assets:precompile RAILS_ENV=production + +sudo -u git env PATH=/opt/rh/rh-ruby22/root/usr/bin/:/opt/rh/nodejs010/root/usr/bin/:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin LD_LIBRARY_PATH=/opt/rh/rh-ruby22/root/usr/lib64:/opt/rh/nodejs010/root/lib64/:/opt/rh/v8314/root/usr/lib64/ bundle exec rake gitlab:check RAILS_ENV=production -- libgit2 0.21.2