<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>gitlab &#8211; matthias.guru</title>
	<atom:link href="https://matthias.guru/tag/gitlab/feed/" rel="self" type="application/rss+xml" />
	<link>https://matthias.guru</link>
	<description>Tipps und Tricks rund um Serveradministration, Werbeeinnahmen und allem was mit meiner IT Selbstständigkeit zu tun hat</description>
	<lastBuildDate>Thu, 20 Oct 2016 10:00:17 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.3</generator>
	<item>
		<title>Gitlab Backup auf externen Storage / gemountetes CIFS Verzeichnis</title>
		<link>https://matthias.guru/2016/10/20/gitlab-backup-auf-externen-storage-gemountetes-cifs-verzeichnis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gitlab-backup-auf-externen-storage-gemountetes-cifs-verzeichnis</link>
					<comments>https://matthias.guru/2016/10/20/gitlab-backup-auf-externen-storage-gemountetes-cifs-verzeichnis/#respond</comments>
		
		<dc:creator><![CDATA[Matthias]]></dc:creator>
		<pubDate>Thu, 20 Oct 2016 10:00:17 +0000</pubDate>
				<category><![CDATA[Gitlab]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[cifs]]></category>
		<category><![CDATA[gitlab]]></category>
		<guid isPermaLink="false">https://hilfreiche-server.tips/?p=49</guid>

					<description><![CDATA[Es gibt für einen Entwickler wohl nichts wichtigeres als seinen Quellcode. Dementsprechend sollte man sich auch um Backups seiner Versionierungssoftware kümmern. In meinem Fall ist das Gitlab. Gitlab bietet von sich aus bereits einen Backupfunktion <a class="mh-excerpt-more" href="https://matthias.guru/2016/10/20/gitlab-backup-auf-externen-storage-gemountetes-cifs-verzeichnis/" title="Gitlab Backup auf externen Storage / gemountetes CIFS Verzeichnis">[...]</a>]]></description>
										<content:encoded><![CDATA[<p>Es gibt für einen Entwickler wohl nichts wichtigeres als seinen Quellcode. Dementsprechend sollte man sich auch um Backups seiner Versionierungssoftware kümmern. In meinem Fall ist das Gitlab.</p>
<p>Gitlab bietet von sich aus bereits einen Backupfunktion die manuell oder auch per Cronjob angestoßen werden kann, auch wird diese Funktion bei einem Versionsupgrade automatisch ausgeführt.</p>
<p>Ohne weitere Konfiguration wird jedoch nur ein lokales Backup erzeugt. Testen kann man das mit</p>
<blockquote><p>sudo gitlab-rake gitlab:backup:create</p></blockquote>
<p> oder für Installationen von Source mit </p>
<blockquote><p>sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production</p></blockquote>
<p>![Gitlab backup skipped](storage/gitlab_backup_skipped.PNG)</p>
<p>Nun wollen wir uns darum kümmern das dieser Job das erstellte Backup zusätzlich auf einen  externen Server lädt. Konkret werde ich das Backup per CIFS Mount auf meinen Storage Server schieben, Gitlab unterstützt jedoch zahlreiche weitere Storageprovider wie Amazon S3 Bucket, Dropbox, etc.</p>
<p>Eine CIFS Freigabe zu mounten geht recht leicht:</p>
<blockquote><p>mount -t cifs //&#8212;&#8211;.your-storagebox.de/backup /mnt/bx10 -o user=&#8212;,password=&#8212;-,noperm</p></blockquote>
<p> Wichtig ist neben der korrekten Adresse, den richtigen Benutzername und Passwort auch die Option *noperm*. </p>
<p>Da ich eine Omnibus Installation von Gitlab habe muss ich nun in der Datei /etc/gitlab/gitlab.rb folgendes Eintragen:</p>
<blockquote><p> gitlab_rails[&#8218;backup_upload_connection&#8216;] = {<br />
   &#8218;provider&#8216; => &#8218;Local&#8216;,<br />
   &#8218;local_root&#8216; => &#8218;/mnt/bx10&#8216;<br />
 }<br />
 gitlab_rails[&#8218;backup_upload_remote_directory&#8216;] = &#8218;gitlab&#8216;</p></blockquote>
<p> Das sind alle nötigen Einstellungen damit Gitlab zukünftig jedes Backup auch auf der Cifs Freigabe speichert.</p>
<p>Nun sollte das ganze so aussehen:<br />
![Gitlab backup](storage/gitlab_backup.PNG)</p>
<p>Als letztes erstellen wir noch einen Cronjob der unseren Quellcode täglich um 3 Uhr frühs sichert:</p>
<blockquote><p><code>0 3 * * * sudo gitlab-rake gitlab:backup:create</code></p></blockquote>
<p>*WICHTIG!*<br />
Dies sichert nur die Gitlab Application Files, also euere Repositories, die Datenbank etc. Die Gitlab Konfiguration wird absichtlich nicht gesichert da dort Keys abgelegt sind die aus Sicherheitsgründen nicht zusammen mit den Repositories gespeichert werden sollten.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://matthias.guru/2016/10/20/gitlab-backup-auf-externen-storage-gemountetes-cifs-verzeichnis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gitlab mit Lets Encrypt SSL Zertifikat absichern</title>
		<link>https://matthias.guru/2016/10/20/gitlab-mit-lets-encrypt-ssl-zertifikat-absichern/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gitlab-mit-lets-encrypt-ssl-zertifikat-absichern</link>
					<comments>https://matthias.guru/2016/10/20/gitlab-mit-lets-encrypt-ssl-zertifikat-absichern/#comments</comments>
		
		<dc:creator><![CDATA[Matthias]]></dc:creator>
		<pubDate>Thu, 20 Oct 2016 09:50:51 +0000</pubDate>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[Gitlab]]></category>
		<category><![CDATA[Lets Encrypt]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[gitlab]]></category>
		<category><![CDATA[omnibus]]></category>
		<guid isPermaLink="false">https://hilfreiche-server.tips/?p=30</guid>

					<description><![CDATA[Gitlab kann man mit wenig Aufwand auf dem eigenen Server nutzen. Ich habe das bei mir so gemacht da das gehostete Gitlab manchmal sehr langsam sein kann und weil ich mich wohler fühle wenn ich <a class="mh-excerpt-more" href="https://matthias.guru/2016/10/20/gitlab-mit-lets-encrypt-ssl-zertifikat-absichern/" title="Gitlab mit Lets Encrypt SSL Zertifikat absichern">[...]</a>]]></description>
										<content:encoded><![CDATA[<p>Gitlab kann man mit wenig Aufwand auf dem eigenen Server nutzen. Ich habe das bei mir so gemacht da das gehostete Gitlab manchmal sehr langsam sein kann und weil ich mich wohler fühle wenn ich meinen Quellcode auf einem eigenen Server liegen haben. Jedoch hat das selbstinstallierte Gitlab nach der Installation standardmäßig keine SSL Verschlüsselung, diese kannmit einem kostenlosen Lets Encrypt Zertifikat aber leicht nachgerüstet werden.</p>
<p>Wer es noch nicht getan hat, kann über <a href="https://about.gitlab.com/downloads/">diese Seite</a> Gitlab installieren. Vorraussetzung für die weiteren Schritte ist dass Gitlab isntalliert wurde und über Port 80 erreichbar ist.</p>
<p>Als nächstes installieren wir git, da wir das benötigen um den Lets Encrypt Client zu nutzen</p>
<pre>cd /root  
git clone https://github.com/letsencrypt/letsencrypt</pre>
<p>Bevor wir das Zertifikat beantragen können, wird noch eine Lets Encrypt Konfiguration erstellt in der wir alle wichtigen Daten definieren.</p>
<pre>mkdir letsencrypt-config  
vi letsencrypt-config/gitlab.ini</pre>
<p>Der Inhalt der Datei:</p>
<pre># Lets Encrypt Config für gitlab

# wir wollen den webroot Authenticator nutzen. 
authenticator = webroot
webroot-path = /var/www/letsencrypt

# die Domain unter der Gitlab aufrufbar ist
domains = gitlab.yourdomain.de

# die eigene Mailadresse mit der das Zertifikat beantragt wird
email = your@email.de

# wir wollen einen 4096 bit RSA key anstatt eines 2048 keys
rsa-key-size = 4096</pre>
<p>Nun müssen wir noch das Verzeichnis anlegen dass für die webroot Authentifizierung verwendet wird</p>
<pre>mkdir -p /var/www/letsencrypt</pre>
<p>Als nächstes passen wir die gitlab Konfiguration an, damit diese unsere neuen Zertifikate nutzt. Dazu öffnen wir die Datei **/etc/gitlab/gitlab.rb** und ändern folgende Werte. Dabei muss auch darauf geachtet werden dass die entsprechenden Zeilen nicht auskommentiert sind.</p>
<pre>nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate']= "/etc/letsencrypt/live/gitlab.yourdomain.de/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.yourdomain.de/privkey.pem"</pre>
<p>Folgende Zeile muss neu eingefügt werden</p>
<pre>nginx['custom_gitlab_server_config']="location ^~ /.well-known {\n alias /var/www/letsencrypt/.well-known;\n}\n"</pre>
<p>Damit die SSL Beantragung funktioniert muss Gitlab nun erstmal rekonfiguriert werden.</p>
<pre>gitlab-ctl reconfigure</pre>
<p>Als nächstes nutzen wir die vorhin angelegte Lets Encrypt Konfiguration um das SSL Zertfikat zu erstellen</p>
<pre>/root/letsencrypt/letsencrypt-auto certonly -c /root/letsencrypt-config/gitlab.ini</pre>
<p>Beim ersten Aufruf werden vor der eigentlichen SSL Beantragung noch evtl. fehlende Abhänigkeiten installiert.</p>
<p>Nun können wir wieder die gitlab Konfiguration unter /etc/gitlab/gitlab.rb öffnen und die URL auf https ändern.</p>
<pre>external_url 'https://gitlab.yourdomain.de'</pre>
<p>Das war es auch schon. Gitlab muss abschließen noch rekonfiguriert werden:</p>
<pre>gitlab-ctl reconfigure</pre>
<p>Ab nun ist die Gitlab Installation unter https erreichbar.</p>
<p>Lets Encrypt Zertifikate sind immer nur 90 Tage gültig. Damit das Zertifikat jeden Monat automatisch erneuert wird, richten wir einen Cronjob ein der sich darum kümmert:</p>
<pre>0 0 1 * * /root/.local/share/letsencrypt/bin/letsencrypt certonly -c /root/letsencrypt-config/gitlab.ini --renew-by-default
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://matthias.guru/2016/10/20/gitlab-mit-lets-encrypt-ssl-zertifikat-absichern/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
