Vagrant Box OpenBSD 6.0

SierraX

Well-Known Member
Hi,
Ich hab gerade eine Vagrant Box für virtualbox und vmware_desktop von OpenBSD 6.0 amd-64 gebaut und auf atlas.hashicorp.com veröffentlicht ... wer vagrant benutzt weiss ja wie's geht

vagrant init SierraX/openbsd-6.0 && vagrant up

Feedback wäre nett. Ich bin noch nicht so firm im bauen und veröffentlichen.
 
Hab grad gesagt bekommen, daß die Virtualbox version wegen fehlendem sudo nicht funktioniert... das werd ich demnächst noch versuchen zu fixen
 
Wie hast Du denn die box gebaut? packer? Dann kannst Du im provisioning einfach noch sowas dazu:

Code:
  "provisioners": [
  {
  "type": "shell",
  "environment_vars": [
  "PKG_PATH=http://artfiles.org/openbsd/%c/packages/%a/"
  ],
  "inline": "pkg_add -Iz sudo-1.8 python-2.7"
  }
  ],
  "post-processors": ["vagrant"]
 
Also...
offenbar funktionieren beide Versionen (ob auf Windows ebenfalls kann ich nicht testen) getestet hab ich es auf einem Mac. Schätzungsweise hat der Zuträger die gleichen Wissenslücken wie ich gehabt:
Es war mir zwar bekannt, das OpenBSD von sudo zu doas gewechselt ist... aber noch nicht, das man durch eine Zeile im Vagrantfile trotzdem einen "graceful shutdown" für vagrant halt und vagrant reload bei einem OpenBSD Gast erwirken kann.
config.ssh.sudo_command = "doas /sbin/halt -p"
 
Wie hast Du denn die box gebaut? packer? Dann kannst Du im provisioning einfach noch sowas dazu:
.
.
.
danke für den Hinweis und den Code... werd ich, zumindest python (da ich ein ansible provisioner Fan bin), in einer meiner nächsten Versionen einbauen. Bei sudo bin ich mir noch nicht so sicher, weil ich es nicht mag ein ganzes Gast Betriebssystem so zu verbiegen, bloss damit man einen Befehl etwas komfortabler verwenden kann.

Das verwendete packer template kann man hier einsehen.
 
Das template verwendet noch scripte - ich denke, dass das die von 'bento' sind?

Die doas Anpassungen sind gut; fuer mich war aber sudo schon eher der Weg, da ich sonst ganz andere Dinge verbiegen muss ;-)
Achja, und ich glaube mich zu erinnern, dass ssh.sudo_command als configurable erst spaeter in Vagrant kam.
 
Möglich... Meine beides... die templates sind ein fork von fnichol woher er die hat weiß ich nicht, meine aber irgendwo was von Bento gesehen zu haben und ich verwende eine gepachte Vagrant-version 1.8.5
 
Ich hab meine Box collection um amd64 snapshots erweitert.

vagrant init SierraX/openbsd-6.0-snap && vagrant up

Geplant sind wöchentliche Updates... hoffentlich endet das nicht genauso wie meine wöchentlich geplanten Besuche im Fitness Studio
 
Bisher klappts eigentlich ganz gut mit den wöchentlichen Updates.

Hab heute das packer Build auf meinem Mac mitgeschnitten... vielleicht kann sich da jemand was für sich mitnehmen:

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

Kein sound
 
Schon ganz schnittig.. noch zwei Dinge, ueber die Du mal nachdenken kannst.
1) die ISO-checksum als variable aus dem ENV, in etwa:
Code:
{
  "variables": {
    "iso_chksum": "{{env `P_ISO_CHKSUM`}}",
  },
  "builders": [
 ......
  "iso_checksum": "{{ iso_chksum }}",

2) doas.conf - und latent dann noch mehr. Verwende ein site60.tgz mit einem install.site. Das kann von einem anderen/lokalen Webserver kommen, in der install.conf sieht das dann in etwa so aus (und funktioniert dann auch bei non-packer auto-installs...):
Code:
Location of sets = http
Server = ftp.openbsd.org
Location of sets = http
Server = 10.85.8.5
Server directory = openbsd/6.0/amd64
Set = +site*
site60.tgz = yes
Unverified = yes
In dem install.site dann einfach sh-script, das wird mit chroot auf /mnt ausgefuehrt. Wichtig: ``chmod +x install.site ; tar zcpf site60.tgz install.site''


An einem ansible-playbook 'firewall.yml' schreibe ich gerade, das ist aber noch so heisse Nadel, dass ich es noch nicht herzeige :-)
 
@double-p : Danke für die konstruktiven Anregungen ... muss mir deine Sachen jetzt echt mal anschauen, bisher leider immer aus irgendwelchen nichtigen gründen verschoben. Asche auf mein Haupt.
Willst du das mit der firewall wirklich zu einem einfachen playbook machen? Klingt mir eher nach einer Aufgabe für eine Rolle. Könnte mir sogar ein Modul vorstellen.
 
