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,10 +2,15 @@ | ||
2 | 2 | ||
3 | set -x | 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 | package() | 16 | package() |
@@ -24,61 +29,20 @@ sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config | @@ -24,61 +29,20 @@ sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config | ||
24 | setenforce 0 | 29 | setenforce 0 |
25 | 30 | ||
26 | package epel-release | 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 | postgresql-setup initdb | 45 | postgresql-setup initdb |
81 | - | ||
82 | cat << EOF > /var/lib/pgsql/data/pg_hba.conf | 46 | cat << EOF > /var/lib/pgsql/data/pg_hba.conf |
83 | # METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", | 47 | # METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", |
84 | 48 | ||
@@ -87,13 +51,15 @@ local all all trust | @@ -87,13 +51,15 @@ local all all trust | ||
87 | host all all 127.0.0.1/32 trust | 51 | host all all 127.0.0.1/32 trust |
88 | host all all ::1/128 trust | 52 | host all all ::1/128 trust |
89 | EOF | 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 | cd /usr/lib/gitlab | 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 | sed -i 's,http://localhost:8080/,http://localhost:8080/gitlab,' /etc/gitlab-shell/config.yml | 63 | sed -i 's,http://localhost:8080/,http://localhost:8080/gitlab,' /etc/gitlab-shell/config.yml |
98 | 64 | ||
99 | echo 'production: redis://localhost:6379' > /usr/lib/gitlab/config/resque.yml | 65 | echo 'production: redis://localhost:6379' > /usr/lib/gitlab/config/resque.yml |
@@ -104,6 +70,14 @@ Gitlab::Application.configure do | @@ -104,6 +70,14 @@ Gitlab::Application.configure do | ||
104 | config.relative_url_root = "/gitlab" | 70 | config.relative_url_root = "/gitlab" |
105 | end | 71 | end |
106 | EOF | 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 | cat << EOF > /etc/nginx/conf.d/gitlab.conf | 82 | cat << EOF > /etc/nginx/conf.d/gitlab.conf |
109 | upstream gitlab { | 83 | upstream gitlab { |
@@ -138,17 +112,8 @@ server { | @@ -138,17 +112,8 @@ server { | ||
138 | } | 112 | } |
139 | EOF | 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 | cd /usr/lib/gitlab && | 118 | cd /usr/lib/gitlab && |
154 | sudo -u git bundle exec rake assets:precompile RAILS_ENV=production | 119 | sudo -u git bundle exec rake assets:precompile RAILS_ENV=production |
@@ -170,7 +135,7 @@ if [[ -e $backup ]]; then | @@ -170,7 +135,7 @@ if [[ -e $backup ]]; then | ||
170 | chown git.git $backup | 135 | chown git.git $backup |
171 | ln $backup /var/lib/gitlab/backups/ | 136 | ln $backup /var/lib/gitlab/backups/ |
172 | cd /usr/lib/gitlab | 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 | else | 139 | else |
175 | printf "Backup não encontrado" | 140 | printf "Backup não encontrado" |
176 | fi | 141 | fi |
@@ -179,7 +144,48 @@ printf "Instalando gitlab 8.5" | @@ -179,7 +144,48 @@ printf "Instalando gitlab 8.5" | ||
179 | 144 | ||
180 | wget -P /etc/yum.repos.d/ https://copr.fedorainfracloud.org/coprs/softwarepublico/experimental/repo/epel-7/softwarepublico-experimental-epel-7.repo | 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 |