[Quicktip] Sudoers Zugriffsrechte in Mac OSX zurücksetzen

Da ich eben an der Provisionierung eines Macs via Ansible gespielt habe und dabei aus Versehen einen Syntax Error in der Datei /etc/sudoers drin hatte, war ich in der Falle. Ich konnte die Datei nicht mehr bearbeiten, weil ich nicht die nötigen Zugriffsrechte hatte, und sudo konnte ich auch nicht verwenden, weil ja ein Syntax Error drin war.

Die Lösung des Problems ist dann doch sehr leicht: Man öffnet den Finder, drückt “CMD + Shift + G” und trägt in das nun erscheinende Textfeld einfach “/etc” ein. Dann gelangt man in den im Finder versteckten Ordner und kann dort die Datei “sudoers” finden. Mit einem Rechtsklick auf die Datei kann man den Punkt “Informationen” aufrufen.

dateirechte

Dort im untersten Bereich “Freigabe & Zugriffsrechte” kann man die Dateirechte wieder korrekt setzen bzw. Schreibrechte für jedermann ermöglichen (vorher rechts unten auf das Schloss klicken und den Bereich damit entsperren). Nun kann man den/die Fehler in der sudoers korrigieren, anschließend die Schreibrechte wieder zurücksetzen und schon funktioniert sudo wieder.

[Quicktip] Wie man go get und Atlasssian Stash bzw. Gitlab zusammen bringt

In meiner Tätigkeit als Jenkins Admin hat mir das Thema „go get“ und Stash viel Kopfzerbrechen bereitet. Letztendlich ist „go get“ eine Art Alias für git pull, jedoch wird da einige Magic angewendet. Im Normalfall – also mit github und auch plain git Repos funktioniert das ganze wunderbar, sobald man aber Software wie Gitlab oder Stash verwendet, wird es etwas problematisch. Zum einen ist das „.git“, welches sowohl Gitlab als auch Stash an jedes Repo hängen ein Problem, zum anderen aber auch SSH über alternative Ports.

Zum Problem der „.git“ Endung: hängt einfach ein weiteres „.git“ an euren „go get“ Command. Also:

go get git.mydomain.com/foo/bar.git.git

Etwas kniffliger ist die Verwendung eines alternativen Ports und ssh. Stash macht nämlich genau das – der ssh Port ist 7999 in der Default Config. Aber auch hierfür gibt es eine Lösung. Dazu müsst ihr die Datei „.gitconfig“ in eurem Home Folder editieren bzw. anlegen. Die Datei muss dann so aussehen:

[url "ssh://git@stash.yourdomain.com:7999/"]
insteadOf = https://stash.yourdomain.de/

Sobald ihr nun einen Checkout auf

https://stash.yourdomain.de/foo/bar.git 

macht, biegt Git diesen Request auf

ssh://git@stash.yourdomain.com:7999/foo/bar.git

um. Somit könnt ihr auf andere Ports gehen, komplett auf andere Domains umschreiben usw.

[Quicktip] Wie kann ich meinen Sonos Lautsprecher über Airplay ansprechen?

Mein Sonos Play5 hab ich ja nun schon ein ganzes Weilchen und ich bin nach wie vor mega begeistert davon. Der Sound ist der Hammer, und die Einsatzmöglichkeiten rocken einfach nur.

Etwas ärgerlich ist es jedoch, dass man die Sonos Lautsprecher immer nur mit der entsprechenden Controller App ansprechen kann. Wäre es nicht viel cooler, wenn man daraus einfach einen Airplay Lautsprecher machen könnte?

Das geht einfacher, als man denkt. Man benötigt dazu nodeJS und das Tool airsonos. Hat man nodeJS installiert, dann kann man airsonos einfach über folgendes Kommando installieren:

npm install -g airsonos


Ist die Installation erfolgreich durchgelaufen, dann reicht es, wenn man auf der Shell einfach nur

airsonos

