Konfigurationsdateien mit Git verwalten

Ähnliche Dokumente
Praktikum Ingenieurinformatik (PI)

Git-Workflows im Alltag

Moodle aktuell halten mit Git

Von SVN zu Git. Daniel Willmann cbna

Torsten Flatter inovex GmbH. "Git.NET" gibt's nicht?

Die Projek*ools. Files, Git, Tickets & Time

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Git II. Dezentrale Versionsverwaltung im Team

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Apache Subversion (SVN)

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Git in großen Projekten

Git. Dezentrale Versionsverwaltung im Team Grundlagen und Workflows. Rene Preißel Björn Stachmann. 2., aktualisierte und erweiterte Auflage

Medieninformatik Praktikum. Jens Rademacher

git Änderungen verwalten mit git

Versionsverwaltung mit SVN

Einführung in Git. Dirk Deimeke. 19. August My own IT. ddeimeke (My own IT) Einführung in Git 19. August / 23

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

TortoiseGit Step by Step Step 1: git for windows herunterladen und installieren.

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

Programmieren 2 06 Git-Teamwork und Egit

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Dateiverwaltung im Lernmanagementsystem Moodle an der Herta-Lebenstein-Realschule

Einfu hrung in Subversion mit TortoiseSVN

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

DVD Version 9.1. Netzwerkinstallation + VDE-Admin-Tool.

Speicher in der Cloud

iphone-kontakte zu Exchange übertragen

Eine Einführung in das verteilte Quelltextverwaltungssystem Git

Einführung in Subversion

Deployment Deployment Seite 1 / 25

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin

WinVetpro im Betriebsmodus Laptop

OpenMAP WEBDrive Konfiguration. Oxinia GmbH , Version 1

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

Wie benutzt man TortoiseSVN

HSR git und subversion HowTo

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Internet online Update (Mozilla Firefox)

MailUtilities: Remote Deployment - Einführung

Windows Verbindung mit WLAN BZPflege trennen Verbindung mit WLAN EDU-BZPflege automatisch erstellen... 30

Handbuch. BIZS Mobil App

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

SharePoint Workspace 2010 Installieren & Konfigurieren

Internet online Update (Internet Explorer)

Automatisches Beantworten von - Nachrichten mit einem Exchange Server-Konto

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

eclipse - EGit HowTo

Teamschool Installation/ Konvertierungsanleitung

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

MARCANT - File Delivery System

Bearbeiten elektronische Rechnungen (Invoices)

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Benutzer und Rechte Teil 1, Paketverwaltung, SSH

Reporting Services und SharePoint 2010 Teil 1

Lehrer: Kurs wiederherstellen

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

teamsync Kurzanleitung

Benutzer und Rechte Teil 1

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Sourcecodeverwaltung

NAS 259 Ihre Daten mit Remote Sync (Rsync) schützen

Websites mit Dreamweaver MX und SSH ins Internet bringen

Erste Schritte mit TeamSpeak 3

IMAP Backup. Das Programm zum Sichern, Synchronisieren, Rücksichern und ansehen von gesicherten Mails. Hersteller: malu-soft

Software Engineering in der Praxis

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Speichern. Speichern unter

Fülle das erste Bild "Erforderliche Information für das Google-Konto" vollständig aus und auch das nachfolgende Bild.

bizsoft Rechner (Server) Wechsel

Werkschau Web-Präsentationen

OP-LOG

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Netzwerkversion PVG.view

Linux Cafe Referent: Bernd Strößenreuther

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Alles dabei mit Google Gratis-

Kurzanleitung zu. von Daniel Jettka

Arbeiten am Client. Achtung: Während der gesamten Vorbereitungsarbeiten darf das Programm MS Outlook auf keinen Fall geöffnet werden!

Proseminar Unix-Tools CVS Daniel Weber & Zhen Zhang Betreuer: Volker Baier

ACDSee Pro 3-Tutorials: Versenden von Bilder an eine FTP-Site

Kurssicherung / Wiederherstellung aus moodle 1.9 in moodle 2.x. 1. Sicherung in moodle 1.9 anlegen. 2. Sicherung in moodle 2.

Benachrichtigungsmöglichkeiten in SMC 2.6

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Kleines Handbuch zur Fotogalerie der Pixel AG

KEIL software. Inhaltsverzeichnis UPDATE. 1. Wichtige Informationen 1.1. Welche Änderungen gibt es?

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Übung - Datensicherung und Wiederherstellung in Windows Vista

Startseite von Prinect Remote Access

DOKUMENTATION VOGELZUCHT 2015 PLUS

Transkript:

