Gitlab in te stellen voor Continue Integratie en Implementatie op CentOS

In deze tutorial leg ik uit hoe je een lokale Gitlab Server opzet voor CI (Continuos Integration) / CD (Continous Deployment) werking. Voor iedereen die het nog niet weet, GitLab is een compleet DevOps platform geleverd als een enkele applicatie. Van projectplanning en broncodebeheer via CI/CD tot monitoring en beveiliging. Het laat teams samenwerken en werken in één gesprek in plaats van meerdere threads te beheren over meerdere tools. Door een enkele gegevensopslagplaats, gebruikersinterface en autorisatiemodel te bieden gedurende de hele DevOps-levenscyclus, kunnen teams aanzienlijk samenwerken, de cyclustijd verkorten en zich uitsluitend richten op het snel bouwen van elke applicatie.

Naarmate elke bedrijfsaanpak groter en uitgebreider wordt, moeten alle producten meer uitmuntende eigenschappen hebben dan hun concurrenten. Om dit te bereiken moeten meerdere modules worden geïntroduceerd en ontwikkeld zodra ze klaar zijn, moeten ze snel op de markt worden gebracht en volledig worden getest en geverifieerd. Op deze manier zou het echt helpen om de mijlpaal te bereiken als Gitlab de enige applicatiebron zou zijn die het proces van overgang naar de DevOps-praktijk kan vergemakkelijken.

1. Hoe werkt Continue Integratie en Continue Implementatie

Er is een logische opeenvolging van mogelijke acties te nemen gedurende de levenscyclus van het softwareontwikkelingsproces, met GitLab als platform voor je code. Het doel is om de teams coherent en effectief te ondersteunen vanaf de eerste fase van de implementatie van een nieuw product tot de laatste fase van de implementatie in productie. De afbeelding hieronder toont een samenvatting van de workflow:

Voortdurende Integratie (CI)

Omdat het bereik van DevOps nogal groot is, richt deze tutorial zich op het opzetten van de Gitlab server onder lokale omstandigheden. We zullen de Gitlab Community Edition gebruiken om in te stellen in onze lokale omgeving.

2. Installatie fase

Voor de installatiefase beginnen we eerst met het instellen van de server met prerequisites, ervan uitgaande dat elke server onder minimale serverconfiguratie staat. Hieronder staan de stappen:

 [[email protected] ~]# cat /etc/resolv.conf 
 [[email protected] ~]# yum updateinstall -y curl policycoreutils-python openssh-server 

Het doen van bovenstaande is optioneel, alleen om ervoor te zorgen dat onze installatie en beoordeling soepel verlopen. Als de installatie klaar is, krijg je het onderstaande screenshot.

Start dan de postfix service zoals vereist. Hieronder staan de commando’s.

 [[email protected] ~]# systemctl start postfix 
 [[email protected] ~]# systemctl status postfix 
 [[email protected] ~]# systemctl enable postfix 

Als dat gedaan is, zie je het onderstaande schermbeeld.

Vervolgens moeten we wget installeren om het door GitLab zelf geleverde automatiseringsscript voor de installatie over te nemen. Je kunt ook andere manieren gebruiken om de installatie uit te voeren, zoals Curl etc., maar voor deze oefening gebruik ik wget om het script te downloaden. Zodra wget pakketten geïnstalleerd zijn, downloaden we het script van hier en zetten het op onze lokale server. Hieronder staan de stappen:

 [[email protected] ~]# yum install -y wget 
 [[email protected] ~]# wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh 
 [[email protected] ~]# chmod +x script.rpm.sh 
 [[email protected] ~]# ./script.rpm.sh 

Het proces zal zijn zoals hieronder:

Vervolgens gaan we GitLab service voorbereiden en zijn afhankelijkheden configureren. De stappen zijn zoals hieronder:

 [[email protected] ~]# EXTERNAL_URL="http://10.124.12.133:80" 
 [[email protected] ~]# echo $EXTERNAL_URL 
 http://10.124.12.133 
 [[email protected] ~]# yum install -y gitlab-ce 

Als alles klaar is, zie je de voortgang zoals hieronder weergegeven

Geweldig! Nu alles onder controle is, gaan we verder met de installatie van de dienst en zijn afhankelijkheden. Omdat GitLab een solide applicatie was voor DevOps om samen te bouwen, zullen er verschillende pakketten en configuraties geconfigureerd worden. Daarom is het normaal dat het langer duurt dan een normale service-installatie. Laten we, voordat de installatie begint, bevestigen dat de hoofd URL is geconfigureerd zoals verwacht. Hieronder staan de stappen :-

 [[email protected] ~]# cat /etc/gitlab/gitlab.rb 
 external_url='http://10.124.12.133'

