SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
GitLab Installation with Git & Gitolite on CentOS – 6.3




                       Raiful Hasan

                     DIVINE IT LIMITED
GitLab Installation on CentOS – 6.3


Preperation:


The main problem with installing GitLab on CentOS is that - other than Ubuntu or Fedora - it
doesn't have the ICU(lib) installed and
that's why ruby crashes/doesn't run around.

We will work as root most of the time, so make sure you have the permissions to do so


First of all we need to add the epel repo to yum to get all the packages we want.



1: rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm

Then we install all required packages:



1: yum -y groupinstall 'Development Tools' 'Additional Development'
2: yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel
expat-devel db4-devel byacc gitolite sqlite-devel gcc-c++ libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-
devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui python-devel redis



Up next: Downloading and extracting ruby:


1: curl -O http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
2: tar xzvf ruby-1.9.3-p0.tar.gz
3: cd ruby-1.9.3-p0




1) Configure without binary suffix

1: ./configure --enable-shared --disable-pthread

Now install ruby:

1: make && make install




DIVINE IT LIMITED                                                                                              Page 2
GitLab Installation on CentOS – 6.3


Some may need to install qt-devel qtwebkit-devel by running (Replace the 64 in the path with
32 if you're running on a 32 bit box)


1: yum install qt-devel qtwebkit-devel
2: export PATH=$PATH:/usr/lib64/qt4/bin

Now we have to install all the gems GitLab needs to run:


1: gem update --system
2: gem update
3: gem install rails

Now everything is set up and we can start to configure the environment for GitLab. First we
create a user, that will run GitLab:


1: adduser --shell /bin/bash --create-home --home-dir /home/gitlab gitlab

Because this user will be the Admin of the repos on the server, we need to have a RSA key pair
to authenticate:


1: su gitlab
2: ssh-keygen -t rsa # as gitlab user



Now switch back to root account. Because GitLab is only a graphical user interface to manage
repos, we need a powerfull backend. gitolite will do this for us.
We also need a user for gitolite.


1: adduser --system --shell /bin/sh --comment 'gitolite' --create-home --home-dir /home/git git



Gitolite needs to know one key, that it knows as admin. We will pass the key of GitLab to
gitolite. To do so we first copy the private key of our gitlab user to the home
directory of our gitolite user:


1: # make sure you do this as root
2: cp /home/gitlab/.ssh/id_rsa.pub /home/git/gitlab.pub




DIVINE IT LIMITED                                                                                 Page 3
GitLab Installation on CentOS – 6.3


Now we need to initialize gitolite:


1: su git
2: gl-setup ~/gitlab.pub # this passes the admin key to gitolite

When the prompt appears edit the provided file (it's in a vi-Editor) and set $REPO_UMASK to
0007

Switch back to root user now.

We now need to give our management software (GitLab) access to the repos:



1: usermod -a -G git gitlab
2: chmod -R g+rwX /home/git/repositories/
3: chmod 770 /home/git



Because the gitlab user will need a password later on, we configure it right now, so we are
finished with all the user stuff.


1: passwd gitlab # please choose a good password :)



As next step we need to introduce GitLab to gitolite (that is, we let them change their SSH-keys)


1: su gitlab
2: ssh git@localhost



and back to the root user, so we don't need to care about permissions.

GitLab needs a few gems, we haven't installed yet:

1:   curl http://python-distribute.org/distribute_setup.py | python
2:   easy_install pip
3:   pip install pygments
4:   gem install bundler



As mentioned before, the gitlab user will have to do a bit of administration stuff, so we need to

DIVINE IT LIMITED                                                                          Page 4
GitLab Installation on CentOS – 6.3


give him sudo rights. To do so, we edit the sudoers file with visudo:


1: visudo



Add gitlab ALL=(ALL) ALL after root ALL=(ALL) ALL so it looks like this:


1:   ...
2:   root ALL=(ALL) ALL
3:   gitlab ALL=(ALL) ALL
4:   ...



Do not edit anything else!!!

After another two gems we are finished with the gem stuff:



1: gem install ruby-debug19
2: gem install charlock_holmes



We now switch to our gitlab user and we won't use our root account anymore:


1: su gitlab



Get the GitLab software:

1: cd && git clone git://github.com/gitlabhq/gitlabhq.git
2: cd gitlabhq
We're nearly done. Next we bundle our application.


1: bundle install



GitLab will use a MySQL database (in our case), which we need to install and start:

1: yum -y install mysql-server
2: /etc/init.d/mysqld start


DIVINE IT LIMITED                                                                     Page 5
GitLab Installation on CentOS – 6.3


To configure the MySQL server easily we use:



1: mysql_secure_installation



Remember the password type in for root!

We now connect to our database server to create a user for GitLab:



1: mysql -u root -p # when prompted enter the root password we've chosen in mysql_secure_installation



We now have a mysql shell. Mind the trailing ; !



1: mysql> CREATE DATABASE gitlab CHARACTER SET UTF8;
2: mysql> GRANT ALL PRIVILEGES ON gitlab.* TO 'gitlabusr'@'localhost' IDENTIFIED BY 'supersecret' WITH GRANT
OPTION;
3: mysql> quit



Remember the password and username (here: gitlabusr and supersecret)!


To create the database a script is deployed with GitLab. However it needs an additional service
to run:



1: sudo nohup redis-server > /dev/null



Enter the password created for the gitlab user and hit CTRL+Z. Then type



1: bg



The service is now running in background.

DIVINE IT LIMITED                                                                                       Page 6
GitLab Installation on CentOS – 6.3


We now configure GitLab by copying the configurion files from example to real:



1: cp ~/gitlabhq/config/database.yml.example ~/gitlabhq/config/database.yml
2: cp ~/gitlabhq/config/gitlab.yml.example ~/gitlabhq/config/gitlab.yml

In database.yml we have to edit the production settings of database (at the very top of the file).
We have to change the database-name, username and password.

We will now create the database structure:



1: RAILS_ENV=production rake db:setup
2: RAILS_ENV=production rake db:seed_fu



To start the server we use



1: bundle exec rails s -e production




That's it. We're done. All have to do now, is set up firewall and navigate to http://ip-or-
domain:3000/ and log in with

user: admin@local.host
pass: 5iveL!fe




DIVINE IT LIMITED                                                                             Page 7

Mais conteúdo relacionado

Mais procurados

How to go the extra mile on monitoring
How to go the extra mile on monitoringHow to go the extra mile on monitoring
How to go the extra mile on monitoringTiago Simões
 
AWS 기반 Docker, Kubernetes
AWS 기반 Docker, KubernetesAWS 기반 Docker, Kubernetes
AWS 기반 Docker, Kubernetes정빈 권
 
How to create a multi tenancy for an interactive data analysis with jupyter h...
How to create a multi tenancy for an interactive data analysis with jupyter h...How to create a multi tenancy for an interactive data analysis with jupyter h...
How to create a multi tenancy for an interactive data analysis with jupyter h...Tiago Simões
 
My sql failover test using orchestrator
My sql failover test  using orchestratorMy sql failover test  using orchestrator
My sql failover test using orchestratorYoungHeon (Roy) Kim
 
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...SUSE
 
Installing spark 2
Installing spark 2Installing spark 2
Installing spark 2Ahmed Mekawy
 
Installing OpenStack Juno using RDO on RHEL
Installing OpenStack Juno using RDO on RHELInstalling OpenStack Juno using RDO on RHEL
Installing OpenStack Juno using RDO on RHELopenstackstl
 
How to manage Microsoft Azure with open source
How to manage Microsoft Azure with open sourceHow to manage Microsoft Azure with open source
How to manage Microsoft Azure with open sourceTaehee Jang
 
MySQL replication & cluster
MySQL replication & clusterMySQL replication & cluster
MySQL replication & clusterelliando dias
 
Openstack installation using rdo multi node
Openstack installation using rdo multi nodeOpenstack installation using rdo multi node
Openstack installation using rdo multi nodeNarasimha sreeram
 
Installing hive on ubuntu 16
Installing hive on ubuntu 16Installing hive on ubuntu 16
Installing hive on ubuntu 16Enrique Davila
 
使用 CLI 管理 OpenStack 平台
使用 CLI 管理 OpenStack 平台使用 CLI 管理 OpenStack 平台
使用 CLI 管理 OpenStack 平台NUTC, imac
 
Docker on openstack by OpenSource Consulting
Docker on openstack by OpenSource ConsultingDocker on openstack by OpenSource Consulting
Docker on openstack by OpenSource ConsultingOpen Source Consulting
 
Installing apache sqoop
Installing apache sqoopInstalling apache sqoop
Installing apache sqoopEnrique Davila
 
Build your own private openstack cloud
Build your own private openstack cloudBuild your own private openstack cloud
Build your own private openstack cloudNUTC, imac
 
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaTutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaArun Ganesh
 
Installing hadoop on ubuntu 16
Installing hadoop on ubuntu 16Installing hadoop on ubuntu 16
Installing hadoop on ubuntu 16Enrique Davila
 
{'python': 'dict'}
{'python': 'dict'}{'python': 'dict'}
{'python': 'dict'}nybon
 
Docker 基本概念與指令操作
Docker  基本概念與指令操作Docker  基本概念與指令操作
Docker 基本概念與指令操作NUTC, imac
 
CoreOS : 설치부터 컨테이너 배포까지
CoreOS : 설치부터 컨테이너 배포까지CoreOS : 설치부터 컨테이너 배포까지
CoreOS : 설치부터 컨테이너 배포까지충섭 김
 

Mais procurados (20)

How to go the extra mile on monitoring
How to go the extra mile on monitoringHow to go the extra mile on monitoring
How to go the extra mile on monitoring
 
AWS 기반 Docker, Kubernetes
AWS 기반 Docker, KubernetesAWS 기반 Docker, Kubernetes
AWS 기반 Docker, Kubernetes
 
How to create a multi tenancy for an interactive data analysis with jupyter h...
How to create a multi tenancy for an interactive data analysis with jupyter h...How to create a multi tenancy for an interactive data analysis with jupyter h...
How to create a multi tenancy for an interactive data analysis with jupyter h...
 
My sql failover test using orchestrator
My sql failover test  using orchestratorMy sql failover test  using orchestrator
My sql failover test using orchestrator
 
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
 
Installing spark 2
Installing spark 2Installing spark 2
Installing spark 2
 
Installing OpenStack Juno using RDO on RHEL
Installing OpenStack Juno using RDO on RHELInstalling OpenStack Juno using RDO on RHEL
Installing OpenStack Juno using RDO on RHEL
 
How to manage Microsoft Azure with open source
How to manage Microsoft Azure with open sourceHow to manage Microsoft Azure with open source
How to manage Microsoft Azure with open source
 
MySQL replication & cluster
MySQL replication & clusterMySQL replication & cluster
MySQL replication & cluster
 
Openstack installation using rdo multi node
Openstack installation using rdo multi nodeOpenstack installation using rdo multi node
Openstack installation using rdo multi node
 
Installing hive on ubuntu 16
Installing hive on ubuntu 16Installing hive on ubuntu 16
Installing hive on ubuntu 16
 
使用 CLI 管理 OpenStack 平台
使用 CLI 管理 OpenStack 平台使用 CLI 管理 OpenStack 平台
使用 CLI 管理 OpenStack 平台
 
Docker on openstack by OpenSource Consulting
Docker on openstack by OpenSource ConsultingDocker on openstack by OpenSource Consulting
Docker on openstack by OpenSource Consulting
 
Installing apache sqoop
Installing apache sqoopInstalling apache sqoop
Installing apache sqoop
 
Build your own private openstack cloud
Build your own private openstack cloudBuild your own private openstack cloud
Build your own private openstack cloud
 
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of IndiaTutorial to setup OpenStreetMap tileserver with customized boundaries of India
Tutorial to setup OpenStreetMap tileserver with customized boundaries of India
 
Installing hadoop on ubuntu 16
Installing hadoop on ubuntu 16Installing hadoop on ubuntu 16
Installing hadoop on ubuntu 16
 
{'python': 'dict'}
{'python': 'dict'}{'python': 'dict'}
{'python': 'dict'}
 
Docker 基本概念與指令操作
Docker  基本概念與指令操作Docker  基本概念與指令操作
Docker 基本概念與指令操作
 
CoreOS : 설치부터 컨테이너 배포까지
CoreOS : 설치부터 컨테이너 배포까지CoreOS : 설치부터 컨테이너 배포까지
CoreOS : 설치부터 컨테이너 배포까지
 

Destaque

Basics About Git & GitHub
Basics About Git & GitHubBasics About Git & GitHub
Basics About Git & GitHubRaiful Hasan
 
Nway-Project, Git, github & opensource
Nway-Project, Git, github & opensourceNway-Project, Git, github & opensource
Nway-Project, Git, github & opensourceHudson Mendes
 
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012Mauro George
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitBruno Ricardo Siqueira
 
Controle de versão utilizando git
Controle de versão utilizando gitControle de versão utilizando git
Controle de versão utilizando gitfredmosc
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow soloviniciusban
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to GitlabJulien Pivotto
 

Destaque (14)

git 101
git 101git 101
git 101
 
Git Rápido e Fácil
Git Rápido e FácilGit Rápido e Fácil
Git Rápido e Fácil
 
Basics About Git & GitHub
Basics About Git & GitHubBasics About Git & GitHub
Basics About Git & GitHub
 
Nway-Project, Git, github & opensource
Nway-Project, Git, github & opensourceNway-Project, Git, github & opensource
Nway-Project, Git, github & opensource
 
Introdução ao Git
Introdução ao Git   Introdução ao Git
Introdução ao Git
 
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando Git
 
GIT Introduction
GIT IntroductionGIT Introduction
GIT Introduction
 
Controle de versão utilizando git
Controle de versão utilizando gitControle de versão utilizando git
Controle de versão utilizando git
 
Gitlab flow
Gitlab flowGitlab flow
Gitlab flow
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
Up GitLab Presentation 2015
Up GitLab Presentation 2015Up GitLab Presentation 2015
Up GitLab Presentation 2015
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 

Semelhante a Gitlab installation

How To Install GitLab As Your Private GitHub Clone
How To Install GitLab As Your Private GitHub CloneHow To Install GitLab As Your Private GitHub Clone
How To Install GitLab As Your Private GitHub CloneVEXXHOST Private Cloud
 
GIT in a nutshell
GIT in a nutshellGIT in a nutshell
GIT in a nutshellalignan
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CIOlinData
 
Matt Gauger - Git & Github web414 December 2010
Matt Gauger - Git & Github web414 December 2010Matt Gauger - Git & Github web414 December 2010
Matt Gauger - Git & Github web414 December 2010Matt Gauger
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeTeerapat Khunpech
 
Git for a newbie
Git for a newbieGit for a newbie
Git for a newbieAnuj Sharma
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool boxbpowell29a
 
5 Things I Wish I Knew About Gitlab CI
5 Things I Wish I Knew About Gitlab CI5 Things I Wish I Knew About Gitlab CI
5 Things I Wish I Knew About Gitlab CISebastian Witowski
 
Git intro hands on windows with msysgit
Git intro hands on windows with msysgitGit intro hands on windows with msysgit
Git intro hands on windows with msysgitGeshan Manandhar
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and LingvokotLingvokot
 
The Secrets of The FullStack Ninja - Part A - Session I
The Secrets of The FullStack Ninja - Part A - Session IThe Secrets of The FullStack Ninja - Part A - Session I
The Secrets of The FullStack Ninja - Part A - Session IOded Sagir
 
Hello Git
Hello GitHello Git
Hello Gitbsadd
 
Docker at Digital Ocean
Docker at Digital OceanDocker at Digital Ocean
Docker at Digital OceanCloud 66
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for ArtistsDavid Newbury
 
Git and Github.pptx
Git and Github.pptxGit and Github.pptx
Git and Github.pptxHitesh670643
 

Semelhante a Gitlab installation (20)

How To Install GitLab As Your Private GitHub Clone
How To Install GitLab As Your Private GitHub CloneHow To Install GitLab As Your Private GitHub Clone
How To Install GitLab As Your Private GitHub Clone
 
GIT in a nutshell
GIT in a nutshellGIT in a nutshell
GIT in a nutshell
 
FOSDEM 2017: GitLab CI
FOSDEM 2017:  GitLab CIFOSDEM 2017:  GitLab CI
FOSDEM 2017: GitLab CI
 
Matt Gauger - Git & Github web414 December 2010
Matt Gauger - Git & Github web414 December 2010Matt Gauger - Git & Github web414 December 2010
Matt Gauger - Git & Github web414 December 2010
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTree
 
Git for a newbie
Git for a newbieGit for a newbie
Git for a newbie
 
Os dev tool box
Os dev tool boxOs dev tool box
Os dev tool box
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Git github
Git githubGit github
Git github
 
1-Intro to VC & GIT PDF.pptx
1-Intro to VC & GIT PDF.pptx1-Intro to VC & GIT PDF.pptx
1-Intro to VC & GIT PDF.pptx
 
5 Things I Wish I Knew About Gitlab CI
5 Things I Wish I Knew About Gitlab CI5 Things I Wish I Knew About Gitlab CI
5 Things I Wish I Knew About Gitlab CI
 
Git intro hands on windows with msysgit
Git intro hands on windows with msysgitGit intro hands on windows with msysgit
Git intro hands on windows with msysgit
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
 
The Secrets of The FullStack Ninja - Part A - Session I
The Secrets of The FullStack Ninja - Part A - Session IThe Secrets of The FullStack Ninja - Part A - Session I
The Secrets of The FullStack Ninja - Part A - Session I
 
Hello Git
Hello GitHello Git
Hello Git
 
Git training
Git trainingGit training
Git training
 
Docker at Digital Ocean
Docker at Digital OceanDocker at Digital Ocean
Docker at Digital Ocean
 
Introduction to Git for Artists
Introduction to Git for ArtistsIntroduction to Git for Artists
Introduction to Git for Artists
 
Git hooks
Git hooksGit hooks
Git hooks
 
Git and Github.pptx
Git and Github.pptxGit and Github.pptx
Git and Github.pptx
 

Último

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Último (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Gitlab installation

  • 1. GitLab Installation with Git & Gitolite on CentOS – 6.3 Raiful Hasan DIVINE IT LIMITED
  • 2. GitLab Installation on CentOS – 6.3 Preperation: The main problem with installing GitLab on CentOS is that - other than Ubuntu or Fedora - it doesn't have the ICU(lib) installed and that's why ruby crashes/doesn't run around. We will work as root most of the time, so make sure you have the permissions to do so First of all we need to add the epel repo to yum to get all the packages we want. 1: rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm Then we install all required packages: 1: yum -y groupinstall 'Development Tools' 'Additional Development' 2: yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-devel expat-devel db4-devel byacc gitolite sqlite-devel gcc-c++ libyaml libyaml-devel libffi libffi-devel libxml2 libxml2- devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui python-devel redis Up next: Downloading and extracting ruby: 1: curl -O http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz 2: tar xzvf ruby-1.9.3-p0.tar.gz 3: cd ruby-1.9.3-p0 1) Configure without binary suffix 1: ./configure --enable-shared --disable-pthread Now install ruby: 1: make && make install DIVINE IT LIMITED Page 2
  • 3. GitLab Installation on CentOS – 6.3 Some may need to install qt-devel qtwebkit-devel by running (Replace the 64 in the path with 32 if you're running on a 32 bit box) 1: yum install qt-devel qtwebkit-devel 2: export PATH=$PATH:/usr/lib64/qt4/bin Now we have to install all the gems GitLab needs to run: 1: gem update --system 2: gem update 3: gem install rails Now everything is set up and we can start to configure the environment for GitLab. First we create a user, that will run GitLab: 1: adduser --shell /bin/bash --create-home --home-dir /home/gitlab gitlab Because this user will be the Admin of the repos on the server, we need to have a RSA key pair to authenticate: 1: su gitlab 2: ssh-keygen -t rsa # as gitlab user Now switch back to root account. Because GitLab is only a graphical user interface to manage repos, we need a powerfull backend. gitolite will do this for us. We also need a user for gitolite. 1: adduser --system --shell /bin/sh --comment 'gitolite' --create-home --home-dir /home/git git Gitolite needs to know one key, that it knows as admin. We will pass the key of GitLab to gitolite. To do so we first copy the private key of our gitlab user to the home directory of our gitolite user: 1: # make sure you do this as root 2: cp /home/gitlab/.ssh/id_rsa.pub /home/git/gitlab.pub DIVINE IT LIMITED Page 3
  • 4. GitLab Installation on CentOS – 6.3 Now we need to initialize gitolite: 1: su git 2: gl-setup ~/gitlab.pub # this passes the admin key to gitolite When the prompt appears edit the provided file (it's in a vi-Editor) and set $REPO_UMASK to 0007 Switch back to root user now. We now need to give our management software (GitLab) access to the repos: 1: usermod -a -G git gitlab 2: chmod -R g+rwX /home/git/repositories/ 3: chmod 770 /home/git Because the gitlab user will need a password later on, we configure it right now, so we are finished with all the user stuff. 1: passwd gitlab # please choose a good password :) As next step we need to introduce GitLab to gitolite (that is, we let them change their SSH-keys) 1: su gitlab 2: ssh git@localhost and back to the root user, so we don't need to care about permissions. GitLab needs a few gems, we haven't installed yet: 1: curl http://python-distribute.org/distribute_setup.py | python 2: easy_install pip 3: pip install pygments 4: gem install bundler As mentioned before, the gitlab user will have to do a bit of administration stuff, so we need to DIVINE IT LIMITED Page 4
  • 5. GitLab Installation on CentOS – 6.3 give him sudo rights. To do so, we edit the sudoers file with visudo: 1: visudo Add gitlab ALL=(ALL) ALL after root ALL=(ALL) ALL so it looks like this: 1: ... 2: root ALL=(ALL) ALL 3: gitlab ALL=(ALL) ALL 4: ... Do not edit anything else!!! After another two gems we are finished with the gem stuff: 1: gem install ruby-debug19 2: gem install charlock_holmes We now switch to our gitlab user and we won't use our root account anymore: 1: su gitlab Get the GitLab software: 1: cd && git clone git://github.com/gitlabhq/gitlabhq.git 2: cd gitlabhq We're nearly done. Next we bundle our application. 1: bundle install GitLab will use a MySQL database (in our case), which we need to install and start: 1: yum -y install mysql-server 2: /etc/init.d/mysqld start DIVINE IT LIMITED Page 5
  • 6. GitLab Installation on CentOS – 6.3 To configure the MySQL server easily we use: 1: mysql_secure_installation Remember the password type in for root! We now connect to our database server to create a user for GitLab: 1: mysql -u root -p # when prompted enter the root password we've chosen in mysql_secure_installation We now have a mysql shell. Mind the trailing ; ! 1: mysql> CREATE DATABASE gitlab CHARACTER SET UTF8; 2: mysql> GRANT ALL PRIVILEGES ON gitlab.* TO 'gitlabusr'@'localhost' IDENTIFIED BY 'supersecret' WITH GRANT OPTION; 3: mysql> quit Remember the password and username (here: gitlabusr and supersecret)! To create the database a script is deployed with GitLab. However it needs an additional service to run: 1: sudo nohup redis-server > /dev/null Enter the password created for the gitlab user and hit CTRL+Z. Then type 1: bg The service is now running in background. DIVINE IT LIMITED Page 6
  • 7. GitLab Installation on CentOS – 6.3 We now configure GitLab by copying the configurion files from example to real: 1: cp ~/gitlabhq/config/database.yml.example ~/gitlabhq/config/database.yml 2: cp ~/gitlabhq/config/gitlab.yml.example ~/gitlabhq/config/gitlab.yml In database.yml we have to edit the production settings of database (at the very top of the file). We have to change the database-name, username and password. We will now create the database structure: 1: RAILS_ENV=production rake db:setup 2: RAILS_ENV=production rake db:seed_fu To start the server we use 1: bundle exec rails s -e production That's it. We're done. All have to do now, is set up firewall and navigate to http://ip-or- domain:3000/ and log in with user: admin@local.host pass: 5iveL!fe DIVINE IT LIMITED Page 7