Difference between revisions of "GitLab"

From RHS Wiki
Jump to navigation Jump to search
Tag: visualeditor
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Install=
+
=Install Omnibus Package=
see: https://about.gitlab.com/downloads<br />
+
www.gitlab.com
 +
==Disable bundled Nginx==
 +
@/etc/gitlab/gitlab.rb
 +
==Setup Nginx==
 +
see snippet @https://git.herrerosolis.com
  
*Install curl, openssh-server, ca-certificates postfix
+
=Install From Source (Not recomended)=
  sudo apt-get install curl openssh-server ca-certificates postfix
+
see: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md<br />
*Add the GitLab package server and install the package
+
ssl: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/misc/ssl-certificate-implemented
  curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
+
===Upgrade gitlab-shell===
  sudo apt-get install gitlab-ce
+
<source lang="bash">
Or select and download
+
cd /home/git/gitlab-shell
curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/trusty/gitlab-ce-XXX.deb/download
+
sudo -u git -H git fetch
dpkg -i gitlab-ce-XXX.deb
+
sudo -u git -H git checkout v1.9.6
*Configure GitLab
+
</source>
sudo gitlab-ctl reconfigure
+
===Resync authorized_keys file===
*Browse to the hostname and login:
+
  sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production
Username: root
+
===Database===
Password: 5iveL!fe
+
Recomended PostgreSQL<br />
* For configuration and troubleshooting options please see the Omnibus GitLab documentation<br />
+
<source lang="bash">
http://doc.gitlab.com/omnibus/
+
# Install the database packages
==Configuration==
+
sudo apt-get install -y postgresql postgresql-client libpq-dev
/etc/gitlab/gitlab.rb
+
 
 +
# Login to PostgreSQL
 +
sudo -u postgres psql -d template1
 +
 
 +
# Create a user for GitLab
 +
# Do not type the 'template1=#', this is part of the prompt
 +
template1=# CREATE USER git CREATEDB;
 +
 
 +
# Create the GitLab production database & grant all privileges on database
 +
template1=# CREATE DATABASE gitlabhq_production OWNER git;
 +
 
 +
# Quit the database session
 +
template1=# \q
 +
 
 +
# Try connecting to the new database with the new user
 +
sudo -u git -H psql -d gitlabhq_production
 +
 
 +
# Quit the database session
 +
gitlabhq_production> \q
 +
</source>
 +
==Default repositorys==
 +
  git_data_dir "/var/opt/gitlab/git-data"
 +
<br />
 +
 
 +
= Registry =
 +
Add to /etc/gitlab/gitlab.rb the following line<syntaxhighlight lang="ruby">
 +
registry_external_url 'https://git.rra.lan:4443'
 +
</syntaxhighlight>Run <syntaxhighlight lang="bash">
 +
gitlab-ctl reconfigure
 +
</syntaxhighlight><br />
 +
 
 +
= Let's Encrypt =
 +
Add to /etc/gitlab/gitlab.rb the following lines<syntaxhighlight lang="ruby">
 +
letsencrypt['enable'] = true
 +
letsencrypt['contact_emails'] = ['redteam@bbva.com']
 +
letsencrypt['auto_renew_hour'] = "12"
 +
letsencrypt['auto_renew_minute'] = "30"
 +
letsencrypt['auto_renew_day_of_month'] = "*/7"
 +
letsencrypt['auto_renew'] = false
 +
 
 +
</syntaxhighlight>Run <syntaxhighlight lang="bash">
 +
gitlab-ctl reconfigure
 +
</syntaxhighlight>
 +
 
 +
=Update=
 +
[https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/patch_versions.md Guide]
 +
Notes:<br />
 +
If it fails with: gem "pg"...<br />
 +
Edit /home/git/Gemfile<br />
 +
Search for:
 +
<nowiki>
 +
# Supported DBs
 +
gem "mysql2", '~> 0.3.16', group: :mysql
 +
#gem "pg", '~> 0.18.2', group: :postgres  <--------COMMENT THIS LINE </nowiki>
 +
Search for:
 +
<nowiki>
 +
group :production do
 +
  gem "gitlab_meta", '7.0'
 +
  gem "pg", '~> 0.18.2', group: :postgres  <--------- ADD THIS
 +