[[email protected] ~]# gitlab-ctl reconfigure

Als de voortgang soepel verloopt, krijg je de onderstaande schermafbeelding.

Nu alles klaar is met de installatie, laten we de laatste hand leggen aan het inschakelen van de poort voor Gitlab. Hieronder staan de stappen :-

 [[email protected] ~]# firewall-cmd --permanent --add-service ssh 
 [[email protected] ~]# firewall-cmd --permanent --add-service http 
 [[email protected] ~]# firewall-cmd --reload 
 [[email protected] ~]# iptables -L -n 

Hieronder de schermafbeelding

Nu we klaar zijn met de installatie van GitLab, kunnen we inloggen op onze eigen GitLab server en het project naar wens configureren. Als eindresultaat kun je je GitLab service bekijken via de browser via de URL die we eerder geconfigureerd hebben, in ons geval is dat http://10.124.12.133 . Het zal je automatisch doorverwijzen naar de hoofdpagina, en dan je initiële beheerderswachtwoord instellen zoals nodig. In dit geval is de standaard admin gebruiker root. Hieronder staan de voorbeelden :-

3. Testfase

Nu alles klaar is, gaan we als gebruiker werken in een team dat een project definieert dat GitLab gebruikt als projectontwikkelingsrepository. Laten we eerst een nieuw project maken, klik op Project maken en definieer de details zoals nodig. Voorbeeld zoals hieronder :-

Als je klaar bent, word je doorgestuurd naar de hoofdpagina van het project zoals hieronder beschreven

Als project zullen er nu verschillende gebruikers bijdragen aan dit archief. Laten we, om het scenario na te bootsen, een gebruiker aanmaken die later zal bijdragen aan dit project. Ga terug naar de hoofdpagina en klik op Mensen toevoegen. Je komt dan terecht op de aanmaakpagina zoals hieronder. Maak een gebruiker aan en vul deze naar behoefte in.

Ga nu terug naar de hoofdpagina van je project, ga naar instellingen en klik op leden. Hieronder staan de voorbeelden :-

Je komt dan op de Projectledenpagina, met de nieuwe gebruiker die je hebt aangemaakt en de rollen die je aan de gebruiker wilt geven zoals in onderstaand voorbeeld. Voor elke definitie van de rollen en privileges kun je klikken op Lees meer voor meer details.

Als je klaar bent, zie je de lijst met toegekende teamleden zoals in onderstaand voorbeeld :-

Laten we nu de project workflow bijdrage testen door toegang te krijgen vanaf een andere server en in te loggen als de nieuwe gebruiker die we hebben aangemaakt en een nieuw bestand te maken dat in het project moet worden gecommit. Laten we eerst de URL van het te klonen project van een andere server of werkstation nemen. Je kunt de project URL link uit onderstaand voorbeeld overnemen :-

Als alles voorbereid is, laten we inloggen op een testwerkstation en het project klonen zodat het toegankelijk is voor andere gebruikers. Hieronder staan de stappen :-

 [[email protected] ~]# yum install -y git 
 [[email protected] ~]# git clone http://10.124.12.133/root/my-first-project.git 

Je moet de gebruiker toegang geven om het project te klonen, gebruik de nieuwe gebruiker die zojuist is aangemaakt zoals in het voorbeeld hieronder :-

Als dat gebeurd is, wordt er een nieuwe map met de projectnaam aangemaakt onder je werkstation. Ga nu naar de map en maak een leeg bestand aan. Dit is alleen om te testen of het project kan worden bijgedragen door alle teamleden vanaf elk werkstation en de projectopslagplaats zal altijd synchroon worden bijgewerkt. Hieronder staan de stappen :-

 [[email protected] ~]# cd ls 
 anaconda-ks.cfg my-first-project 
 [[email protected] ~]# cd my-first-project/ 
 [[email protected] my-first-project]# ls 
 README.md 
 [[email protected] my-first-project]# touch myfile.txt 

Als alles klaar is, laten we dan onze wijzigingen vastleggen om ze te synchroniseren met het hoofdrepository van het project. Dit zijn de stappen :-

 [[email protected] my-first-project]# git add myfile.txt 
 [[email protected] my-first-project]# git commit -m "added new file" 
 [[email protected] my-first-project]# git push -u origin master 

Zodra bovenstaand commando is uitgevoerd, zal het proces als onderstaand voorbeeld verschijnen :-

Geweldig! Nu alles klaar is, gaan we terug naar de browser en verversen de pagina. Je zult zien dat het nieuwe bestand gecommit door gebruiker shahril wordt getoond op de hoofdpagina van het project