aufruft. Das Tool sucht dann Sonos Lautsprecher im Netzwerk und erzeugt jeweils eine Airplay Gegenstelle pro gefundenem Lautsprecher. Diese wird auch gleich mit dem korrekten Raumnamen versehen.

Bildschirmfoto 2015-01-07 um 00.08.10

Wichtig: Zumindest bei mir in Kombination mit dem Mac war die Lautstärke sehr sensibel – ich muss den Regler nur minimal nach oben ziehen, damit ich eine normale Lautstärke bekomme.

PS: solltet ihr unter Mac Probleme bei der Installation von airsonos haben, weil “node-gyp“ nicht richtig installiert werden kann und ihr zufällig Homebrew verwendet, dann führt folgendes Kommando aus:

brew unlink libtool


via https://medium.com/@stephencwan/hacking-airplay-into-sonos-93a41a1fcfbb

 

Wie baue ich eine Vagrant Box mit OSX Yosemite?

Vagrant ist aus dem heutigen Entwickler Alltag nicht mehr weg zu denken. Wird es hauptsächlich für Linux Distributionen verwendet, so ist es doch auch mal ganz reizvoll, eine Box mit einem OSX drin zu betreiben – sprich, Mac OSX Yosemite zu virtualisieren. Und das geht so:

Zieht euch das Repository: https://github.com/box-cutter/osx-vm

Anschließend ladet ihr euch über den App-Store den OSX Yosemite Installer herunter – aktuell ist in diesem OSX Yosemite 10.10.1 enthalten. Wenn der Download abgeschlossen ist, ruft ihr folgendes im ausgecheckten osx-vm Order auf:

mkdir dmg
prepare_iso/prepare_iso.sh /Applications/Install\ OS\ X\ Yosemite.app ./dmg

Anschließend wird das im Installer enthaltene ISO zu einem beschreibbaren DMG umgewandelt und ein paar Patches angewendet. Wenn das Script durchgelaufen ist, dann könnt ihr mittels (xcode Command Line Tools vorausgesetzt)

make virtualbox/osx1010-desktop

die Vagrant Instanz für eine Yosemite Desktop Variante in Virtual Box bauen lassen. Das “virtualbox” kann man durch “vmware” ersetzen, und wenn man das “-desktop” weg lässt, dann bekommt man eine Consolen Variante von OSX.

Ihr werdet hier einen Fehler erhalten, dass der Installer das DMG nicht finden kann. In meinem Fall sollte die Datei “OSX_InstallESD_10.10_14A389.dmg“ heißen. Also benennt ihr einfach die vorhandene DMG Datei im Ordner DMG in den euch angezeigten Namen um. Anschließen führt ihr den oberen Befehl erneut durch und wartet einfach ab. Ihr werdet zuerst ein paar mal die Shell sehen, bis sich dann irgendwann der Yosemite Installer öffnet und das System automatisch installiert.

1416523902_thumb.png

Es wird automatisch der User Vagrant erzeugt, der das Passwort “vagrant” hat. Loggt euch aber nicht direkt ein, sobald die Login Maske erscheint, sondern beobachtet eure Console. Dort werdet ihr sehen, dass Vagrant erstmal die neuesten Updates einspielt und Software installiert. Also erstmal machen lassen 😉

Und ehe man sich versieht, hat man ein OSX in der Virtual Box am laufen:

Bildschirmfoto 2014-11-21 um 00.10.37
Wichtig: brecht auf keinen Fall den Installer ab! Wenn ihr das Script vorzeitig beendet, dann wird die komplette Box gelöscht. Dass ihr die GUI seht ist erstmal etwas verwirrend – letztlich wird die Box nur vorbereit, um dann nach Abschluss aller Installationen als „echte“ Vagrant Box hinterlegt zu werden. Diese Box wiederrum könnt ihr dann als Vagrant Box verwenden, um verschiedene Instanzen davon laufen zu lassen.

Die erstellte Box wird ca. 6GB groß sein.