Schulung-Teil6-Erste Schritte mit git

Aus revampedia
Version vom 31. März 2017, 11:08 Uhr von Jürg Rüttimann (Diskussion | Beiträge) (Die Seite wurde neu angelegt: «{{#switch:{{#IfLang:}} |en= == Preface == <pre> If there are still questions open after these instructions, please go to "Views" and then "Discussion" to lea…»)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Vorwort

Diese Schulung hat am 30.03.2017 stattgefunden. Zuerst haben wir git installiert und ein wenig kennengelernt und dann noch ein Projekt aus git installiert. Das ist noch nicht funktionsfähig, da noch notwendige Komponenten fehlen, doch das wird wohl voraussichtlich in zwei Wochen folgen.
Unsere Test-Server werden bei uns wohl bald mal noch verschoben, dass wir auch vom Arbeitsplatz aus auf die Geräte zugreifen können. So können wir in den Schulungen noch Aufgaben bekommen, welche wir dann in der Zeit bis zur nächsten Schulung probieren können. Da geplant ist, dass die Server und virtuellen Maschinen dann statische IP Adressen kriegen wird sich das aufstarten ein wenig ändern. Trotzdem folgt als erstes noch eine Repetition zum aufstarten und einloggen in Server und virtuellen Maschine.

Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr

Repetition

Fernstart des Servers

Zuerst wollen wir unseren Server erstmal einschalten. Dazu nutzen wir das "wakeonlan" Programm. Die allgemeine Formulierung dazu ist:

wakeonlan -i "broadcast IP" "MAC address"

In meinem Fall war der Befehl "wakeonlan -i 192.168.67.255 00:21:5a:6d:6d:42". Für meine Arbeitskollegen ändert sich die MAC-Adresse, doch die restliche Synthax können sie auch nutzen.

IP des Servers ausfindig machen

Als nächstes wollen wir herausfinden, welche IP Adresse unser Server vom DHCP-Server bezogen hat. Aus meiner Erfahrung hat mein Server immer die gleiche Adresse bezogen, doch da dies nicht garantiert ist, schaut man besser nach.

less /var/lib/dhcp/dhcpd.leases

Hier suchen wir unseren Eintrag anhand der MAC-Adresse raus, dass wir anschliessend auf unserem Server einloggen können. Über "q" kann man less wieder verlassen.

Fernzugriff auf Server

Um den Fernzugriff zu machen nutzen wir das Programm "ssh". Da aus Sicherheitsgründen nicht als root eingeloggt werden kann per SSH, haben wir noch einen weiteren Benutzer kreiert beim Aufsetzen des Systems. Um die Adresse vom Server herauszufinden haben wir ja vorher den Eintrag im DHCP-Server gesucht.

ssh "username"@"remote computer"

IP der virtuellen Maschine ausfindig machen

Ich kenne aktuell leider keinen besseren Weg um auf die virtuelle Maschine zu kommen und darum muss man diesen, ein wenig umständlichen, Weg nutzen. Da wir ja erst auf dem Server (Xen-Hypervisor) sind, können wir uns die virtuellen Maschinen anzeigen lassen.

sudo xl list

In dieser Auflistung ist jede Maschine mit einer ID versehen. Diese Zahl merken wir uns für den nächsten Befehl.

sudo xl console "ID"

Jetzt müssen wir unsere Login-Daten der virtuellen Maschine eingeben und anschliessend die IP Adresse der virtuellen Maschine herausfinden:

 ip a

Es wäre auch schon möglich von hier aus zu arbeiten, doch man kann dann nicht das gesammte Fenster nutzen, sondern nur einen Teil davon. Somit ist es angenehmer, wenn man jetzt wieder die virtuelle Maschine verlässt und entweder vom Server aus oder vom Computer wo man dran sitzt eine neue Verbindung direkt zur virtuellen Maschine macht.
Um von der virtuellen Maschine aus wieder auf denn Server zu kommen, muss man Ctrl+5 oder AltGr+] drücken. Falls man direkt vom Computer aus auf die virtuelle Maschine will, den Server über "exit" verlassen.

Packete auf den neusten Stand bringen

Jetzt wo wir uns auf unserer virtuellen Maschine befinden, wollen wir als erstes mal die Liste der verfügbaren Packete auf den neusten Stand bringen. Dies machen wir über

user1@vm1:~$ sudo apt update

Falls zu den bereits installierten Packeten eine neuere Version vorliegt, so wird es dies uns melden und diese Packete können wir über den folgenden Befehl installieren

user1@vm1:~$ sudo apt upgrade

git installieren

Wir haben unsere Packete auf den neusten Stand gebracht und verfügen über die aktuelle Version der verfügbaren Packete. Da wir heute git installieren wollen, machen wir dies über

user1@vm1:~$ sudo apt install git

Bei der Installation zeigt es uns, dass noch weitere Packete benötigt werden, dass es funktioniert.

Die folgenden zusätzlichen Pakete werden installiert:
  git-man liberror-perl patch rsync

- Bei "git-man" handelt es sich um die Man-Page von git - "liberr-perl" ist eine Bibliothek im Zusammenhang mit Fehlern und wurde in Perl geschrieben - Bei "patch" handelt es sich um eine Anleitung für Änderungen einer Datei. Das Gegenstück dazu ist "diff" Hier findet man noch eine Anleitung auf Englisch wie man diese beiden Programme nutzen kann. - rsync = remote sync

-> server werden wohl verschoben und kriegen statische IPs, dass wir schneller starten können (hat wieder 20-30min gedauert bis alle auf VM waren)

schulung zu git: kivitendo wird über git verwaltet, sowie auch linuxkernel

user1@vm1:~$ sudo apt update user1@vm1:~$ sudo apt upgrade (falls nötig) user1@vm1:~$ sudo apt install git Die folgenden zusätzlichen Pakete werden installiert:

 git-man liberror-perl patch rsync

-> git-man = man-page -> liberr-perl = library errors written in perl -> patch = anleitung für änderungen von einer datei (gegenstück zu diff) -> rsync = remote sync

Anmerkung für git nutzung: mkdir "mein ordner für git" cd "mein ordner für git" git init -> git überwacht diesen ordner ab jetzt


http://wiki.revamp-it.ch/index.php?title=Kivitendo_Installationen_mit_git_verwalten

apache2 nutzt www-data user und hat seine sachen unter /var/www/

user1@vm1:~$ sudo mkdir -p /var/www/git user1@vm1:~$ cd /var/www/git user1@vm1:/var/www/git$ sudo git clone https://github.com/kivitendo/kivitendo-erp.git user1@vm1:/var/www$ sudo chown -R www-data:www-data kivitendo


alternativ sudo -u www-data mkdir /var/www/git -> permission denied, da ordner und vorhergehender ordner root gehören -> kopieren von wo ich das geschrieben hatte. also doch über sudo mkdir /var/www/git sudo chown www-data:www-data /var/www/git sudo -u www-data git clone https://github.com/kivitendo/kivitendo-erp.git

user1@vm1:/var/www/git$ cd kivitendo-erp/ user1@vm1:/var/www/git/kivitendo-erp$ ls -la insgesamt 112 drwxr-xr-x 19 www-data www-data 4096 Mär 30 14:17 . drwxr-xr-x 3 www-data www-data 4096 Mär 30 14:17 .. drwxr-xr-x 3 www-data www-data 4096 Mär 30 14:17 bin drwxr-xr-x 2 www-data www-data 4096 Mär 30 14:17 config drwxr-xr-x 6 www-data www-data 4096 Mär 30 14:17 css lrwxrwxrwx 1 www-data www-data 14 Mär 30 14:17 dispatcher.fcgi -> dispatcher.fpl -rwxr-xr-x 1 www-data www-data 621 Mär 30 14:17 dispatcher.fpl -rwxr-xr-x 1 www-data www-data 507 Mär 30 14:17 dispatcher.pl drwxr-xr-x 7 www-data www-data 4096 Mär 30 14:17 doc -rw-r--r-- 1 www-data www-data 1150 Mär 30 14:17 favicon.ico drwxr-xr-x 8 www-data www-data 4096 Mär 30 14:17 .git -rw-r--r-- 1 www-data www-data 553 Mär 30 14:17 .gitignore -rw-r--r-- 1 www-data www-data 451 Mär 30 14:17 .htaccess drwxr-xr-x 6 www-data www-data 4096 Mär 30 14:17 image -rw-r--r-- 1 www-data www-data 369 Mär 30 14:17 index.html drwxr-xr-x 9 www-data www-data 4096 Mär 30 14:17 js -rw-r--r-- 1 www-data www-data 375 Mär 30 14:17 .jshintrc drwxr-xr-x 4 www-data www-data 4096 Mär 30 14:17 locale -rw-r--r-- 1 www-data www-data 2236 Mär 30 14:17 .mailmap drwxr-xr-x 4 www-data www-data 4096 Mär 30 14:17 menus drwxr-xr-x 4 www-data www-data 4096 Mär 30 14:17 modules drwxr-xr-x 3 www-data www-data 4096 Mär 30 14:17 scripts drwxr-xr-x 26 www-data www-data 4096 Mär 30 14:17 SL drwxr-xr-x 2 www-data www-data 4096 Mär 30 14:17 spool drwxr-xr-x 4 www-data www-data 4096 Mär 30 14:17 sql drwxr-xr-x 20 www-data www-data 4096 Mär 30 14:17 t drwxr-xr-x 5 www-data www-data 4096 Mär 30 14:17 templates drwxr-xr-x 3 www-data www-data 4096 Mär 30 14:17 users -rw-r--r-- 1 www-data www-data 15 Mär 30 14:17 VERSION user1@vm1:/var/www/git/kivitendo-erp$ -> .git -> nötig, wenn über git verwaltetes projekt gearbeitet wird -> .gitignore -> hier können individuelle einstellungen gemacht werden, da sie nicht über git verwaltet werden.

   -> falls wir weitere ordner nicht über git verwaltet haben wollen diese datei editieren gehen

user1@vm1:/var/www/git/kivitendo-erp$ git branch

  • master
-> in welchem Zweig von git befinden wir uns. da neu geladen im master
-> funktioniert nur in einem verzeichnis wo wir git haben

user1@vm1:/var/www/git$ git branch fatal: Not a git repository (or any of the parent directories): .git

user1@vm1:/var/www/git$ cd kivitendo-erp/ user1@vm1:/var/www/git/kivitendo-erp$ git tag -> listet alle releases auf user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout -b produktiv release-3.4.1 user1@vm1:/var/www/git/kivitendo-erp$ git branch

 master
  • produktiv

weiterer befehl zum zeigen was der stand ist: user1@vm1:/var/www/git/kivitendo-erp$ git status Auf Branch produktiv nichts zu committen, Arbeitsverzeichnis unverändert

falls updates gemacht wurden und man die installieren will user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout master Zu Branch 'master' gewechselt Ihr Branch ist auf dem selben Stand wie 'origin/master'. user1@vm1:/var/www/git/kivitendo-erp$

user1@vm1:/var/www/git/kivitendo-erp$ sudo git pull

user1@vm1:/var/www/git/kivitendo-erp$ sudo git log -> sehen was zuletzt gemacht wurde

wieder zu produktiv wechseln über user1@vm1:/var/www/git/kivitendo-erp$ sudo git checkout produktiv Zu Branch 'produktiv' gewechselt

-> kivi kann noch nicht laufen, da noch kein postgres installiert ist

gute erklärung zu git auf deutsch: https://www.thomas-krenn.com/de/wiki/Git_Grundbefehle github.com -> bekannte seite für git-sachen auch auf git zu finden: nextcloud oder openki

aufgabe: neuen ordner für git machen und dort die daten von git herunterladen.

bei uns im wiki zwei einträge zu git von hampa

Enter ~ (space) . -> wenns nach ssh nicht zurück zur konsole geht, kann man so schneller raus