Commit 65d1973fed4005a46695d121eb9e5887acfca2ec
1 parent
32abf6e8
Exists in
master
Complete gitlab configuration
- start services
- run migrations
- TODO: gitlab-shell cannot conect to the internal api
Showing
1 changed file
with
81 additions
and
75 deletions
Show diff stats
provision.sh
| ... | ... | @@ -2,10 +2,15 @@ |
| 2 | 2 | |
| 3 | 3 | set -x |
| 4 | 4 | |
| 5 | -enable_start_gitlab() | |
| 5 | +enable_start_service() | |
| 6 | 6 | { |
| 7 | - systemctl enable gitlab | |
| 8 | - systemctl start gitlab | |
| 7 | + args=("$@") | |
| 8 | + i="0" | |
| 9 | + while [[ ! -z "${args[i]// }" ]]; do | |
| 10 | + systemctl enable ${args[i]// } | |
| 11 | + systemctl start ${args[i]// } | |
| 12 | + i=$[$i + 1] | |
| 13 | + done | |
| 9 | 14 | } |
| 10 | 15 | |
| 11 | 16 | package() |
| ... | ... | @@ -24,61 +29,20 @@ sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config |
| 24 | 29 | setenforce 0 |
| 25 | 30 | |
| 26 | 31 | package epel-release |
| 27 | -package wget postgresql-server nginx | |
| 28 | - | |
| 29 | -wget -P /etc/yum.repos.d/ https://copr.fedorainfracloud.org/coprs/softwarepublico/v4/repo/epel-7/softwarepublico-v4-epel-7.repo | |
| 30 | - | |
| 31 | -package gitlab | |
| 32 | - | |
| 33 | -############################################ | |
| 34 | -# Coisas estranhas: | |
| 35 | -# | |
| 36 | -# Installing : gitlab-shell-2.4.0-5.1.noarch | |
| 37 | -### Aparentemente, tanto as receitas quanto os specs, esperam que exista um usuário git | |
| 38 | -### criado nas máquinaso usuário git | |
| 39 | -# id: git: no such user | |
| 40 | - | |
| 41 | -### Isso não é uma coisa estranha, é o output padrão quando se instala o gitlab-shell | |
| 42 | -# mkdir -p /var/lib/gitlab-shell/repositories/: OK | |
| 43 | -# mkdir -p /var/lib/gitlab-shell/.ssh: OK | |
| 44 | -# chmod 700 /var/lib/gitlab-shell/.ssh: OK | |
| 45 | -# touch /var/lib/gitlab-shell/.ssh/authorized_keys: OK | |
| 46 | -# chmod 600 /var/lib/gitlab-shell/.ssh/authorized_keys: OK | |
| 47 | -# chmod -R ug+rwX,o-rwx /var/lib/gitlab-shell/repositories/: OK | |
| 48 | -# find /var/lib/gitlab-shell/repositories/ -type d -exec chmod g+s {} ;: OK | |
| 49 | - | |
| 50 | -# | |
| 51 | -# <snip> | |
| 52 | -# | |
| 53 | -# Installing : gitlab-7.6.2-13.2.noarch | |
| 54 | -### Isso é um erro no pacote do gitlab-7.6. Ele cria um link simbólico apontado | |
| 55 | -### para /var/lib/gitlab-assets, e depois tenta dar um chown, mas a pasta ainda não existe. | |
| 56 | -### Podemos fazer esse fix. | |
| 57 | -# chown: cannot access ‘/var/lib/gitlab-assets’: No such file or directory | |
| 58 | - | |
| 59 | -# Redirecting to /bin/systemctl start redis.service | |
| 60 | -# rake aborted! | |
| 61 | - | |
| 62 | -### No pacote do gitlab 8.5 eu simplesmente dei permissão git:git pra pasta /usr/lib/gitlab | |
| 63 | -# Errno::EACCES: Permission denied - /usr/lib/gitlab/.gitlab_shell_secret | |
| 64 | -# | |
| 65 | -# Tasks: TOP => db:migrate:status => environment | |
| 66 | -# (See full trace by running task with --trace) | |
| 67 | -# rake aborted! | |
| 68 | -# Errno::EACCES: Permission denied - /usr/lib/gitlab/.gitlab_shell_secret | |
| 69 | -# | |
| 70 | -# Tasks: TOP => gitlab:setup => environment | |
| 71 | -# (See full trace by running task with --trace) | |
| 72 | -# I, [2016-04-25T22:50:47.389656 #11843] INFO -- : Writing /usr/lib/gitlab/public/assets/authbuttons/github_32-7d94ec26bfa902d9573dac174421752a.png | |
| 73 | -# I, [2016-04-25T22:50:47.391563 #11843] INFO -- : Writing /usr/lib/gitlab/public/assets/authbuttons/github_64-cfef80f36a1826b9c90eeb38534dbd18.png | |
| 74 | -# | |
| 75 | -# <snip> | |
| 76 | -# | |
| 77 | -############################################ | |
| 78 | - | |
| 32 | +package wget postgresql-server postgresql-contrib nginx redis | |
| 33 | + | |
| 34 | +#### Redis configuration | |
| 35 | +echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis.conf | |
| 36 | +echo 'unixsocketperm 770' | sudo tee -a /etc/redis.conf | |
| 37 | +mkdir /var/run/redis | |
| 38 | +chown redis:redis /var/run/redis | |
| 39 | +chmod 755 /var/run/redis | |
| 40 | +if [ -d /etc/tmpfiles.d ]; then | |
| 41 | + echo 'd /var/run/redis 0755 redis redis 10d -' | sudo tee -a /etc/tmpfiles.d/redis.conf | |
| 42 | +fi | |
| 79 | 43 | |
| 44 | +### Postgresql config | |
| 80 | 45 | postgresql-setup initdb |
| 81 | - | |
| 82 | 46 | cat << EOF > /var/lib/pgsql/data/pg_hba.conf |
| 83 | 47 | # METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", |
| 84 | 48 | |
| ... | ... | @@ -87,13 +51,15 @@ local all all trust |
| 87 | 51 | host all all 127.0.0.1/32 trust |
| 88 | 52 | host all all ::1/128 trust |
| 89 | 53 | EOF |
| 54 | +enable_start_service postgresql redis | |
| 55 | +sudo usermod -aG redis git | |
| 90 | 56 | |
| 91 | -enable_start_gitlab | |
| 92 | -sudo -u postgres createuser git | |
| 57 | +sudo -u postgres createuser git -d -l | |
| 58 | +psql -U git -d template1 -c "create database gitlabhq_production with owner git" | |
| 93 | 59 | |
| 60 | +wget -P /etc/yum.repos.d/ https://copr.fedorainfracloud.org/coprs/softwarepublico/v4/repo/epel-7/softwarepublico-v4-epel-7.repo | |
| 61 | +package gitlab | |
| 94 | 62 | cd /usr/lib/gitlab |
| 95 | -sudo -u git bundle exec rake db:setup RAILS_ENV=production && touch /var/lib/gitlab/setup.done | |
| 96 | - | |
| 97 | 63 | sed -i 's,http://localhost:8080/,http://localhost:8080/gitlab,' /etc/gitlab-shell/config.yml |
| 98 | 64 | |
| 99 | 65 | echo 'production: redis://localhost:6379' > /usr/lib/gitlab/config/resque.yml |
| ... | ... | @@ -104,6 +70,14 @@ Gitlab::Application.configure do |
| 104 | 70 | config.relative_url_root = "/gitlab" |
| 105 | 71 | end |
| 106 | 72 | EOF |
| 73 | +sed -i 's/# ENV/ENV/' /etc/gitlab/unicorn.rb | |
| 74 | +sed -i 's/# config.relative_url_root/config.relative_url_root/' /usr/lib/gitlab/config/application.rb | |
| 75 | +chown -R git:git /usr/lib/gitlab/tmp/cache | |
| 76 | +chown -R git:git /usr/lib/gitlab/public/assets | |
| 77 | +chown -R git:git /var/lib/gitlab-assets | |
| 78 | +enable_start_service gitlab | |
| 79 | + | |
| 80 | +sudo -u git bundle exec rake db:setup RAILS_ENV=production && touch /var/lib/gitlab/setup.done | |
| 107 | 81 | |
| 108 | 82 | cat << EOF > /etc/nginx/conf.d/gitlab.conf |
| 109 | 83 | upstream gitlab { |
| ... | ... | @@ -138,17 +112,8 @@ server { |
| 138 | 112 | } |
| 139 | 113 | EOF |
| 140 | 114 | |
| 141 | -systemctl enable nginx | |
| 142 | -systemctl restart nginx | |
| 143 | - | |
| 115 | +enable_start_service nginx | |
| 144 | 116 | |
| 145 | -sed -i 's/# ENV/ENV/' /etc/gitlab/unicorn.rb | |
| 146 | - | |
| 147 | -sed -i 's/# config.relative_url_root/config.relative_url_root/' /usr/lib/gitlab/config/application.rb | |
| 148 | - | |
| 149 | -chown -R git:git /usr/lib/gitlab/tmp/cache | |
| 150 | -chown -R git:git /usr/lib/gitlab/public/assets | |
| 151 | -chown -R git:git /var/lib/gitlab-assets | |
| 152 | 117 | |
| 153 | 118 | cd /usr/lib/gitlab && |
| 154 | 119 | sudo -u git bundle exec rake assets:precompile RAILS_ENV=production |
| ... | ... | @@ -170,7 +135,7 @@ if [[ -e $backup ]]; then |
| 170 | 135 | chown git.git $backup |
| 171 | 136 | ln $backup /var/lib/gitlab/backups/ |
| 172 | 137 | cd /usr/lib/gitlab |
| 173 | - #sudo -u git bundle exec rake gitlab:backup:restore RAILS_ENV=production force=yes | |
| 138 | + sudo -u git bundle exec rake gitlab:backup:restore RAILS_ENV=production force=yes | |
| 174 | 139 | else |
| 175 | 140 | printf "Backup não encontrado" |
| 176 | 141 | fi |
| ... | ... | @@ -179,7 +144,48 @@ printf "Instalando gitlab 8.5" |
| 179 | 144 | |
| 180 | 145 | wget -P /etc/yum.repos.d/ https://copr.fedorainfracloud.org/coprs/softwarepublico/experimental/repo/epel-7/softwarepublico-experimental-epel-7.repo |
| 181 | 146 | |
| 182 | -package centos-release-scl | |
| 183 | -package rh-ruby22 | |
| 184 | -yum -y update gitlab | |
| 185 | -enable_start_gitlab | |
| 147 | +package centos-release-scl rh-ruby22 | |
| 148 | +package gitlab | |
| 149 | +sudo chmod -R ug+rwX,o-rwx /var/lib/gitlab-shell/repositories/ | |
| 150 | +sudo chmod -R ug-s /var/lib/gitlab-shell/repositories/ | |
| 151 | +sudo find /var/lib/gitlab-shell/repositories/ -type d -print0 | sudo xargs -0 chmod g+s | |
| 152 | +sudo chmod -R 777 /var/log/gitlab-shell/ | |
| 153 | + | |
| 154 | +cat << EOF > /usr/lib/gitlab-shell/config.yml | |
| 155 | + | |
| 156 | +user: git | |
| 157 | +gitlab_url: "http://127.0.0.1:8080/gitlab" | |
| 158 | + | |
| 159 | +http_settings: | |
| 160 | +# user: someone | |
| 161 | +# password: somepass | |
| 162 | +# ca_file: /etc/ssl/cert.pem | |
| 163 | +# ca_path: /etc/pki/tls/certs | |
| 164 | + self_signed_cert: false | |
| 165 | + | |
| 166 | +repos_path: "/var/lib/gitlab-shell/repositories/" | |
| 167 | +auth_file: "/var/lib/gitlab-shell/.ssh/authorized_keys" | |
| 168 | + | |
| 169 | +redis: | |
| 170 | + bin: /usr/bin/redis-cli | |
| 171 | + host: 127.0.0.1 | |
| 172 | + port: 6379 | |
| 173 | + # pass: redispass # Allows you to specify the password for Redis | |
| 174 | + #database: 0 | |
| 175 | + #socket: /var/run/redis/redis.sock # Comment out this line if you want to use TCP | |
| 176 | + #namespace: resque:gitlab | |
| 177 | + | |
| 178 | +log_file: "/var/log/gitlab-shell/gitlab-shell.log" | |
| 179 | +log_level: INFO | |
| 180 | +audit_usernames: false | |
| 181 | +EOF | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | +enable_start_service gitlab | |
| 186 | + | |
| 187 | +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 | |
| 188 | + | |
| 189 | +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 | |
| 190 | + | |
| 191 | +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 | ... | ... |