<?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>Ticketsystem Archive - Entwicklungshilfe NRW</title>
	<atom:link href="https://entwicklungshilfe.nrw/blog/tag/ticketsystem/feed/" rel="self" type="application/rss+xml" />
	<link>https://entwicklungshilfe.nrw/blog/tag/ticketsystem/</link>
	<description>PHP-Schulungen für effektive Webentwicklung, praxisorientierte Workshops und Seminare für besseres Webdevelopment</description>
	<lastBuildDate>Mon, 23 Sep 2019 18:10:01 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://entwicklungshilfe.nrw/wp-content/uploads/2026/02/cropped-favicon-32x32.png</url>
	<title>Ticketsystem Archive - Entwicklungshilfe NRW</title>
	<link>https://entwicklungshilfe.nrw/blog/tag/ticketsystem/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ticketsystem mit Versionskontrolle</title>
		<link>https://entwicklungshilfe.nrw/blog/2015/12/29/ticketsystem-mit-versionskontrolle/</link>
					<comments>https://entwicklungshilfe.nrw/blog/2015/12/29/ticketsystem-mit-versionskontrolle/#respond</comments>
		
		<dc:creator><![CDATA[Andreas Mautz]]></dc:creator>
		<pubDate>Tue, 29 Dec 2015 12:22:16 +0000</pubDate>
				<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Infrastruktur]]></category>
		<category><![CDATA[Ticketsystem]]></category>
		<category><![CDATA[Versionskontrolle]]></category>
		<guid isPermaLink="false">http://www.entwicklungshilfe.nrw/blog/?p=79</guid>

					<description><![CDATA[<p>Ein Ticketsystem mit Versionskontrolle ist eine geeignete Grundlage für Freelancer und kleine Agenturen, um Softwareentwicklungsprojekte zu managen. Zudem hilft eine Versionskontrolle wie git dabei, Änderungen am Code zu deployen. Redmine 3 mit Gitolite 3 installieren Eine gelungene, kostenfreie Kombination für ein Ticketsystem mit Versionskontrolle bieten Redmine als Ticketsystem und git als Versionskontrolle. Gitolite dient dabei als Mittler, um Nutzer des [&#8230;]</p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2015/12/29/ticketsystem-mit-versionskontrolle/">Ticketsystem mit Versionskontrolle</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ein Ticketsystem mit Versionskontrolle ist eine geeignete Grundlage für Freelancer und kleine Agenturen, um Softwareentwicklungsprojekte zu managen. Zudem hilft eine Versionskontrolle wie git dabei, Änderungen am Code zu deployen.</p>
<p><a href="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/23750809531_24c0a4b8e6_o-e1451303431955.jpg" rel="attachment wp-att-107"><img fetchpriority="high" decoding="async" class="wp-caption alignleft wp-image-107 size-medium" src="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/23750809531_24c0a4b8e6_o-e1451303431955-300x197.jpg" alt="Ticketsystem mit Versionskontrolle" width="300" height="197" srcset="https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/23750809531_24c0a4b8e6_o-e1451303431955-300x197.jpg 300w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/23750809531_24c0a4b8e6_o-e1451303431955-768x504.jpg 768w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/23750809531_24c0a4b8e6_o-e1451303431955-1024x672.jpg 1024w, https://entwicklungshilfe.nrw/wp-content/uploads/2015/12/23750809531_24c0a4b8e6_o-e1451303431955-214x140.jpg 214w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<h2>Redmine 3 mit Gitolite 3 installieren</h2>
<p>Eine gelungene, kostenfreie Kombination für ein Ticketsystem mit Versionskontrolle bieten <a href="http://www.redmine.org/" target="_blank" rel="noopener noreferrer">Redmine</a> als Ticketsystem und <a href="https://git-scm.com/" target="_blank" rel="noopener noreferrer">git</a> als Versionskontrolle. <a href="https://github.com/sitaramc/gitolite" target="_blank" rel="noopener noreferrer">Gitolite</a> dient dabei als Mittler, um Nutzer des Ticketsystems gegenüber dem eigenen Git-Server zu authentifizieren und so die Versionskontrolle über das Ticketsystem steuerbar zu machen. Mehr dazu gibt es im neuen Jahr in einem eigenen Blog-Beitrag, den ich dann hier verlinke.</p>
<h2>Voraussetzungen für die neue Infrastruktur</h2>
<p>Dieser Artikel ist eine Anleitung, wie man auf einem eigenen, dafür geeigneten Server diese Kombination aufsetzt.<br />
Ausgegangen wird hier von <a href="https://www.debian.org/" target="_blank" rel="noopener noreferrer">Debian</a> als Betriebssystem, und der eingeloggte User ist root. Es wird vorausgesetzt, dass man Pakete installieren und einen einfachen Editor wie vim oder nano benutzen kann.</p>
<p>Zunächst installiert man die grundlegenden Softwarepakete, die benötigt werden:</p>
<pre class="lang:default decode:true" title="benötigte Pakete für das Ticketsystem mit Versionskontrolle">apt-get install rubygems gitolite3 build-essential libssh2-1 libssh2-1-dev cmake libgpg-error-dev mysql apoache2
</pre>
<p>Anschließend werden dem System zwei User für git (&#8222;git&#8220;) und Redmine (&#8222;redmine&#8220;) hinzugefügt:</p>
<pre class="lang:default decode:true " title="User anlegen">adduser --system --shell /bin/bash --gecos 'Git Administrator' --group --disabled-password --home /opt/gitolite git
adduser --system --shell /bin/bash --gecos 'Redmine Administrator' --group --disabled-password --home /opt/redmine redmine
</pre>
<p>Da das Ticketsystem später die Kontrolle über die Versionskontrolle ausüben soll, legen wir einen SSH-Key für den User <em>redmine</em> an:</p>
<pre class="lang:default decode:true " title="redmine ssh-key">su redmine
ssh-keygen -t rsa -N '' -f ~/.ssh/redmine_gitolite_admin_id_rsa
exit
</pre>
<h2>Versionskontrolle kontrollieren</h2>
<p>Nun kann Gitolite mit</p>
<pre>dpkg-reconfigure gitolite3</pre>
<p>neu konfiguriert werden, da die Konfiguration bei Installation ein paar Settings anders setzt, als wir es gerne hätten. Die Parameter zur Konfiguration sind:<br />
user: git<br />
repos path: /opt/gitolite<br />
admin ssh-key: /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa.pub</p>
<p>Redmine und Gitolite benötigen teilweise sudo-Rechte für den jeweilig anderen User, Redmine für die Installation temporär sogar darüber hinaus. Dazu konfigurieren wir unseren Server für das Ticketsystem mit Versionskontrolle mit</p>
<pre class="lang:default decode:true">visudo</pre>
<p>Folgendes wird zusätzlich eingetragen:</p>
<p># temp &#8211; *REMOVE* after installation<br />
redmine ALL=(ALL) NOPASSWD:ALL</p>
<p># redmine gitolite integration<br />
redmine ALL=(git) NOPASSWD:ALL<br />
git ALL=(redmine) NOPASSWD:ALL</p>
<h2>Installation des Ticketsystems Redmine</h2>
<p>Jetzt wird Redmine installiert. Dazu loggen wir uns als User <em>redmine</em> ein und wechseln in sein Home-Verzeichnis.</p>
<pre class="lang:default decode:true">sudo su - redmine
cd ~
</pre>
<p>Wir befinden uns jetzt in /opt/redmine, wo wir den aktuellen Code über github ziehen.</p>
<pre class="lang:default decode:true">git init
git remote add origin https://github.com/redmine/redmine.git
git fetch -p
</pre>
<p>Da wir uns im Home-Verzeichnis befinden, schließen wir noch ein paar Verzeichnisse und Dateien aus:</p>
<pre>vim .gitignore</pre>
<p>Auszuschließende Items sind zum Beispiel:<br />
.ssh/<br />
.bash_history</p>
<p>Als nächstes checken wir die aktuelle stabile Version aus.</p>
<pre class="lang:default decode:true">git add .gitignore
git commit -m 'local gitignore'
git checkout 3.1-stable
</pre>
<p>An dieser Stelle kann man jetzt noch die Quelle vom Original zu einer eigenen Quelle verschieben.</p>
<pre class="lang:default decode:true">git remote rm origin
git remote add origin __URL__
</pre>
<p>Wir benutzen Redmine mit einer MySQL-Datenbank. Sollte noch kein MySQL-Server installiert sein, bitte nachholen. Ansonsten mit</p>
<pre class="lang:default decode:true">mysql -u root -p -v -e "CREATE DATABASE redmine CHARACTER SET utf8; CREATE USER '__USER__'@'localhost' IDENTIFIED BY '__PASSWORD__'; GRANT ALL PRIVILEGES ON redmine.* TO '__USER__'@'localhost';"
</pre>
<p>__*__ bitte mit geeigneten Werten ersetzen.</p>
<p>Das oben erstellte Login verwenden wir nun zur Konfiguration von Redmine. Wir kopieren die Config-Templates und editieren diese:</p>
<pre class="lang:default decode:true">cd /opt/redmine/config
cp database.yml.example database.yml
cp configuration.yml.example configuration.yml
</pre>
<pre class="lang:default decode:true">vim database.yml
vim configuration.yml
</pre>
<p>Erweiterte Erläuterungen zur Konfiguration gibt es <a href="http://www.redmine.org/projects/redmine/wiki/RedmineInstall#Step-3-Database-connection-configuration" target="_blank" rel="noopener noreferrer">hier für die Datenbank</a> und <a href="http://www.redmine.org/projects/redmine/wiki/RedmineInstall#Configuration" target="_blank" rel="noopener noreferrer">hier für Generelles</a>.</p>
<p>Danach wechseln wir zurück ins Home-Verzeichnis und beginnen mit der Installation. Zur eigentlichen Installation von Redmine müssen wir im Gemfile noch eine Anpassung vornehmen.</p>
<pre class="lang:default decode:true">cd ~
sudo gem install bundler
nano Gemfile
</pre>
<p>Hier ändern wir die mysql2-Version auf 4.2.0, wenn man Percona als MySQL-Server in der Version 5.6 benutzen möchte.</p>
<p>Jetzt wird endlich installiert:</p>
<pre>bundle install --without development test postgresql sqlite
rake generate_secret_token
RAILS_ENV=production rake db:migrate
</pre>
<h2>Plugins für das Ticketsystem</h2>
<p>Nachdem Redmine grundlegend installiert wurde, kümmern wir uns jetzt um die Plugins:</p>
<pre class="lang:default decode:true">cd ~/plugins
git clone https://github.com/jbox-web/redmine_bootstrap_kit.git
git clone https://github.com/jbox-web/redmine_git_hosting.git
cd redmine_bootstrap_kit/
git checkout 0.2.4
cd ../redmine_git_hosting/
git checkout 1.2.0
cd ~
bundle install --without development test
bundle exec rake redmine:plugins:migrate RAILS_ENV=production NAME=redmine_git_hosting
</pre>
<p>Der eingangs erstellte SSH-Key wird jetzt in das Plugin verlinkt:</p>
<pre class="lang:default decode:true">ln -s /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa /opt/redmine/plugins/redmine_git_hosting/ssh_keys/redmine_gitolite_admin_id_rsa
ln -s /opt/redmine/.ssh/redmine_gitolite_admin_id_rsa.pub /opt/redmine/plugins/redmine_git_hosting/ssh_keys/redmine_gitolite_admin_id_rsa.pub
</pre>
<h2>Das Ticketsystem mit Versionskontrolle überprüfen</h2>
<p>Wir wechseln jetzt auf die Seite des Users <em>git</em> und überprüfen Gitolite.</p>
<pre class="lang:default decode:true">sudo su - git
sed -i 's/$GL_GITCONFIG_KEYS = ""/$GL_GITCONFIG_KEYS = ".*"/g' /opt/gitolite/.gitolite.rc
exit
ssh -i .ssh/redmine_gitolite_admin_id_rsa git@localhost info
</pre>
<p>Dabei sollte eine Antwort ähnlich wie diese hier kommen:<br />
hello admin, this is git@__SERVER__ running gitolite3 3.6.1-2 (Debian) on git 2.1.4</p>
<p>R W gitolite-admin<br />
R W testing</p>
<p>Als letztes wird nun Redmine mittels des Passenger-Moduls zum Laufen gebracht. Es wird vorausgesetzt, dass ein entsprechender vhost-Eintrag existiert, der auf /opt/redmine/public verweist. Das Passenger-Modul installiert man mit</p>
<pre>passenger-install-apache2-module</pre>
<p>und trägt danach die in der Installation erzeugten Pfade in die apache-Konfiguration ein.</p>
<p><em>Bei mir hat diese Anleitung zum Aufsetzen eines Ticketsystems mit Versionskontrolle bisher immer sehr gut funktioniert. Wenn ihr Probleme habt, schreibt bitte in die Kommentare, damit diese Anleitung ständig verbessert werden kann. Gleichzeitig können wir durch den regen Ausstausch mit euch aber auch die Qualität unserer <a href="http://www.entwicklungshilfe.nrw/seminare/oh-my-zsh-mit-agnoster-theme/">PHP-Schulungen für Webentwickler</a> noch weiter erhöhen.</em></p>
<p><strong>Quellen und weiterführende Links:</strong><br />
<a href="https://github.com/redmine/redmine" target="_blank" rel="noopener noreferrer">Redmine</a><br />
<a href="http://gitolite.com/gitolite/install.html" target="_blank" rel="noopener noreferrer">Gitolite</a><br />
<a href="https://nsaunders.wordpress.com/2012/04/24/redmine-gitolite-integration/" target="_blank" rel="noopener noreferrer">Redmine und Gitolite</a><br />
<a href="https://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_2_integrated_with_Gitolite_2_on_Debian_Wheezy_with_Apache_and_Phusion_Passenger" target="_blank" rel="noopener noreferrer">Apache Passenger</a><br />
<a href="http://redmine-git-hosting.io/get_started/" target="_blank" rel="noopener noreferrer">Redmine git hosting</a><br />
<a href="https://www.redmine.org/plugins/redmine_git_hosting" target="_blank" rel="noopener noreferrer">Redmine git hosting Plugin-Seite</a></p>
<p>Der Beitrag <a href="https://entwicklungshilfe.nrw/blog/2015/12/29/ticketsystem-mit-versionskontrolle/">Ticketsystem mit Versionskontrolle</a> erschien zuerst auf <a href="https://entwicklungshilfe.nrw">Entwicklungshilfe NRW</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://entwicklungshilfe.nrw/blog/2015/12/29/ticketsystem-mit-versionskontrolle/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
