{"id":1719,"date":"2019-02-13T15:54:51","date_gmt":"2019-02-13T14:54:51","guid":{"rendered":"https:\/\/my.stargazer.at\/?p=1719"},"modified":"2019-02-13T16:03:33","modified_gmt":"2019-02-13T15:03:33","slug":"etckeeper-vs-git-push-and-branches","status":"publish","type":"post","link":"https:\/\/my.stargazer.at\/de\/2019\/02\/13\/etckeeper-vs-git-push-and-branches\/","title":{"rendered":"etckeeper und git push &#8211; mit branches"},"content":{"rendered":"<p>Auf den ersten Blick mag es vielleicht schr\u00e4g erscheinen, \/etc zu versionieren und die Konfigurationen in git abzulegen. Aber beim zweiten Blick macht es total Sinn, da man so die \u00c4nderungen am Besten verfolgen kann &#8211; und im schlimmsten Fall sogar schnell auf eine alte Version eines Files zugreifen kann. Das Einzige das ich nicht machen w\u00fcrde, w\u00e4re dieses Repository dann auf Github zu stellen &#8211; aber wenn man einen eigenen Git-Server im Haus hat, kann man durchaus dort einen zentralen Speicher haben.<\/p>\n<p>Um etckeeper zu initialisieren, gehen wir als root oder via sudo wie folgt vor:<\/p>\n<pre>etckeeper init<\/pre>\n<p>Etckeeper ist nun eigentlich bereit f\u00fcr unsere Schandtaten. Nur st\u00f6rt mich pers\u00f6nlich das Vorhandensein von shadow und shadow-. Also entfernen wir diese Dateien mit\u00a0<\/p>\n<pre>git rm -r --cached shadow*<\/pre>\n<p>und g\u00f6nnen ihnen einen Eintrag in der .gitignore. Der erste Commit w\u00e4re somit bereit:<\/p>\n<pre>git commit -a -m 'initial \/etc commit'<\/pre>\n<p>In Zukunft werden wir jedoch<\/p>\n<pre>etckeeper commit<\/pre>\n<p>verwenden, damit die Sache auch rund l\u00e4uft.<\/p>\n<p>Wie der Titel verspricht, geht es nun um das branchen. Wir machen einen Branch mit dem Namen des Hosts und h\u00e4ngen diesen an unser bestehendes oder gerade angelegtes Repository am zentralen Git:<\/p>\n<pre>git branch -m master $HOSTNAME\r\ngit remote add origin git@git.myserver.com:path\/to\/repo.git\r\ngit push --set-upstream origin $HOSTNAME<\/pre>\n<p>Das war&#8217;s dann auch schon. Praktisch nun, wenn man zwei Konfigurationsdateien vergleichen will, nutzt man:<\/p>\n<pre>git diff origin\/server1 origin\/server2 -- file<\/pre>\n<p>Sauber, oder? Jeder der mich kennt wird wissen, dass ich solche Dinge dann auch noch gerne automatisiere um dem Vergessen vorzubeugen. Dies geht am Besten in einem Hook f\u00fcr etckeeper in\u00a0\u00a0<em>\/etc\/etckeeper\/commit.d\/60-push<\/em> mit folgendem Inhalt:<\/p>\n<pre>#!\/bin\/sh\r\ngit push --set-upstream origin $HOSTNAME<\/pre>\n<p>Ausf\u00fchrbar machen und ab die Post.<\/p>","protected":false},"excerpt":{"rendered":"<p>Auf den ersten Blick mag es vielleicht schr\u00e4g erscheinen, \/etc zu versionieren und die Konfigurationen in git abzulegen. Aber beim zweiten Blick macht es total Sinn, da man so die \u00c4nderungen am Besten verfolgen kann &#8211; und im schlimmsten Fall sogar schnell auf eine alte Version eines Files zugreifen kann. Das Einzige das ich nicht machen w\u00fcrde, w\u00e4re [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":1484,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[379,568,22],"class_list":["post-1719","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-related-stuff","tag-config","tag-git","tag-linux"],"_links":{"self":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/comments?post=1719"}],"version-history":[{"count":0,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/posts\/1719\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media\/1484"}],"wp:attachment":[{"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/media?parent=1719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/categories?post=1719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/my.stargazer.at\/de\/wp-json\/wp\/v2\/tags?post=1719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}