end </nowiki>
 +
 
 +
If it fails with *pg_trgm*
 +
  sudo apt-get install postgresql-contrib
 +
sudo -u postgres psql -d gitlabhq_production -c "create extension pg_trgm;"
 +
 
 +
=CI Runner setup @raspberry pi=
 +
[https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/install/linux-repository.md GitLab Documentation]
 +
 
 +
#Install Docker
 +
#:<pre>curl -sSL https://get.docker.com/ | sh</pre>
 +
#Add gitlab repository
 +
#:<pre>curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash</pre>
 +
#Debian should use apt pinning
 +
#:<pre>cat > /etc/apt/preferences.d/pin-gitlab-runner.pref <<EOF
 +
#::Explanation: Prefer GitLab provided packages over the Debian native ones
 +
#::Package: gitlab-ci-multi-runner
 +
#::Pin: origin packages.gitlab.com
 +
#::Pin-Priority: 1001
 +
#::EOF</pre>
 +
#Install gitlab-ci-multi-runner
 +
#:<pre>sudo apt-get install gitlab-ci-multi-runner</pre>

Latest revision as of 08:53, 7 March 2019

Install Omnibus Package[edit]

www.gitlab.com

Disable bundled Nginx[edit]

@/etc/gitlab/gitlab.rb

Setup Nginx[edit]

see snippet @https://git.herrerosolis.com

Install From Source (Not recomended)[edit]

see: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md
ssl: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/misc/ssl-certificate-implemented

Upgrade gitlab-shell[edit]

cd /home/git/gitlab-shell
sudo -u git -H git fetch
sudo -u git -H git checkout v1.9.6

Resync authorized_keys file[edit]

sudo -u git -H bundle exec rake gitlab:shell:setup RAILS_ENV=production

Database[edit]

Recomended PostgreSQL

# Install the database packages
sudo apt-get install -y postgresql postgresql-client libpq-dev

# Login to PostgreSQL
sudo -u postgres psql -d template1

# Create a user for GitLab
# Do not type the 'template1=#', this is part of the prompt
template1=# CREATE USER git CREATEDB;

# Create the GitLab production database & grant all privileges on database
template1=# CREATE DATABASE gitlabhq_production OWNER git;

# Quit the database session
template1=# \q

# Try connecting to the new database with the new user
sudo -u git -H psql -d gitlabhq_production

# Quit the database session
gitlabhq_production> \q

Default repositorys[edit]

git_data_dir "/var/opt/gitlab/git-data"


Registry[edit]

Add to /etc/gitlab/gitlab.rb the following line

registry_external_url 'https://git.rra.lan:4443'

Run

gitlab-ctl reconfigure


Let's Encrypt[edit]

Add to /etc/gitlab/gitlab.rb the following lines

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['redteam@bbva.com']
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"
letsencrypt['auto_renew'] = false

Run

gitlab-ctl reconfigure

Update[edit]

Guide Notes:
If it fails with: gem "pg"...
Edit /home/git/Gemfile
Search for:

 # Supported DBs
 gem "mysql2", '~> 0.3.16', group: :mysql
 #gem "pg", '~> 0.18.2', group: :postgres   <--------COMMENT THIS LINE 

Search for:

 group :production do
   gem "gitlab_meta", '7.0'
   gem "pg", '~> 0.18.2', group: :postgres  <--------- ADD THIS
 end 

If it fails with *pg_trgm*

sudo apt-get install postgresql-contrib
sudo -u postgres psql -d gitlabhq_production -c "create extension pg_trgm;"

CI Runner setup @raspberry pi[edit]

GitLab Documentation

  1. Install Docker
    curl -sSL https://get.docker.com/ | sh
  2. Add gitlab repository
    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash
  3. Debian should use apt pinning
    cat > /etc/apt/preferences.d/pin-gitlab-runner.pref <<EOF
    
    Explanation: Prefer GitLab provided packages over the Debian native ones
    Package: gitlab-ci-multi-runner
    Pin: origin packages.gitlab.com
    Pin-Priority: 1001
    EOF
  4. Install gitlab-ci-multi-runner
    sudo apt-get install gitlab-ci-multi-runner