Hmm, es ist eine Rolle in einem mehr generellen "bare-metal" playbook ;-)

Ein Modul wird (hier) nicht reichen, es werden gleich die kompletten Netzwerk-Konfiguration usw mit hochgezogen. Rolle passt :)
 
...
1) die ISO-checksum als variable aus dem ENV, in etwa:
Code:
{
  "variables": {
    "iso_chksum": "{{env `P_ISO_CHKSUM`}}",
  },
  "builders": [
......
  "iso_checksum": "{{ iso_chksum }}",
...


Das funktioniert leider nicht so wie erwünscht:
Code:
 ~/repository/packer-templates   master ●  ~/Downloads/packer\ 2 build openbsd-6.0-amd64.json
virtualbox-iso output will be in this color.
vmware-iso output will be in this color.

Build 'virtualbox-iso' errored: Error parsing checksum: encoding/hex: invalid byte: U+0069 'i'
Build 'vmware-iso' errored: Error parsing checksum: encoding/hex: invalid byte: U+0069 'i'

==> Some builds didn't complete successfully and had errors:
--> virtualbox-iso: Error parsing checksum: encoding/hex: invalid byte: U+0069 'i'
--> vmware-iso: Error parsing checksum: encoding/hex: invalid byte: U+0069 'i'

==> Builds finished but no artifacts were created.
 ✘  ~/repository/packer-templates   master ●  echo $P_ISO_CHKSUM
a9b6b812cb456f11ba4362e232efdd5f0c47868f4281e383ecee77541b54498c
 ~/repository/packer-templates   master ●  vi openbsd-6.0-amd64.json
 ~/repository/packer-templates   master ●  ~/Downloads/packer\ 2 build openbsd-6.0-amd64.json
virtualbox-iso output will be in this color.
vmware-iso output will be in this color.

1 error(s) occurred:

* Due to large file sizes, an iso_checksum is required

[\code]
Muss ich mir wohl was überlegen was die Zeile direkt im .json file austauscht. AUTOMATION FTW
 
Sorry.. zuviel in jinja2 geroedelt, die reference muss heissen
Code:
"iso_checksum": "{{user `iso_chksum`}}",

Nutzt nix... das war das erste was ich gemacht hatte dabei kommt das
Code:
* Due to large file sizes, an iso_checksum is required
Mal schauen was man da biegen kann. Auf alle Fälle schon mal klasse, das du mir den Mist über den Browser erspart hast, daran hätte ich aus eigenem Antrieb erst in ein paar Wochen gearbeitet
 
Komisches Phänomen beim build mit packer:

Code:
-rw-r--r--  1 xxxxxx  staff   439M  3 Dez 17:53 SierraX__openbsd-snap-6.0-amd64-1.0.0+20161203164259.git.unset.virtualbox.box
-rw-r--r--  1 xxxxxx  staff   435M  3 Dez 17:57 SierraX__openbsd-snap-6.0-amd64-1.0.0+20161203164259.git.unset.vmware.box
-rw-r--r--  1 xxxxxx  staff   236M 10 Dez 08:47 SierraX__openbsd-snap-6.0-amd64-1.0.0+20161210074341.git.unset.virtualbox.box
-rw-r--r--  1 xxxxxx  staff   234M 10 Dez 08:50 SierraX__openbsd-snap-6.0-amd64-1.0.0+20161210074341.git.unset.vmware.box

Die ersten beiden boxen sind mit installations-medium cd60.iso gemacht worden.
die letzten beiden boxen mit installations-medium install60.iso
Muss man glatt mal reingucken was da anders ist.
 
Es war mir zwar bekannt, das OpenBSD von sudo zu doas gewechselt ist... aber noch nicht, das man durch eine Zeile im Vagrantfile trotzdem einen "graceful shutdown" für vagrant halt und vagrant reload bei einem OpenBSD Gast erwirken kann.
config.ssh.sudo_command = "doas /sbin/halt -p"
Oh man...
als ich gerade mal testen wollte ob ich auch noch eine zusätzliche NIC dran hängen kann, tauchte auf einmal wieder so ne schön, mir wenig sagende Fehlermeldung auf...

Code:
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mv /tmp/vagrant-network-entry /etc/hostname.em1

Stdout from the command:



Stderr from the command:

usage: doas [-Lns] [-a style] [-C config] [-u user] command [args]

mein alter Feind: doas ... wieso????

Weil ich über Monate einen spezifischen Befehl drin hatte... der nur zum runterfahren dient... nicht verstanden was mir die Doku mit
This defaults to sudo -E -H %c.
sagen will.
Sie wollte mir einfach nur sagen... "Du Idiot... wenn du sudo das irgend einen Befehl ausführt ersetzen willst, dann setze gefälligst auch den Befehl nicht statisch auf 'runterfahren'!"
Seit ein paar Minuten verwende ich config.ssh.sudo_command = "doas env %c" und damit funktioniert auf alle Fälle mehr als vorher. Wahrscheinlich kann man sogar das "env" weglassen aber darauf hab ich heut kein bock mehr zu testen.
 
Zurück
Oben