Konfigurationsdateien mit Git verwalten Chemnitzer Linuxtage 2011 Julius Plenz 19. März 2011 Veröffentlicht unter der CreativeCommons-Lizenz (By, Nc, Sa) http://chemnitzer.linux-tage.de/2011/vortraege/782

Das Problem Mehrere Rechner, auf denen ähnliche Aufgaben ausgeführt werden Laptop zu Hause, Laptop auf der Arbeit Workstation Server Wie synchronisiere ich Konfigurationsdateien? Dateien sollen auf den Rechnern fast gleich sein Je nach Rechner kleine Anpassungen $HOME anders andere mutt-version neue Optionen Spezielle Shell-Aliase

rsync, you re out! Leider bieten viele Programme keinen include-befehl Problem könnte man sonst umgehen durch Kommando include.program.local Ein simples Synchronisieren via rsync oder scp scheidet aus Mögliche lokale Änderungen gehen verloren Keine Möglichkeit, die lokalen Anpassungen sinnvoll zu kennzeichnen und beizubehalten

Die Idee Stammkonfiguration vorhalten Kleine Anpassungen als "Patch-Stack" gegen die generische Version verwalten /home/plenz /home/feh Spezielle Aliase hinzufügen...

Lösung: Git! Git bietet die wesentlichen Techniken Einfaches Branching Übertragung von Änderungen (dezentral) rebase: Patch-Stack neu aufbauen Bonus: Versionsverwaltung der Dateien frei Haus!

Auf geht s! Home-Verzeichnis als Git-Repository initialisieren Nicht das Verzeichnis.git verwenden! Repository initialisieren GIT_DIR=~/.configs.git GIT_WORK_TREE=$HOME git init Weil wir nicht.git verwenden, muss ein Shell-Alias her Shell-Alias alias conf="git_dir=~/.configs.git git"

Configs importieren Zunächst die vorhandenen Configs importieren Import conf add.vimrc.muttrc.zshrc... conf commit -m "Import der Configs" Stammkonfiguration auf master Lokale Anpassungen auf local Branch local erstellen conf branch local conf checkout local

Stammkonfiguration lagern Stammkonfiguration am besten auf eigenem Server lagern Nur SSH-Zugriff nötig Alternative: Github, repo.or.cz Auf dem Server git init --bare ~/configs.git Auf dem Client conf remote add origin server:configs.git conf push -u origin master master wird das erste Mal hochgeladen

Neue Rechner hinzufügen Diese Kommandos müssen einmalig ausgeführt werden Configs-Repository klonen nach ~/.configs.git conf clone --bare server:configs.git.configs.git conf config core.bare false conf config core.worktree $HOME conf remote rm origin conf remote add origin server:configs.git conf reset master Lokal vorliegende Änderungen übernehmen conf checkout -b local conf diff conf add/commit/...

Änderung an der Stammkonfiguration Alle Änderungen werden zunächst im Branch local gemacht conf add, conf commit Änderungen per Cherry-Pick in die Stammkonfiguration übernehmen conf checkout master conf cherry-pick... Dann local auf master neu aufbauen conf rebase master local Rebase ignoriert die doppelten Commits master hochladen conf push origin master Struktur verwirrend? gitk --all

Stammkonfiguration-Updates Nach Updates suchen conf remote update Updates integrieren conf checkout master conf merge --ff-only origin/master local neu aufbauen conf rebase master local Rebase kann fehlschlagen. Konflikt lösen

Achtung, Achtung! Vorsicht bei folgenden Kommandos conf checkout -f conf clean Kann mit falschen Optionen komplett $HOME löschen! Branchwechsel können nicht durchgeführt werden, wenn lokale Änderungen vorliegen, die nicht eingecheckt sind der Checkout eine ungetrackte Datei überschreiben würde Git nimmt nativ keine Unix-Rechte auf Vorsicht bei der Verwaltung von /etc, zum Beispiel /etc/sudoers mit falschen Permissions ist schwierig zu reparieren, wenn man das Root-Passwort verlegt hat...

Pros & Cons Pro Homogene Umgebung auf allen Rechnern Synchronisation der Dateien bei Bedarf Flexibilität von Git Versionsgeschichte der Konfigurationsdateien Contra Disziplin vonnöten Mehr Zeitaufwand als simples quick- n -dirty-editieren Pull-Prinzip, keine automatische Verteilung

Alternativen etckeeper http://kitenet.net/~joey/code/etckeeper/ Dewi https://github.com/ft/dewi IsiSetup http://sf.net/projects/isisetup/ Puppet

Danke! Fragen und Kommentare gerne an julius@plenz.com. Configs unter https://github.com/feh/configs