summaryrefslogtreecommitdiff
path: root/roles/installer/openbsd
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2019-12-25 22:34:10 +0100
committerChristian Pointner <equinox@spreadspace.org>2019-12-25 22:34:10 +0100
commitb0920686096aadd8e0bb5772956f4e1d443fe72b (patch)
treed58e76d8b019408b863a9e7992921373a418465b /roles/installer/openbsd
parentopenbsd vm install almost works now (diff)
openbsd installer: generate iso with filesets
Diffstat (limited to 'roles/installer/openbsd')
-rw-r--r--roles/installer/openbsd/autoinstall/defaults/main.yml15
-rw-r--r--roles/installer/openbsd/autoinstall/tasks/main.yml34
-rw-r--r--roles/installer/openbsd/autoinstall/templates/auto_install.conf.j28
-rw-r--r--roles/installer/openbsd/base/tasks/main.yml4
4 files changed, 42 insertions, 19 deletions
diff --git a/roles/installer/openbsd/autoinstall/defaults/main.yml b/roles/installer/openbsd/autoinstall/defaults/main.yml
index e3579ad0..cdea194e 100644
--- a/roles/installer/openbsd/autoinstall/defaults/main.yml
+++ b/roles/installer/openbsd/autoinstall/defaults/main.yml
@@ -1,8 +1,19 @@
---
# obsd_autoinstall_tmpdir:
+obsd_autoinstall_arch: "{{ hostvars[hostname].install_cooked.arch | default('amd64') }}"
+obsd_autoinstall_version: "{{ install_codename }}"
+obsd_autoinstall_version_short: "{{ obsd_autoinstall_version | replace('.', '') }}"
+
# obsd_autoinstall_serial_device: com0
# obsd_autoinstall_serial_baudrate: 115200
-obsd_autoinstall_http_server: ftp2.eu.openbsd.org
-obsd_autoinstall_file_sets: -comp* -game* -x*
+obsd_autoinstall_file_sets:
+ - base
+ - man
+ #- comp
+ #- game
+ #- xbase
+ #- xfont
+ #- xserv
+ #- xshare
diff --git a/roles/installer/openbsd/autoinstall/tasks/main.yml b/roles/installer/openbsd/autoinstall/tasks/main.yml
index 333b437f..79aa8eda 100644
--- a/roles/installer/openbsd/autoinstall/tasks/main.yml
+++ b/roles/installer/openbsd/autoinstall/tasks/main.yml
@@ -1,20 +1,20 @@
---
- name: create basic cd-image directory structure
+ loop:
+ - etc
+ - sets
file:
- path: "{{ obsd_autoinstall_tmpdir }}/files/etc"
+ path: "{{ obsd_autoinstall_tmpdir }}/files/{{ item }}"
state: directory
- name: extract installer files from iso
- vars:
- arch: "{{ hostvars[hostname].install_cooked.arch | default('amd64') }}"
- version: "{{ install_codename }}"
iso_extract:
- image: "{{ installer_path }}/openbsd-{{ version }}/{{ arch }}/cd.iso"
+ image: "{{ installer_path }}/openbsd-{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/install.iso"
dest: "{{ obsd_autoinstall_tmpdir }}/files"
files:
- - "{{ version }}/{{ arch }}/cdbr"
- - "{{ version }}/{{ arch }}/cdboot"
- - "{{ version }}/{{ arch }}/bsd.rd"
+ - "{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/cdbr"
+ - "{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/cdboot"
+ - "{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/bsd.rd"
- name: generate bootloader and installer configuration
loop:
@@ -27,15 +27,25 @@
- name: generate random seed
shell: "head -c512 < /dev/random > {{ obsd_autoinstall_tmpdir }}/files/etc/random.seed"
+- name: extract file-sets from iso
+ vars:
+ set_names:
+ - bsd
+ - bsd.rd
+ - "INSTALL.{{ obsd_autoinstall_arch }}"
+ - "{{ obsd_autoinstall_file_sets | product([obsd_autoinstall_version_short+'.tgz']) | map('join') | list }}"
+ iso_extract:
+ image: "{{ installer_path }}/openbsd-{{ obsd_autoinstall_version }}/{{ obsd_autoinstall_arch }}/install.iso"
+ dest: "{{ obsd_autoinstall_tmpdir }}/files/sets"
+ files: "{{ [obsd_autoinstall_version+'/'+obsd_autoinstall_arch+'/'] | product(set_names | flatten) | map('join') | list }}"
+
- name: generate host specific installer image
- command: 'genisoimage -RTLldDN -o "cd.iso" -no-emul-boot -b "cdbr" -c "boot.catalog" files/'
+ command: 'genisoimage -RTLldDN -o "install.iso" -no-emul-boot -b "cdbr" -c "boot.catalog" files/'
args:
chdir: "{{ obsd_autoinstall_tmpdir }}/"
# - print instructions
# * attach to console
# * select (S)hell
-# * # mount_cd9660 /dev/cd0c /mnt
-# * # cp /mnt/etc/auto_install.conf /
-# * # autoinstall
+# * # mount_cd9660 /dev/cd0c /mnt && cp /mnt/etc/auto_install.conf / && autoinstall
#
diff --git a/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2 b/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2
index 6719aae3..46a87cc8 100644
--- a/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2
+++ b/roles/installer/openbsd/autoinstall/templates/auto_install.conf.j2
@@ -25,6 +25,8 @@ Allow root ssh login = prohibit-password
What timezone are you in = Europe/Vienna
-Location of sets = http
-HTTP Server = {{ obsd_autoinstall_http_server }}
-Set name(s) = {{ obsd_autoinstall_file_sets }}
+Location of sets = cd0
+Pathname to the sets = sets/
+Set name(s) = all
+{# iso-images don't contain the SHA256.sig file but are verified when downloading the iso-file #}
+Directory does not contain SHA256.sig. Continue without verification = yes
diff --git a/roles/installer/openbsd/base/tasks/main.yml b/roles/installer/openbsd/base/tasks/main.yml
index 04a4f4ce..0d5053d5 100644
--- a/roles/installer/openbsd/base/tasks/main.yml
+++ b/roles/installer/openbsd/base/tasks/main.yml
@@ -11,8 +11,8 @@
loop_control:
label: "openbsd-{{ item.0.version }} {{ item.1 }}"
get_url:
- url: "{{ openbsd_installer_url }}/{{ item.0.version }}/{{ item.1 }}/cd{{ item.0.version | replace('.', '') }}.iso"
- dest: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/cd.iso"
+ url: "{{ openbsd_installer_url }}/{{ item.0.version }}/{{ item.1 }}/install{{ item.0.version | replace('.', '') }}.iso"
+ dest: "{{ installer_path }}/openbsd-{{ item.0.version }}/{{ item.1 }}/install.iso"
mode: 0644
force: "{{ openbsd_installer_force_download }}"