Commit 65d1973fed4005a46695d121eb9e5887acfca2ec

Authored by David Silva
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
@@ -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 &quot;Instalando gitlab 8.5&quot; @@ -179,7 +144,48 @@ printf &quot;Instalando gitlab 8.5&quot;
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