├── debian ├── compat ├── install ├── docs ├── rules ├── .gitignore ├── watch ├── postinst ├── README ├── README.source ├── dirs ├── README.Debian ├── postrm ├── control ├── copyright └── changelog ├── .flake8 ├── tests ├── tdl │ ├── hello.cmd │ ├── test-03-empty-template.tdl │ ├── test-04-no-os.tdl │ ├── test-15-os-no-install.tdl │ ├── test-21-missing-install-type.tdl │ ├── test-05-no-name.tdl │ ├── test-12-os-no-name.tdl │ ├── test-13-os-no-version.tdl │ ├── test-14-os-no-arch.tdl │ ├── test-19-key.tdl │ ├── test-01-simple-iso.tdl │ ├── test-02-simple-url.tdl │ ├── test-09-os-invalid-arch.tdl │ ├── test-22-md5sum.tdl │ ├── test-10-os-invalid-install-type.tdl │ ├── test-23-sha1sum.tdl │ ├── test-24-sha256sum.tdl │ ├── test-18-rootpw.tdl │ ├── test-44-version.tdl │ ├── test-45-bogus-version.tdl │ ├── test-47-invalid-template.tdl │ ├── test-07-packages-no-package.tdl │ ├── test-08-repositories-no-repository.tdl │ ├── test-46-duplicate-name.tdl │ ├── test-06-simple-iso-description.tdl │ ├── test-20-multiple-install.tdl │ ├── test-25-md5sum-and-sha1sum.tdl │ ├── test-26-md5sum-and-sha256sum.tdl │ ├── test-30-file-no-name.tdl │ ├── test-49-file-empty-raw.tdl │ ├── test-27-sha1sum-and-sha256sum.tdl │ ├── test-29-files.tdl │ ├── test-48-file-empty-base64.tdl │ ├── test-33-file-invalid-type.tdl │ ├── test-32-file-base64-type.tdl │ ├── test-51-disk-size.tdl │ ├── test-31-file-raw-type.tdl │ ├── test-34-file-invalid-base64.tdl │ ├── test-54-files-file-url.tdl │ ├── test-56-invalid-disk-size.tdl │ ├── test-57-invalid-disk-size.tdl │ ├── test-63-disk-size-exbibyte.tdl │ ├── test-64-disk-size-zettabyte.tdl │ ├── test-65-disk-size-byte.tdl │ ├── test-58-disk-size-tebibyte-compat.tdl │ ├── test-55-files-http-url.tdl │ ├── test-50-command-base64-empty.tdl │ ├── test-36-repository-no-url.tdl │ ├── test-38-command-no-name.tdl │ ├── test-52-command-file-url.tdl │ ├── test-42-command-bogus-type.tdl │ ├── test-39-command-raw-type.tdl │ ├── test-40-command-base64-type.tdl │ ├── test-41-command-bogus-base64.tdl │ ├── test-35-repository-no-name.tdl │ ├── test-53-command-http-url.tdl │ ├── test-37-command.tdl │ ├── test-62-repository-localhost.tdl │ ├── test-28-package-no-name.tdl │ ├── test-59-command-sorting.tdl │ ├── test-60-command-mix-positions-and-not.tdl │ ├── test-61-command-duplicate-position.tdl │ ├── test-11-description-packages-repositories.tdl │ ├── test-16-signed-repository.tdl │ ├── test-17-repo-invalid-signed.tdl │ └── test-43-persisted-repos.tdl └── guest │ ├── libvirt │ ├── test_modify_libvirt_xml_for_serial_missing_devices.xml │ ├── test_modify_libvirt_xml_for_serial_final.xml │ ├── test_get_disks_and_interfaces_missing_disk_target.xml │ ├── test_modify_libvirt_xml_diskimage.xml │ ├── test_modify_libvirt_xml_for_serial.xml │ ├── test_modify_libvirt_xml_diskimage_final.xml │ ├── test_get_disks_and_interfaces_missing_interface_target.xml │ ├── test_modify_libvirt_xml_diskimage_missing_disk_source.xml │ ├── test_get_disks_and_interfaces.xml │ ├── test_get_disks_and_interfaces_missing_disk_target_device.xml │ ├── test_get_disks_and_interfaces_missing_interface_target_device.xml │ ├── test_modify_libvirt_xml_for_serial_too_many_targets.xml │ ├── test_modify_libvirt_xml_diskimage_too_many_drivers.xml │ ├── test_xml_generation_1.xml │ ├── test_xml_generation_2.xml │ └── test_modify_libvirt_xml_for_serial_too_many_devices.xml │ └── test.icicle ├── requirements.txt ├── .gitignore ├── MANIFEST.in ├── .coveragerc ├── .pylintrc ├── examples ├── f14i386local.tdl ├── f12i386.tdl ├── f12x86_64.tdl ├── ubuntu9.10i386.tdl ├── opensuse11.3i386.tdl ├── win2k.tdl ├── freebsd10.tdl ├── f18disksize.tdl ├── f13i386.tdl ├── f18isoextradir.tdl ├── f18isoextrafile.tdl └── f18file.tdl ├── oz ├── auto │ ├── Fedora21.auto │ ├── Fedora22.auto │ ├── Fedora23.auto │ ├── Fedora24.auto │ ├── Fedora25.auto │ ├── Fedora26.auto │ ├── Fedora27.auto │ ├── Fedora28.auto │ ├── Fedora29.auto │ ├── Fedora30.auto │ ├── RHEL7.auto │ ├── RedHatLinux7.0.auto │ ├── RedHatLinux7.1.auto │ ├── RedHatLinux8.auto │ ├── RHEL3.auto │ ├── Fedora11.auto │ ├── RedHatLinux7.2.auto │ ├── Fedora15.auto │ ├── Fedora10.auto │ ├── Fedora12.auto │ ├── Fedora13.auto │ ├── Fedora7.auto │ ├── Fedora8.auto │ ├── Fedora9.auto │ ├── RedHatLinux9.auto │ ├── RHEL2.1.auto │ ├── Fedora14.auto │ ├── RHEL6.auto │ ├── RedHatLinux7.3.auto │ ├── Fedora16.auto │ ├── Fedora17.auto │ ├── Fedora18.auto │ ├── Fedora19.auto │ ├── Fedora20.auto │ ├── FedoraCore1.auto │ ├── RHEL5.auto │ ├── RHEL4.auto │ ├── FedoraCore2.auto │ ├── FedoraCore3.auto │ ├── FedoraCore4.auto │ ├── FedoraCore5.auto │ ├── FedoraCore6.auto │ ├── Windows2000.auto │ ├── Windows2003.auto │ ├── WindowsXP.auto │ ├── FreeBSD10.0.auto │ ├── FreeBSD11.0.auto │ ├── Ubuntu8.04.auto │ ├── Ubuntu8.10.auto │ ├── Ubuntu9.04.auto │ ├── Ubuntu9.10.auto │ ├── Ubuntu7.10.auto │ ├── Ubuntu10.10.auto │ ├── Ubuntu6.10.auto │ ├── Ubuntu7.04.auto │ ├── Ubuntu10.04.auto │ ├── Ubuntu6.06.auto │ ├── Ubuntu5.04.auto │ ├── Ubuntu5.10.auto │ ├── Ubuntu11.04.auto │ ├── Ubuntu11.10.auto │ ├── Ubuntu12.04.auto │ ├── Ubuntu12.10.auto │ ├── Ubuntu13.10.auto │ ├── Windows2008.auto │ ├── Windows2012.auto │ ├── Windows2016.auto │ ├── Ubuntu13.04.auto │ ├── Mageia2.auto │ ├── Mageia3.auto │ ├── Mageia4.auto │ └── Mageia5.auto ├── icicle.rng ├── OzException.py ├── __init__.py ├── RHEL_2_1.py ├── RHEL_9.py ├── RHEL_6.py ├── RHEL_7.py ├── RHEL_8.py └── FedoraCore.py ├── oz.cfg ├── Containerfile.tests.fedora ├── Containerfile.tests.el8 ├── .github └── workflows │ └── ci.yml ├── README ├── setup.py └── Makefile /debian/compat: -------------------------------------------------------------------------------- 1 | 8 2 | -------------------------------------------------------------------------------- /debian/install: -------------------------------------------------------------------------------- 1 | /oz.cfg etc/oz 2 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 200 3 | -------------------------------------------------------------------------------- /debian/docs: -------------------------------------------------------------------------------- 1 | README 2 | TODO 3 | examples 4 | -------------------------------------------------------------------------------- /tests/tdl/hello.cmd: -------------------------------------------------------------------------------- 1 | echo "hello from file://url" > /tmp/foo 2 | -------------------------------------------------------------------------------- /tests/tdl/test-03-empty-template.tdl: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /tests/tdl/test-04-no-os.tdl: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | cryptography 3 | libvirt-python 4 | lxml 5 | monotonic 6 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | %: 4 | dh $@ --buildsystem=python_distutils --with=python2 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gz 2 | *.pyc 3 | *.sw[po] 4 | *~ 5 | *.egg 6 | *.egg-info 7 | tests/.venv 8 | tests/results.xml 9 | -------------------------------------------------------------------------------- /debian/.gitignore: -------------------------------------------------------------------------------- 1 | *.debhelper 2 | *.debhelper.log 3 | *.substvars 4 | files 5 | oz/ 6 | python-module-stampdir/ 7 | source/ 8 | stamp-* 9 | tmp/ 10 | -------------------------------------------------------------------------------- /debian/watch: -------------------------------------------------------------------------------- 1 | # Compulsory line, this is a version 3 file 2 | version=3 3 | 4 | https://github.com/clalancette/oz/tags \ 5 | /clalancette/oz/archive/v(.*).tar.gz 6 | -------------------------------------------------------------------------------- /debian/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh - 2 | if [ ! -f /etc/oz/id_rsa-icicle-gen ]; then 3 | ssh-keygen -t rsa -b 2048 -N "" -f /etc/oz/id_rsa-icicle-gen >/dev/null 2>&1 4 | fi 5 | -------------------------------------------------------------------------------- /debian/README: -------------------------------------------------------------------------------- 1 | The Debian Package oz 2 | ---------------------------- 3 | 4 | Comments regarding the Package 5 | 6 | -- Richard Jones Thu, 22 Sep 2011 16:17:34 +0100 7 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README COPYING examples/*.tdl man/*.1 oz.cfg docs/*.rng oz/*.rng Makefile 2 | include man/examples/*.example man/examples/header man/examples/footer 3 | include oz/auto/* 4 | -------------------------------------------------------------------------------- /tests/tdl/test-15-os-no-install.tdl: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | branch = true 3 | source_pkgs = 4 | oz 5 | 6 | [paths] 7 | # this mapping is for the containers; the source tree is in /oz in the containers 8 | source = 9 | oz/ 10 | /oz/oz 11 | -------------------------------------------------------------------------------- /debian/README.source: -------------------------------------------------------------------------------- 1 | oz for Debian 2 | ------------- 3 | 4 | 6 | -------------------------------------------------------------------------------- /debian/dirs: -------------------------------------------------------------------------------- 1 | etc/oz 2 | var/lib/oz/isocontent 3 | var/lib/oz/isos 4 | var/lib/oz/floppycontent 5 | var/lib/oz/floppies 6 | var/lib/oz/icicletmp 7 | var/lib/oz/jeos 8 | var/lib/oz/kernels 9 | var/lib/oz/screenshots 10 | -------------------------------------------------------------------------------- /debian/README.Debian: -------------------------------------------------------------------------------- 1 | oz for Debian 2 | ------------- 3 | 4 | This is an experimental Oz package for Debian. Please open bug 5 | reports on the github issue tracker: 6 | 7 | http://github.com/clalancette/oz/issues 8 | 9 | -- Richard Jones Thu, 22 Sep 2011 16:17:34 +0100 10 | -------------------------------------------------------------------------------- /tests/tdl/test-21-missing-install-type.tdl: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /tests/tdl/test-05-no-name.tdl: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/tdl/test-12-os-no-name.tdl: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/tdl/test-13-os-no-version.tdl: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/tdl/test-14-os-no-arch.tdl: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /tests/tdl/test-19-key.tdl: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-01-simple-iso.tdl: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /tests/tdl/test-02-simple-url.tdl: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /tests/tdl/test-09-os-invalid-arch.tdl: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /tests/tdl/test-22-md5sum.tdl: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-10-os-invalid-install-type.tdl: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /tests/tdl/test-23-sha1sum.tdl: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-24-sha256sum.tdl: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-18-rootpw.tdl: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-44-version.tdl: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-45-bogus-version.tdl: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-47-invalid-template.tdl: -------------------------------------------------------------------------------- 1 | 2 | rhel5-u7 3 | 4 | RHEL-5 5 | U7 6 | i386 7 | 8 | http://someserver/path/to/installation 9 | 10 | 11 | A RHEL5 Update 7 image 12 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-07-packages-no-package.tdl: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /tests/tdl/test-08-repositories-no-repository.tdl: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /tests/tdl/test-46-duplicate-name.tdl: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /tests/tdl/test-06-simple-iso-description.tdl: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /tests/tdl/test-20-multiple-install.tdl: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/tdl/test-25-md5sum-and-sha1sum.tdl: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /tests/tdl/test-26-md5sum-and-sha256sum.tdl: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /tests/tdl/test-30-file-no-name.tdl: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /tests/tdl/test-49-file-empty-raw.tdl: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/tdl/test-27-sha1sum-and-sha256sum.tdl: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /tests/tdl/test-29-files.tdl: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /tests/tdl/test-48-file-empty-base64.tdl: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/tdl/test-33-file-invalid-type.tdl: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/tdl/test-32-file-base64-type.tdl: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/tdl/test-51-disk-size.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-31-file-raw-type.tdl: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /tests/tdl/test-34-file-invalid-base64.tdl: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/tdl/test-54-files-file-url.tdl: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/tdl/test-56-invalid-disk-size.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-57-invalid-disk-size.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-63-disk-size-exbibyte.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /.pylintrc: -------------------------------------------------------------------------------- 1 | [MESSAGES CONTROL] 2 | disable=C0325,C0103 3 | 4 | [REPORTS] 5 | reports=yes 6 | 7 | [TYPECHECK] 8 | 9 | [FORMAT] 10 | max-line-length=200 11 | max-module-lines=2000 12 | 13 | [VARIABLES] 14 | dummy-variables-rgx=.*_unused$ 15 | 16 | [BASIC] 17 | module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9_]+))$ 18 | 19 | [DESIGN] 20 | max-args=20 21 | max-locals=30 22 | max-branches=30 23 | max-statements=100 24 | max-attributes=30 25 | min-public-methods=0 26 | -------------------------------------------------------------------------------- /tests/tdl/test-64-disk-size-zettabyte.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-65-disk-size-byte.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-58-disk-size-tebibyte-compat.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /examples/f14i386local.tdl: -------------------------------------------------------------------------------- 1 | 4 | 16 | -------------------------------------------------------------------------------- /examples/f12i386.tdl: -------------------------------------------------------------------------------- 1 | 4 | 16 | -------------------------------------------------------------------------------- /oz/auto/Fedora21.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora22.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora23.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device ens3 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora24.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device ens3 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora25.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device ens3 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora26.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device ens3 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora27.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device ens3 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora28.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device ens3 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora29.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device ens3 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /oz/auto/Fedora30.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device ens3 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | @core 22 | 23 | %end 24 | -------------------------------------------------------------------------------- /tests/tdl/test-55-files-http-url.tdl: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /tests/tdl/test-50-command-base64-empty.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /examples/f12x86_64.tdl: -------------------------------------------------------------------------------- 1 | 4 | 16 | -------------------------------------------------------------------------------- /oz/auto/RHEL7.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | 14 | zerombr 15 | clearpart --all --initlabel 16 | autopart --type=lvm 17 | 18 | reboot 19 | 20 | %packages 21 | openssh-clients 22 | @core 23 | 24 | %end 25 | -------------------------------------------------------------------------------- /tests/tdl/test-36-repository-no-url.tdl: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /tests/tdl/test-38-command-no-name.tdl: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /examples/ubuntu9.10i386.tdl: -------------------------------------------------------------------------------- 1 | 4 | 16 | -------------------------------------------------------------------------------- /examples/opensuse11.3i386.tdl: -------------------------------------------------------------------------------- 1 | 4 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-52-command-file-url.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-42-command-bogus-type.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-39-command-raw-type.tdl: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /tests/tdl/test-40-command-base64-type.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-41-command-bogus-base64.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /tests/tdl/test-35-repository-no-name.tdl: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /oz.cfg: -------------------------------------------------------------------------------- 1 | [paths] 2 | output_dir = /var/lib/libvirt/images 3 | data_dir = /var/lib/oz 4 | screenshot_dir = /var/lib/oz/screenshots 5 | # sshprivkey = /etc/oz/id_rsa-icicle-gen 6 | 7 | [libvirt] 8 | uri = qemu:///system 9 | image_type = raw 10 | # type = kvm 11 | # bridge_name = virbr0 12 | # cpus = 1 13 | # memory = 1024 14 | 15 | [cache] 16 | original_media = yes 17 | modified_media = no 18 | jeos = no 19 | 20 | [icicle] 21 | safe_generation = no 22 | 23 | [timeouts] 24 | install = 1200 25 | inactivity = 300 26 | boot = 300 27 | shutdown = 90 28 | -------------------------------------------------------------------------------- /tests/tdl/test-53-command-http-url.tdl: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /examples/win2k.tdl: -------------------------------------------------------------------------------- 1 | 5 | 18 | -------------------------------------------------------------------------------- /debian/postrm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | FILE="/etc/oz/id_rsa-icicle-gen" 6 | 7 | case "$1" in 8 | purge) 9 | if [ -f $FILE ]; then 10 | rm $FILE $FILE.pub 11 | fi 12 | ;; 13 | 14 | remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 15 | ;; 16 | 17 | *) 18 | echo "postrm called with unknown argument \`$1'" >&2 19 | exit 1 20 | ;; 21 | esac 22 | 23 | # dh_installdeb will replace this with shell code automatically 24 | # generated by other debhelper scripts. 25 | 26 | #DEBHELPER# 27 | 28 | exit 0 29 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_for_serial_missing_devices.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | -------------------------------------------------------------------------------- /tests/tdl/test-37-command.tdl: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /tests/tdl/test-62-repository-localhost.tdl: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /oz/auto/RedHatLinux7.0.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | url --url REPLACE_ME 4 | keyboard us 5 | lang en_US 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | auth --useshadow --enablemd5 11 | timezone --utc America/New_York 12 | lilo --location mbr --linear 13 | zerombr yes 14 | clearpart --all --drives=hda 15 | 16 | part /boot --size=200 --ondisk=hda 17 | part / --size=1024 --grow --ondisk=hda 18 | part swap --size 768 --grow --maxsize=1536 --ondisk=hda 19 | reboot 20 | 21 | %packages 22 | python 23 | openssh 24 | openssh-server 25 | telnet 26 | -------------------------------------------------------------------------------- /tests/tdl/test-28-package-no-name.tdl: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /examples/freebsd10.tdl: -------------------------------------------------------------------------------- 1 | 4 | 20 | -------------------------------------------------------------------------------- /oz/auto/RedHatLinux7.1.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | url --url REPLACE_ME 4 | keyboard us 5 | lang en_US 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | auth --useshadow --enablemd5 12 | timezone --utc America/New_York 13 | lilo --location mbr --linear 14 | zerombr yes 15 | clearpart --all --drives=hda 16 | 17 | part /boot --size=200 --ondisk=hda 18 | part / --size=1024 --grow --ondisk=hda 19 | part swap --size 768 --grow --maxsize=1536 --ondisk=hda 20 | reboot 21 | 22 | %packages 23 | python 24 | openssh 25 | openssh-server 26 | nc 27 | wget 28 | -------------------------------------------------------------------------------- /examples/f18disksize.tdl: -------------------------------------------------------------------------------- 1 | 6 | 20 | -------------------------------------------------------------------------------- /oz/auto/RedHatLinux8.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | url --url REPLACE_ME 4 | keyboard us 5 | lang en_US.UTF-8 6 | langsupport --default en_US.UTF-8 en_US.UTF-8 7 | mouse generic3ps/2 --device psaux 8 | skipx 9 | network --device eth0 --bootproto dhcp 10 | rootpw %ROOTPW% 11 | firewall --disabled 12 | authconfig --enableshadow --enablemd5 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part / --fstype ext3 --size=1024 --grow --ondisk=hda 20 | part swap --size 768 --grow --maxsize=1536 --ondisk=hda 21 | reboot 22 | 23 | %packages 24 | -------------------------------------------------------------------------------- /tests/tdl/test-59-command-sorting.tdl: -------------------------------------------------------------------------------- 1 | 24 | -------------------------------------------------------------------------------- /tests/tdl/test-60-command-mix-positions-and-not.tdl: -------------------------------------------------------------------------------- 1 | 24 | -------------------------------------------------------------------------------- /tests/tdl/test-61-command-duplicate-position.tdl: -------------------------------------------------------------------------------- 1 | 24 | -------------------------------------------------------------------------------- /oz/auto/RHEL3.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | langsupport --default en_US.UTF-8 en_US.UTF-8 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | authconfig --enableshadow --enablemd5 12 | timezone --utc America/New_York 13 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 14 | zerombr yes 15 | clearpart --all --drives=hda 16 | 17 | part /boot --fstype ext3 --size=200 --ondisk=hda 18 | part / --fstype ext3 --size=1024 --grow --ondisk=hda 19 | part swap --size 768 --grow --maxsize=1536 --ondisk=hda 20 | reboot 21 | 22 | %packages 23 | @ admin-tools 24 | @ text-internet 25 | nc 26 | wget 27 | 28 | %post 29 | -------------------------------------------------------------------------------- /oz/auto/Fedora11.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr yes 14 | 15 | part /boot --fstype ext3 --size=200 --ondisk=vda 16 | part pv.2 --size=1 --grow --ondisk=vda 17 | volgroup VolGroup00 --pesize=32768 pv.2 18 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 19 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 20 | reboot 21 | 22 | %packages 23 | @base 24 | 25 | %post 26 | -------------------------------------------------------------------------------- /tests/tdl/test-11-description-packages-repositories.tdl: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /oz/auto/RedHatLinux7.2.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | url --url REPLACE_ME 4 | keyboard us 5 | lang en_US 6 | langsupport --default en_US en_US 7 | mouse generic3ps/2 --device psaux 8 | skipx 9 | network --device eth0 --bootproto dhcp 10 | rootpw %ROOTPW% 11 | firewall --disabled 12 | authconfig --enableshadow --enablemd5 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part / --fstype ext3 --size=1024 --grow --ondisk=hda 20 | part swap --size 768 --grow --maxsize=1536 --ondisk=hda 21 | reboot 22 | 23 | %packages 24 | @ Network Support 25 | @ Network Managed Workstation 26 | @ Utilities 27 | nc 28 | wget 29 | -------------------------------------------------------------------------------- /oz/auto/Fedora15.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr 14 | clearpart --all --drives=vda 15 | 16 | part /boot --fstype ext4 --size=200 --ondisk=vda 17 | part pv.2 --size=1 --grow --ondisk=vda 18 | volgroup VolGroup00 --pesize=32768 pv.2 19 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 20 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 21 | reboot 22 | 23 | %packages 24 | @base 25 | 26 | %end 27 | -------------------------------------------------------------------------------- /oz/auto/Fedora10.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr yes 14 | clearpart --all --drives=vda 15 | 16 | part /boot --fstype ext3 --size=200 --ondisk=vda 17 | part pv.2 --size=1 --grow --ondisk=vda 18 | volgroup VolGroup00 --pesize=32768 pv.2 19 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 20 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 21 | reboot 22 | 23 | %packages 24 | @base 25 | 26 | %post 27 | -------------------------------------------------------------------------------- /oz/auto/Fedora12.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr yes 14 | clearpart --all --drives=vda 15 | 16 | part /boot --fstype ext4 --size=200 --ondisk=vda 17 | part pv.2 --size=1 --grow --ondisk=vda 18 | volgroup VolGroup00 --pesize=32768 pv.2 19 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 20 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 21 | reboot 22 | 23 | %packages 24 | @base 25 | 26 | %post 27 | -------------------------------------------------------------------------------- /oz/auto/Fedora13.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr yes 14 | clearpart --all --drives=vda 15 | 16 | part /boot --fstype ext4 --size=200 --ondisk=vda 17 | part pv.2 --size=1 --grow --ondisk=vda 18 | volgroup VolGroup00 --pesize=32768 pv.2 19 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 20 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 21 | reboot 22 | 23 | %packages 24 | @base 25 | 26 | %post 27 | -------------------------------------------------------------------------------- /oz/auto/Fedora7.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr yes 14 | clearpart --all --drives=sda 15 | 16 | part /boot --fstype ext3 --size=200 --ondisk=sda 17 | part pv.2 --size=1 --grow --ondisk=sda 18 | volgroup VolGroup00 --pesize=32768 pv.2 19 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 20 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 21 | reboot 22 | 23 | %packages 24 | @base 25 | 26 | %post 27 | -------------------------------------------------------------------------------- /oz/auto/Fedora8.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr yes 14 | clearpart --all --drives=sda 15 | 16 | part /boot --fstype ext3 --size=200 --ondisk=sda 17 | part pv.2 --size=1 --grow --ondisk=sda 18 | volgroup VolGroup00 --pesize=32768 pv.2 19 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 20 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 21 | reboot 22 | 23 | %packages 24 | @base 25 | 26 | %post 27 | -------------------------------------------------------------------------------- /oz/auto/Fedora9.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr yes 14 | clearpart --all --drives=vda 15 | 16 | part /boot --fstype ext3 --size=200 --ondisk=vda 17 | part pv.2 --size=1 --grow --ondisk=vda 18 | volgroup VolGroup00 --pesize=32768 pv.2 19 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 20 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 21 | reboot 22 | 23 | %packages 24 | @base 25 | 26 | %post 27 | -------------------------------------------------------------------------------- /oz/auto/RedHatLinux9.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | url --url REPLACE_ME 4 | keyboard us 5 | lang en_US.UTF-8 6 | langsupport --default en_US.UTF-8 en_US.UTF-8 7 | mouse generic3ps/2 --device psaux 8 | skipx 9 | network --device eth0 --bootproto dhcp 10 | rootpw %ROOTPW% 11 | firewall --disabled 12 | authconfig --enableshadow --enablemd5 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part / --fstype ext3 --size=1024 --grow --ondisk=hda 20 | part swap --size 768 --grow --maxsize=1536 --ondisk=hda 21 | reboot 22 | 23 | %packages 24 | @ Administration Tools 25 | @ Editors 26 | @ Text-based Internet 27 | nc 28 | wget 29 | -------------------------------------------------------------------------------- /tests/tdl/test-16-signed-repository.tdl: -------------------------------------------------------------------------------- 1 | 26 | -------------------------------------------------------------------------------- /tests/tdl/test-17-repo-invalid-signed.tdl: -------------------------------------------------------------------------------- 1 | 26 | -------------------------------------------------------------------------------- /oz/auto/RHEL2.1.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | url --url REPLACE_ME 4 | keyboard us 5 | lang en_US.UTF-8 6 | langsupport --default en_US.UTF-8 en_US.UTF-8 7 | mouse generic3ps/2 --device psaux 8 | skipx 9 | network --device eth0 --bootproto dhcp 10 | rootpw %ROOTPW% 11 | firewall --disabled 12 | authconfig --enableshadow --enablemd5 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part / --fstype ext3 --size=1024 --grow --ondisk=hda 20 | part swap --size 768 --grow --maxsize=1536 --ondisk=hda 21 | reboot 22 | 23 | %packages 24 | @ Network Support 25 | @ Advanced Server 26 | compat-libstdc++ 27 | libpcap 28 | nc 29 | wget 30 | -------------------------------------------------------------------------------- /oz/auto/Fedora14.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200 rd_NO_PLYMOUTH" 13 | zerombr 14 | clearpart --all --drives=vda 15 | 16 | part /boot --fstype ext4 --size=200 --ondisk=vda 17 | part pv.2 --size=1 --grow --ondisk=vda 18 | volgroup VolGroup00 --pesize=32768 pv.2 19 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 20 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 21 | reboot 22 | 23 | %packages 24 | @base 25 | 26 | %end 27 | -------------------------------------------------------------------------------- /oz/auto/RHEL6.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | key --skip 4 | keyboard us 5 | lang en_US.UTF-8 6 | skipx 7 | network --device eth0 --bootproto dhcp 8 | rootpw %ROOTPW% 9 | firewall --disabled 10 | authconfig --enableshadow --enablemd5 11 | selinux --enforcing 12 | timezone --utc America/New_York 13 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 14 | zerombr yes 15 | clearpart --all 16 | 17 | part /boot --fstype ext4 --size=200 18 | part pv.2 --size=1 --grow 19 | volgroup VolGroup00 --pesize=32768 pv.2 20 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 21 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 22 | reboot 23 | 24 | %packages --nobase 25 | openssh-server 26 | openssh-clients 27 | 28 | %post 29 | -------------------------------------------------------------------------------- /oz/auto/RedHatLinux7.3.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | url --url REPLACE_ME 4 | keyboard us 5 | lang en_US.UTF-8 6 | langsupport --default en_US.UTF-8 en_US.UTF-8 7 | mouse generic3ps/2 --device psaux 8 | skipx 9 | network --device eth0 --bootproto dhcp 10 | rootpw %ROOTPW% 11 | firewall --disabled 12 | authconfig --enableshadow --enablemd5 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part / --fstype ext3 --size=1024 --grow --ondisk=hda 20 | part swap --size 768 --grow --maxsize=1536 --ondisk=hda 21 | reboot 22 | 23 | %packages 24 | @ Network Support 25 | @ Network Managed Workstation 26 | @ Utilities 27 | nc 28 | wget 29 | -------------------------------------------------------------------------------- /examples/f13i386.tdl: -------------------------------------------------------------------------------- 1 | 7 | 24 | -------------------------------------------------------------------------------- /examples/f18isoextradir.tdl: -------------------------------------------------------------------------------- 1 | 7 | 21 | -------------------------------------------------------------------------------- /examples/f18isoextrafile.tdl: -------------------------------------------------------------------------------- 1 | 7 | 21 | -------------------------------------------------------------------------------- /oz/auto/Fedora16.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr 14 | clearpart --all --drives=vda 15 | 16 | part biosboot --fstype=biosboot --size=1 17 | part /boot --fstype ext4 --size=200 --ondisk=vda 18 | part pv.2 --size=1 --grow --ondisk=vda 19 | volgroup VolGroup00 --pesize=32768 pv.2 20 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 21 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 22 | reboot 23 | 24 | %packages 25 | @base 26 | 27 | %end 28 | -------------------------------------------------------------------------------- /oz/auto/Fedora17.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr 14 | clearpart --all --drives=vda 15 | 16 | part biosboot --fstype=biosboot --size=1 17 | part /boot --fstype ext4 --size=200 --ondisk=vda 18 | part pv.2 --size=1 --grow --ondisk=vda 19 | volgroup VolGroup00 --pesize=32768 pv.2 20 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 21 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 22 | reboot 23 | 24 | %packages 25 | @base 26 | 27 | %end 28 | -------------------------------------------------------------------------------- /oz/auto/Fedora18.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr 14 | clearpart --all --drives=vda 15 | 16 | part biosboot --fstype=biosboot --size=1 17 | part /boot --fstype ext4 --size=200 --ondisk=vda 18 | part pv.2 --size=1 --grow --ondisk=vda 19 | volgroup VolGroup00 --pesize=32768 pv.2 20 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 21 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 22 | reboot 23 | 24 | %packages 25 | @core 26 | 27 | %end 28 | -------------------------------------------------------------------------------- /oz/auto/Fedora19.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr 14 | clearpart --all --drives=vda 15 | 16 | part biosboot --fstype=biosboot --size=1 17 | part /boot --fstype ext4 --size=200 --ondisk=vda 18 | part pv.2 --size=1 --grow --ondisk=vda 19 | volgroup VolGroup00 --pesize=32768 pv.2 20 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 21 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 22 | reboot 23 | 24 | %packages 25 | @core 26 | 27 | %end 28 | -------------------------------------------------------------------------------- /oz/auto/Fedora20.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | skipx 6 | network --device eth0 --bootproto dhcp 7 | rootpw %ROOTPW% 8 | firewall --disabled 9 | authconfig --enableshadow --enablemd5 10 | selinux --enforcing 11 | timezone --utc America/New_York 12 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 13 | zerombr 14 | clearpart --all --drives=vda 15 | 16 | part biosboot --fstype=biosboot --size=1 17 | part /boot --fstype ext4 --size=200 --ondisk=vda 18 | part pv.2 --size=1 --grow --ondisk=vda 19 | volgroup VolGroup00 --pesize=32768 pv.2 20 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 21 | logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 22 | reboot 23 | 24 | %packages 25 | @core 26 | 27 | %end 28 | -------------------------------------------------------------------------------- /oz/auto/FedoraCore1.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | langsupport --default en_US.UTF-8 en_US.UTF-8 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | authconfig --enableshadow --enablemd5 12 | timezone --utc America/New_York 13 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 14 | zerombr yes 15 | clearpart --all --drives=hda 16 | 17 | part /boot --fstype ext3 --size=200 --ondisk=hda 18 | part pv.2 --size=1 --grow --ondisk=hda 19 | volgroup VolGroup00 --pesize=32768 pv.2 20 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 21 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 22 | reboot 23 | 24 | %packages 25 | @base 26 | 27 | %post 28 | -------------------------------------------------------------------------------- /oz/auto/RHEL5.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | key --skip 4 | keyboard us 5 | lang en_US.UTF-8 6 | langsupport --default en_US.UTF-8 en_US.UTF-8 7 | mouse generic3ps/2 --device psaux 8 | skipx 9 | network --device eth0 --bootproto dhcp 10 | rootpw %ROOTPW% 11 | firewall --disabled 12 | authconfig --enableshadow --enablemd5 13 | selinux --enforcing 14 | timezone --utc America/New_York 15 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 16 | zerombr yes 17 | clearpart --all 18 | 19 | part /boot --fstype ext3 --size=200 20 | part pv.2 --size=1 --grow 21 | volgroup VolGroup00 --pesize=32768 pv.2 22 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 23 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 24 | reboot 25 | 26 | %packages 27 | @base 28 | 29 | %post 30 | -------------------------------------------------------------------------------- /oz/auto/RHEL4.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | langsupport --default en_US.UTF-8 en_US.UTF-8 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | authconfig --enableshadow --enablemd5 12 | selinux --enforcing 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all 17 | 18 | part /boot --fstype ext3 --size=200 19 | part pv.2 --size=1 --grow 20 | volgroup VolGroup00 --pesize=32768 pv.2 21 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 22 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 23 | reboot 24 | 25 | %packages 26 | @ admin-tools 27 | @ text-internet 28 | 29 | %post 30 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: oz 2 | Maintainer: Richard Jones 3 | Section: python 4 | Priority: optional 5 | Build-Depends: debhelper (>= 8.0.0), python-all (>= 2.6.6-3) 6 | Standards-Version: 3.9.4 7 | Homepage: http://github.com/clalancette/oz/wiki 8 | Vcs-Git: git://github.com/clalancette/oz.git 9 | X-Python-Version: >= 2.6 10 | 11 | Package: oz 12 | Architecture: all 13 | Depends: ${misc:Depends}, ${python:Depends}, 14 | python (>= 2.5), 15 | genisoimage, 16 | libvirt-dev (>= 0.9.7), 17 | mtools, 18 | openssh-client, 19 | python-guestfs, 20 | python-lxml, 21 | python-libvirt (>= 0.9.7), 22 | python-requests, 23 | python-cryptography, 24 | python-monotonic, 25 | Description: installing guest OSs with only minimal input the user 26 | Oz is a tool for automatically installing guest OSs with only minimal 27 | up-front input from the user. 28 | -------------------------------------------------------------------------------- /oz/auto/FedoraCore2.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | langsupport --default en_US.UTF-8 en_US.UTF-8 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | authconfig --enableshadow --enablemd5 12 | selinux --enforcing 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part pv.2 --size=1 --grow --ondisk=hda 20 | volgroup VolGroup00 --pesize=32768 pv.2 21 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 22 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 23 | reboot 24 | 25 | %packages 26 | @base 27 | 28 | %post 29 | -------------------------------------------------------------------------------- /oz/auto/FedoraCore3.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | langsupport --default en_US.UTF-8 en_US.UTF-8 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | authconfig --enableshadow --enablemd5 12 | selinux --enforcing 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part pv.2 --size=1 --grow --ondisk=hda 20 | volgroup VolGroup00 --pesize=32768 pv.2 21 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 22 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 23 | reboot 24 | 25 | %packages 26 | @base 27 | 28 | %post 29 | -------------------------------------------------------------------------------- /oz/auto/FedoraCore4.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | langsupport --default en_US.UTF-8 en_US.UTF-8 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | authconfig --enableshadow --enablemd5 12 | selinux --enforcing 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part pv.2 --size=1 --grow --ondisk=hda 20 | volgroup VolGroup00 --pesize=32768 pv.2 21 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 22 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 23 | reboot 24 | 25 | %packages 26 | @base 27 | 28 | %post 29 | -------------------------------------------------------------------------------- /oz/auto/FedoraCore5.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | langsupport --default en_US.UTF-8 en_US.UTF-8 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | authconfig --enableshadow --enablemd5 12 | selinux --enforcing 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part pv.2 --size=1 --grow --ondisk=hda 20 | volgroup VolGroup00 --pesize=32768 pv.2 21 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 22 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 23 | reboot 24 | 25 | %packages 26 | @base 27 | 28 | %post 29 | -------------------------------------------------------------------------------- /oz/auto/FedoraCore6.auto: -------------------------------------------------------------------------------- 1 | install 2 | text 3 | keyboard us 4 | lang en_US.UTF-8 5 | langsupport --default en_US.UTF-8 en_US.UTF-8 6 | mouse generic3ps/2 --device psaux 7 | skipx 8 | network --device eth0 --bootproto dhcp 9 | rootpw %ROOTPW% 10 | firewall --disabled 11 | authconfig --enableshadow --enablemd5 12 | selinux --enforcing 13 | timezone --utc America/New_York 14 | bootloader --location=mbr --append="console=tty0 console=ttyS0,115200" 15 | zerombr yes 16 | clearpart --all --drives=hda 17 | 18 | part /boot --fstype ext3 --size=200 --ondisk=hda 19 | part pv.2 --size=1 --grow --ondisk=hda 20 | volgroup VolGroup00 --pesize=32768 pv.2 21 | logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536 22 | logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow 23 | reboot 24 | 25 | %packages 26 | @base 27 | 28 | %post 29 | -------------------------------------------------------------------------------- /oz/auto/Windows2000.auto: -------------------------------------------------------------------------------- 1 | ;SetupMgrTag 2 | [Data] 3 | AutoPartition=1 4 | MsDosInitiated=No 5 | UnattendedInstall=Yes 6 | 7 | [Unattended] 8 | UnattendMode=FullUnattended 9 | OemSkipEula=Yes 10 | OemPreinstall=No 11 | TargetPath=\WINNT 12 | Repartition=Yes 13 | WaitForReboot="No" 14 | UnattendSwitch="Yes" 15 | 16 | [GuiUnattended] 17 | AdminPassword=%ROOTPW% 18 | AutoLogon=Yes 19 | AutoLogonCount=1 20 | OEMSkipRegional=1 21 | TimeZone=35 22 | OemSkipWelcome=1 23 | 24 | [UserData] 25 | ProductID= 26 | FullName="OZ" 27 | ComputerName= 28 | 29 | [Display] 30 | BitsPerPel=16 31 | Xresolution=640 32 | YResolution=480 33 | Vrefresh=60 34 | 35 | [RegionalSettings] 36 | LanguageGroup=1 37 | 38 | [Identification] 39 | JoinWorkgroup=WORKGROUP 40 | 41 | [Networking] 42 | InstallDefaultComponents=Yes 43 | -------------------------------------------------------------------------------- /Containerfile.tests.fedora: -------------------------------------------------------------------------------- 1 | # this container definition is intended *only* for running the oz test suite, it is not 2 | # a general-purpose oz container definition! 3 | 4 | FROM quay.io/fedora/fedora:latest 5 | RUN set -exo pipefail \ 6 | && dnf install -y --setopt install_weak_deps=false --nodocs \ 7 | python3-requests python3-cryptography python3-setuptools python3-libvirt python3-lxml python3-libguestfs python3-pytest python3-coverage python3-monotonic \ 8 | libvirt-daemon libvirt-daemon-kvm libvirt-daemon-qemu libvirt-daemon-config-network systemd \ 9 | && dnf clean all \ 10 | && rm -rf /var/cache/* /var/log/dnf* 11 | 12 | COPY ./ /oz 13 | RUN printf "#!/bin/sh\n/usr/sbin/libvirtd -d\ncd /oz\npython3 -m coverage run -m pytest -vv tests/\ncoverage xml\ncoverage report" > /usr/local/bin/runtests.sh && chmod ugo+x /usr/local/bin/runtests.sh 14 | CMD /usr/local/bin/runtests.sh 15 | -------------------------------------------------------------------------------- /examples/f18file.tdl: -------------------------------------------------------------------------------- 1 | 8 | 27 | -------------------------------------------------------------------------------- /oz/icicle.rng: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /oz/auto/Windows2003.auto: -------------------------------------------------------------------------------- 1 | ;SetupMgrTag 2 | [Data] 3 | AutoPartition=1 4 | MsDosInitiated="0" 5 | UnattendedInstall="Yes" 6 | 7 | [Unattended] 8 | UnattendMode=FullUnattended 9 | OemSkipEula=Yes 10 | OemPreinstall=No 11 | TargetPath=\WINDOWS 12 | Repartition=Yes 13 | WaitForReboot="No" 14 | UnattendSwitch="Yes" 15 | 16 | [GuiUnattended] 17 | AdminPassword="%ROOTPW%" 18 | EncryptedAdminPassword=NO 19 | AutoLogon=Yes 20 | AutoLogonCount=1 21 | OEMSkipRegional=1 22 | TimeZone=35 23 | OemSkipWelcome=1 24 | 25 | [UserData] 26 | ProductKey= 27 | FullName="OZ" 28 | OrgName="" 29 | ComputerName= 30 | 31 | [LicenseFilePrintData] 32 | AutoMode=PerServer 33 | AutoUsers=5 34 | 35 | [Identification] 36 | JoinWorkgroup=WORKGROUP 37 | 38 | [Networking] 39 | InstallDefaultComponents=Yes 40 | 41 | [SetupParams] 42 | UserExecute = "sc config TlntSvr start= auto" 43 | 44 | [WindowsFirewall] 45 | Profiles = WindowsFirewall.TurnOffFirewall 46 | 47 | [WindowsFirewall.TurnOffFirewall] 48 | Mode = 0 49 | -------------------------------------------------------------------------------- /oz/auto/WindowsXP.auto: -------------------------------------------------------------------------------- 1 | ;SetupMgrTag 2 | [Data] 3 | AutoPartition=1 4 | MsDosInitiated="0" 5 | UnattendedInstall="Yes" 6 | 7 | [Unattended] 8 | UnattendMode=FullUnattended 9 | OemSkipEula=Yes 10 | OemPreinstall=No 11 | TargetPath=\WINDOWS 12 | Repartition=Yes 13 | WaitForReboot="No" 14 | UnattendSwitch="Yes" 15 | 16 | [GuiUnattended] 17 | AdminPassword="%ROOTPW%" 18 | EncryptedAdminPassword=NO 19 | AutoLogon=Yes 20 | AutoLogonCount=1 21 | OEMSkipRegional=1 22 | TimeZone=35 23 | OemSkipWelcome=1 24 | 25 | [UserData] 26 | ProductKey= 27 | FullName="OZ" 28 | OrgName="" 29 | ComputerName= 30 | 31 | [LicenseFilePrintData] 32 | AutoMode=PerServer 33 | AutoUsers=5 34 | 35 | [Identification] 36 | JoinWorkgroup=WORKGROUP 37 | 38 | [Networking] 39 | InstallDefaultComponents=Yes 40 | 41 | [SetupParams] 42 | UserExecute = "sc config TlntSvr start= auto" 43 | 44 | [WindowsFirewall] 45 | Profiles = WindowsFirewall.TurnOffFirewall 46 | 47 | [WindowsFirewall.TurnOffFirewall] 48 | Mode = 0 49 | -------------------------------------------------------------------------------- /oz/OzException.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2011 Chris Lalancette 2 | # Copyright (C) 2012-2017 Chris Lalancette 3 | 4 | # This library is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU Lesser General Public 6 | # License as published by the Free Software Foundation; 7 | # version 2.1 of the License. 8 | 9 | # This library is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | # Lesser General Public License for more details. 13 | 14 | # You should have received a copy of the GNU Lesser General Public 15 | # License along with this library; if not, write to the Free Software 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | """ 19 | Exception class for Oz. 20 | """ 21 | 22 | 23 | class OzException(Exception): 24 | """ 25 | Class for Oz Exceptions. 26 | """ 27 | def __init__(self, msg): 28 | Exception.__init__(self, msg) 29 | -------------------------------------------------------------------------------- /oz/auto/FreeBSD10.0.auto: -------------------------------------------------------------------------------- 1 | # Install rules. 2 | PARTITIONS="vtbd0 { auto freebsd-ufs / }" 3 | BSDINSTALL_DISTSITE="http://mirror.leaseweb.net/freebsd/releases/amd64/10.0-RELEASE/" 4 | DISTRIBUTIONS="kernel.txz base.txz" 5 | 6 | # Post script. 7 | #!/bin/sh 8 | hostname=$(openssl rand -hex 4) 9 | echo "ifconfig_vtnet0=DHCP" >> /etc/rc.conf 10 | echo "sshd_enable=YES" >> /etc/rc.conf 11 | echo "hostname=$hostname" >> /etc/rc.conf 12 | echo "#ROOTPW#" | pw mod user root -h 0 13 | 14 | # Clean up any old dhclient stuff from the preparation stage. 15 | rm -f /var/db/dhclient.leases.* 16 | 17 | # The machine check fails pretty hard on a hypervisor running on top of AMD 18 | # processors, so just disable it. 19 | echo "hw.mca.enabled=0" >> /boot/loader.conf.local 20 | 21 | # Log kernel (boot) messages to console, so that they can be captured. 22 | echo 'console="vidconsole,comconsole"' >> /boot/loader.conf.local 23 | sed -i.bak -E "s/^(ttyu0.+)dialup(.+)off(.+)secure/\1 vt100 on secure/" /etc/ttys 24 | rm -f /etc/ttys.bak 25 | 26 | # The installer wants to reboot to the newly installed system, though at this 27 | # point we'd rather send the image to the cloud :) 28 | shutdown -p now 29 | -------------------------------------------------------------------------------- /oz/auto/FreeBSD11.0.auto: -------------------------------------------------------------------------------- 1 | # Install rules. 2 | PARTITIONS="vtbd0 { auto freebsd-ufs / }" 3 | BSDINSTALL_DISTSITE="http://mirror.leaseweb.net/freebsd/releases/amd64/11.0-RELEASE/" 4 | DISTRIBUTIONS="kernel.txz base.txz" 5 | 6 | # Post script. 7 | #!/bin/sh 8 | hostname=$(openssl rand -hex 4) 9 | echo "ifconfig_vtnet0=DHCP" >> /etc/rc.conf 10 | echo "sshd_enable=YES" >> /etc/rc.conf 11 | echo "hostname=$hostname" >> /etc/rc.conf 12 | echo "#ROOTPW#" | pw mod user root -h 0 13 | 14 | # Clean up any old dhclient stuff from the preparation stage. 15 | rm -f /var/db/dhclient.leases.* 16 | 17 | # The machine check fails pretty hard on a hypervisor running on top of AMD 18 | # processors, so just disable it. 19 | echo "hw.mca.enabled=0" >> /boot/loader.conf.local 20 | 21 | # Log kernel (boot) messages to console, so that they can be captured. 22 | echo 'console="vidconsole,comconsole"' >> /boot/loader.conf.local 23 | sed -i.bak -E "s/^(ttyu0.+)dialup(.+)off(.+)secure/\1 vt100 on secure/" /etc/ttys 24 | rm -f /etc/ttys.bak 25 | 26 | # The installer wants to reboot to the newly installed system, though at this 27 | # point we'd rather send the image to the cloud :) 28 | shutdown -p now 29 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_for_serial_final.xml: -------------------------------------------------------------------------------- 1 | 2 | tester 3 | 1048576 4 | 1048576 5 | %s 6 | 7 | 1 8 | 9 | 10 | 11 | 12 | 13 | 14 | hvm 15 | 16 | 17 | destroy 18 | destroy 19 | destroy 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu8.04.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | 19 | d-i passwd/root-login boolean true 20 | d-i passwd/make-user boolean false 21 | d-i passwd/root-password password %ROOTPW% 22 | d-i passwd/root-password-again password %ROOTPW% 23 | 24 | tasksel tasksel/first multiselect standard 25 | 26 | d-i grub-installer/only_debian boolean true 27 | d-i grub-installer/with_other_os boolean true 28 | 29 | d-i apt-setup/security_host string 30 | base-config apt-setup/security-updates boolean false 31 | 32 | ubiquity ubiquity/summary note 33 | ubiquity ubiquity/reboot boolean true 34 | 35 | d-i finish-install/reboot_in_progress note 36 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu8.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | 19 | d-i passwd/root-login boolean true 20 | d-i passwd/make-user boolean false 21 | d-i passwd/root-password password %ROOTPW% 22 | d-i passwd/root-password-again password %ROOTPW% 23 | 24 | tasksel tasksel/first multiselect standard 25 | 26 | d-i grub-installer/only_debian boolean true 27 | d-i grub-installer/with_other_os boolean true 28 | 29 | d-i apt-setup/security_host string 30 | base-config apt-setup/security-updates boolean false 31 | 32 | ubiquity ubiquity/summary note 33 | ubiquity ubiquity/reboot boolean true 34 | 35 | d-i finish-install/reboot_in_progress note 36 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu9.04.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | 19 | d-i passwd/root-login boolean true 20 | d-i passwd/make-user boolean false 21 | d-i passwd/root-password password %ROOTPW% 22 | d-i passwd/root-password-again password %ROOTPW% 23 | 24 | tasksel tasksel/first multiselect standard 25 | 26 | d-i grub-installer/only_debian boolean true 27 | d-i grub-installer/with_other_os boolean true 28 | 29 | d-i apt-setup/security_host string 30 | base-config apt-setup/security-updates boolean false 31 | 32 | ubiquity ubiquity/summary note 33 | ubiquity ubiquity/reboot boolean true 34 | 35 | d-i finish-install/reboot_in_progress note 36 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu9.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | 19 | d-i passwd/root-login boolean true 20 | d-i passwd/make-user boolean false 21 | d-i passwd/root-password password %ROOTPW% 22 | d-i passwd/root-password-again password %ROOTPW% 23 | 24 | tasksel tasksel/first multiselect standard 25 | 26 | d-i grub-installer/only_debian boolean true 27 | d-i grub-installer/with_other_os boolean true 28 | 29 | d-i apt-setup/security_host string 30 | base-config apt-setup/security-updates boolean false 31 | 32 | ubiquity ubiquity/summary note 33 | ubiquity ubiquity/reboot boolean true 34 | 35 | d-i finish-install/reboot_in_progress note 36 | -------------------------------------------------------------------------------- /oz/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Class for automated operating system installation. 3 | 4 | Oz is a set of classes to do automated operating system installation. It 5 | has built-in knowledge of the proper things to do for each of the supported 6 | operating systems, so the data that the user must provide is very minimal. 7 | This data is supplied in the form of an XML document that describes what 8 | type of operating system is to be installed and where to get the 9 | installation media. Oz handles the rest. 10 | 11 | The simplest Oz program (without error handling or any advanced features) 12 | would look something like: 13 | 14 | import oz.TDL 15 | import oz.GuestFactory 16 | 17 | tdl_xml = \"\"\" 18 | 30 | \"\"\" 31 | 32 | tdl = oz.TDL.TDL(tdl_xml) 33 | guest = oz.GuestFactory.guest_factory(tdl, None, None) 34 | guest.generate_install_media() 35 | guest.generate_diskimage() 36 | guest.install() 37 | """ 38 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu7.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | 19 | d-i passwd/root-login boolean true 20 | d-i passwd/make-user boolean false 21 | d-i passwd/root-password password %ROOTPW% 22 | d-i passwd/root-password-again password %ROOTPW% 23 | 24 | tasksel tasksel/first multiselect standard 25 | d-i mirror/http/proxy string 26 | 27 | d-i grub-installer/only_debian boolean true 28 | d-i grub-installer/with_other_os boolean true 29 | 30 | d-i apt-setup/security_host string 31 | base-config apt-setup/security-updates boolean false 32 | 33 | ubiquity ubiquity/summary note 34 | ubiquity ubiquity/reboot boolean true 35 | 36 | d-i finish-install/reboot_in_progress note 37 | -------------------------------------------------------------------------------- /Containerfile.tests.el8: -------------------------------------------------------------------------------- 1 | # this container definition is intended *only* for running the oz test suite, it is not 2 | # a general-purpose oz container definition! 3 | 4 | FROM quay.io/almalinuxorg/8-base:latest 5 | RUN set -exo pipefail \ 6 | && dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \ 7 | && dnf install -y --setopt install_weak_deps=false --nodocs \ 8 | python3-requests python3-cryptography python3-setuptools python3-libvirt python3-lxml python3-libguestfs python3-pytest python3-coverage python3-monotonic \ 9 | libvirt-daemon libvirt-daemon-kvm libvirt-daemon-driver-qemu libvirt-daemon-config-network systemd \ 10 | && dnf clean all \ 11 | && rm -rf /var/cache/* /var/log/dnf* 12 | 13 | COPY ./ /oz 14 | # the XML generation tests are inherently unreliable before Python 3.8, 15 | # as there was no consistent ordering of XML element attributes. See 16 | # https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring 17 | RUN printf "#!/bin/sh\n/usr/sbin/libvirtd -d\ncd /oz\npython3 -m pytest -vv -k 'not test_xml_generation and not modify_libvirt_xml_for_serial' tests/" > /usr/local/bin/runtests.sh && chmod ugo+x /usr/local/bin/runtests.sh 18 | CMD /usr/local/bin/runtests.sh 19 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_get_disks_and_interfaces_missing_disk_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_diskimage.xml: -------------------------------------------------------------------------------- 1 | 2 | tester 3 | 1048576 4 | 1048576 5 | %s 6 | 7 | 1 8 | 9 | 10 | 11 | 12 | 13 | 14 | hvm 15 | 16 | 17 | destroy 18 | destroy 19 | destroy 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_for_serial.xml: -------------------------------------------------------------------------------- 1 | 2 | tester 3 | 1048576 4 | 1048576 5 | %s 6 | 7 | 1 8 | 9 | 10 | 11 | 12 | 13 | 14 | hvm 15 | 16 | 17 | destroy 18 | destroy 19 | destroy 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu10.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | d-i partman/confirm_nooverwrite boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect standard 26 | 27 | d-i grub-installer/only_debian boolean true 28 | d-i grub-installer/with_other_os boolean true 29 | 30 | d-i apt-setup/security_host string 31 | base-config apt-setup/security-updates boolean false 32 | 33 | ubiquity ubiquity/summary note 34 | ubiquity ubiquity/reboot boolean true 35 | 36 | d-i finish-install/reboot_in_progress note 37 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_diskimage_final.xml: -------------------------------------------------------------------------------- 1 | 2 | tester 3 | 1048576 4 | 1048576 5 | %s 6 | 7 | 1 8 | 9 | 10 | 11 | 12 | 13 | 14 | hvm 15 | 16 | 17 | destroy 18 | destroy 19 | destroy 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_get_disks_and_interfaces_missing_interface_target.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_diskimage_missing_disk_source.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_get_disks_and_interfaces.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu6.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/disk string /dev/hda 14 | d-i partman-auto/method string regular 15 | d-i partman-auto/choose_recipe select Separate /home partition 16 | d-i partman/confirm_write_new_label boolean true 17 | d-i partman/choose_partition select Finish partitioning and write changes to disk 18 | d-i partman/confirm boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect ubuntu-standard, ubuntu-desktop 26 | d-i mirror/http/proxy string 27 | 28 | d-i grub-installer/only_debian boolean true 29 | d-i grub-installer/with_other_os boolean true 30 | 31 | d-i apt-setup/security_host string 32 | base-config apt-setup/security-updates boolean false 33 | 34 | d-i finish-install/reboot_in_progress note 35 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_get_disks_and_interfaces_missing_disk_target_device.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_get_disks_and_interfaces_missing_interface_target_device.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_for_serial_too_many_targets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu7.04.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/init_automatically_partition select Use the largest continuous free space 14 | d-i partman-auto/method string regular 15 | d-i partman-auto/choose_recipe select Separate /home partition 16 | d-i partman/confirm_write_new_label boolean true 17 | d-i partman/choose_partition select Finish partitioning and write changes to disk 18 | d-i partman/confirm boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect ubuntu-standard, ubuntu-desktop 26 | d-i mirror/http/proxy string 27 | 28 | d-i grub-installer/only_debian boolean true 29 | d-i grub-installer/with_other_os boolean true 30 | 31 | d-i apt-setup/security_host string 32 | base-config apt-setup/security-updates boolean false 33 | 34 | d-i finish-install/reboot_in_progress note 35 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_diskimage_too_many_drivers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu10.04.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | d-i partman/confirm_nooverwrite boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect standard 26 | d-i pkgsel/include/install-recommends boolean true 27 | d-i pkgsel/include string openssh-server 28 | 29 | d-i grub-installer/only_debian boolean true 30 | d-i grub-installer/with_other_os boolean true 31 | 32 | d-i apt-setup/security_host string 33 | base-config apt-setup/security-updates boolean false 34 | 35 | ubiquity ubiquity/summary note 36 | ubiquity ubiquity/reboot boolean true 37 | 38 | d-i finish-install/reboot_in_progress note 39 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu6.06.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/disk string /dev/hda 14 | d-i partman-auto/method string regular 15 | d-i partman-auto/choose_recipe select Separate /home partition 16 | d-i partman/confirm_write_new_label boolean true 17 | d-i partman/choose_partition select Finish partitioning and write changes to disk 18 | d-i partman/confirm boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | d-i pkgsel/install-language-support boolean false 26 | 27 | tasksel tasksel/first multiselect ubuntu-standard, ubuntu-desktop 28 | d-i mirror/http/proxy string 29 | 30 | d-i grub-installer/only_debian boolean true 31 | d-i grub-installer/with_other_os boolean true 32 | 33 | d-i apt-setup/security_host string 34 | base-config apt-setup/security-updates boolean false 35 | 36 | d-i finish-install/reboot_in_progress note 37 | d-i prebaseconfig/reboot_in_progress note 38 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_xml_generation_1.xml: -------------------------------------------------------------------------------- 1 | 2 | tester 3 | 2097152 4 | 2097152 5 | %s 6 | 7 | 1 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | /dev/random 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | This work was packaged for Debian by: 2 | 3 | Richard Jones on Thu, 22 Sep 2011 16:17:34 +0100 4 | 5 | It was downloaded from: 6 | 7 | http://aeolusproject.org/oz.html 8 | 9 | Upstream Author: 10 | 11 | Chris Lalancette 12 | 13 | Copyright: 14 | 15 | Copyright (C) 2010-2011 Chris Lalancette 16 | 17 | License: 18 | 19 | This library is free software; you can redistribute it and/or 20 | modify it under the terms of the GNU Lesser General Public 21 | License as published by the Free Software Foundation; 22 | version 2.1 of the License. 23 | 24 | This library is distributed in the hope that it will be useful, 25 | but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 27 | Lesser General Public License for more details. 28 | 29 | You should have received a copy of the GNU Lesser General Public 30 | License along with this library; if not, write to the Free Software 31 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 32 | USA 33 | 34 | On Debian systems, the complete text of the GNU General 35 | Public License version 2 can be found in "/usr/share/common-licenses/LGPL-2.1". 36 | 37 | The Debian packaging is: 38 | 39 | Copyright (C) 2011 Richard Jones 40 | 41 | and is licensed under the LGPL version 2.1 or later, see above. 42 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu5.04.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | base-config tzconfig/gmt boolean true 11 | base-config tzconfig/choose_country_zone/US select Eastern 12 | 13 | d-i partman-auto/disk string /dev/hda 14 | d-i partman-auto/method string regular 15 | d-i partman-auto/choose_recipe select Separate /home partition 16 | d-i partman/confirm_write_new_label boolean true 17 | d-i partman/choose_partition select Finish partitioning and write changes to disk 18 | d-i partman/confirm boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | d-i pkgsel/install-language-support boolean false 26 | 27 | tasksel tasksel/first multiselect ubuntu-standard, ubuntu-desktop 28 | d-i mirror/http/proxy string 29 | 30 | d-i grub-installer/only_debian boolean true 31 | d-i grub-installer/with_other_os boolean true 32 | 33 | d-i apt-setup/security_host string 34 | base-config apt-setup/security-updates boolean false 35 | 36 | d-i finish-install/reboot_in_progress note 37 | d-i prebaseconfig/reboot_in_progress note 38 | 39 | xserver-xorg xserver-xorg/config/display/modes select 1024x768 40 | base-config base-config/late_command string mv /etc/inittab.real /etc/inittab ; /sbin/shutdown -h now 41 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu5.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | base-config tzconfig/gmt boolean true 11 | base-config tzconfig/choose_country_zone/US select Eastern 12 | 13 | d-i partman-auto/disk string /dev/hda 14 | d-i partman-auto/method string regular 15 | d-i partman-auto/choose_recipe select Separate /home partition 16 | d-i partman/confirm_write_new_label boolean true 17 | d-i partman/choose_partition select Finish partitioning and write changes to disk 18 | d-i partman/confirm boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | d-i pkgsel/install-language-support boolean false 26 | 27 | tasksel tasksel/first multiselect ubuntu-standard, ubuntu-desktop 28 | d-i mirror/http/proxy string 29 | 30 | d-i grub-installer/only_debian boolean true 31 | d-i grub-installer/with_other_os boolean true 32 | 33 | d-i apt-setup/security_host string 34 | base-config apt-setup/security-updates boolean false 35 | 36 | d-i finish-install/reboot_in_progress note 37 | d-i prebaseconfig/reboot_in_progress note 38 | 39 | xserver-xorg xserver-xorg/config/display/modes select 1024x768 40 | base-config base-config/late_command string mv /etc/inittab.real /etc/inittab ; /sbin/shutdown -h now 41 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Run CI checks 3 | 4 | on: [pull_request] 5 | 6 | jobs: 7 | unittests-fedora: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Checkout the repo 11 | uses: actions/checkout@v4 12 | with: 13 | fetch-depth: 0 14 | - name: Install required packages 15 | run: sudo apt-get install make flake8 pylint 16 | # it's not in Ubuntu 22.04, was added in 23.04 17 | - name: Install diff-cover from pip 18 | run: pip install diff-cover 19 | - name: Run the tests 20 | run: sudo make container-unittests-fedora 21 | - name: Run diff-cover 22 | run: diff-cover coverage.xml --compare-branch=origin/$GITHUB_BASE_REF --fail-under=90 23 | - name: Run diff-quality (pylint) 24 | # we want to run this regardless of whether previous lint steps failed 25 | if: success() || failure() 26 | run: diff-quality --compare-branch=origin/$GITHUB_BASE_REF --violations=pylint --fail-under=90 27 | - name: Run diff-quality (flake8) 28 | # we want to run this regardless of whether previous lint steps failed 29 | if: success() || failure() 30 | run: diff-quality --compare-branch=origin/$GITHUB_BASE_REF --violations=flake8 --fail-under=90 31 | unittests-el8: 32 | runs-on: ubuntu-latest 33 | steps: 34 | - name: Checkout the repo 35 | uses: actions/checkout@v4 36 | with: 37 | fetch-depth: 0 38 | - name: Install make 39 | run: sudo apt-get install make 40 | - name: Run the tests 41 | run: sudo make container-unittests-el8 42 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_xml_generation_2.xml: -------------------------------------------------------------------------------- 1 | 2 | tester 3 | 2097152 4 | 2097152 5 | %s 6 | 7 | 1 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | kernel option 18 | initrd option 19 | command line 20 | 21 | destroy 22 | destroy 23 | destroy 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | /dev/random 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | oz (0.18.0-1) unstable; urgency=low 2 | 3 | * Update to Oz 0.18.0 4 | 5 | -- Peter Robinson Sat, 5 Feb 2022 13:32:00 -0000 6 | 7 | oz (0.17.0-1) unstable; urgency=low 8 | 9 | * Update to Oz 0.17.0 10 | 11 | -- Chris Lalancette Sat, 16 Mar 2019 14:37:00 -0500 12 | 13 | oz (0.16.0-1) unstable; urgency=low 14 | 15 | * Update to Oz 0.16.0 16 | 17 | -- Chris Lalancette Tue, 08 Aug 2017 14:37:00 -0500 18 | 19 | oz (0.15.0-1) unstable; urgency=low 20 | 21 | * Update to Oz 0.15.0 22 | 23 | -- Chris Lalancette Sun, 28 Feb 2016 14:37:00 -0500 24 | 25 | oz (0.14.0-1) unstable; urgency=low 26 | 27 | * Update to Oz 0.14.0 28 | 29 | -- Chris Lalancette Fri, 26 Jun 2015 14:37:00 -0500 30 | 31 | oz (0.13.0-1) unstable; urgency=low 32 | 33 | * Update to Oz 0.13.0 34 | 35 | -- Chris Lalancette Sat, 07 Mar 2015 17:46:00 -0500 36 | 37 | oz (0.12.0-1) unstable; urgency=low 38 | 39 | * Update to Oz 0.12.0 40 | 41 | -- Chris Lalancette Wed, 01 Jan 2014 17:46:00 -0500 42 | 43 | oz (0.11.0-1) unstable; urgency=low 44 | 45 | * Update to Oz 0.11.0 46 | 47 | -- Chris Lalancette Sun, 28 Jul 2013 15:48:00 -0500 48 | 49 | oz (0.10.0-1) unstable; urgency=low 50 | 51 | * Update to Oz 0.10.0 52 | 53 | -- Chris Lalancette Sat, 09 Mar 2013 08:37:00 -0500 54 | 55 | oz (0.9.0-1) unstable; urgency=low 56 | 57 | * Update to Oz 0.9.0 58 | 59 | -- Guilhem Lettron Tue, 21 Aug 2012 12:21:53 +0200 60 | 61 | oz (0.8.0-1) unstable; urgency=low 62 | 63 | * Update to Oz 0.8.0 64 | 65 | -- Chris Lalancette Thu, 21 May 2012 09:36:00 -0500 66 | 67 | oz (0.7.0-5) unstable; urgency=low 68 | 69 | * Initial Release. 70 | 71 | -- Richard Jones Thu, 22 Sep 2011 16:17:34 +0100 72 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Oz is a set of programs and classes to do automated installations of 2 | operating systems. It is useful for creating virtual machine disk 3 | images containing an operating systems and, optionally, programs. 4 | 5 | The best way to install it is to make an RPM out of it by running "make rpm" 6 | or "make srpm", and then installing the resulting RPM on the target machine. 7 | This will probably only work on Fedora or on RHEL 8 or later. 8 | 9 | Once you have the RPM installed, you will need to build up TDL files to feed 10 | as input into the building process. Please see the examples directory to get 11 | an idea of what a TDL file looks like. 12 | 13 | You can run the oz unit tests in containers by installing make and docker 14 | (or podman-docker), then running: 15 | 16 | make container-unittests 17 | 18 | You can clean up the containers and images by running: 19 | 20 | make container-clean 21 | 22 | Otherwise, you can try running the tests directly on your host, but oz uses the 23 | guestfs Python module, which is not available from pypi, and needs a running 24 | libvirtd for most of the tests to run. To install all the test requirements on 25 | Fedora: 26 | 27 | dnf install python3-requests python3-cryptography python3-libvirt python3-lxml python3-libguestfs python3-pytest python3-monotonic 28 | 29 | If you wish to test on EL 7, make that: 30 | 31 | yum install python-requests python-cryptography libvirt-python python-lxml python-libguestfs pytest python-monotonic python-mock 32 | 33 | then run the tests: 34 | 35 | py.test tests/ 36 | 37 | You can try `make virtualenv` then `make unittests` to run the tests in a 38 | virtualenv if you like, but this still requires at least the libguestfs library 39 | installed on the host, and a running libvirtd. You may also want to install 40 | cryptography and libvirt libraries on the host, as otherwise pip will have to 41 | compile them, and you'll need their build dependencies. 42 | 43 | You can use `make pylint` and `make flake8` to run lint checks. 44 | -------------------------------------------------------------------------------- /tests/guest/libvirt/test_modify_libvirt_xml_for_serial_too_many_devices.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | tester 4 | 1048576 5 | 1048576 6 | %s 7 | 8 | 1 9 | 10 | 11 | 12 | 13 | 14 | 15 | hvm 16 | 17 | 18 | destroy 19 | destroy 20 | destroy 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /oz/RHEL_2_1.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2010,2011 Chris Lalancette 2 | # Copyright (C) 2012-2017 Chris Lalancette 3 | 4 | # This library is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU Lesser General Public 6 | # License as published by the Free Software Foundation; 7 | # version 2.1 of the License. 8 | 9 | # This library is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | # Lesser General Public License for more details. 13 | 14 | # You should have received a copy of the GNU Lesser General Public 15 | # License along with this library; if not, write to the Free Software 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | """ 19 | RHEL-2.1 installation 20 | """ 21 | 22 | import oz.OzException 23 | import oz.RedHat 24 | 25 | versions = ["GOLD", "U2", "U3", "U4", "U5", "U6"] 26 | 27 | 28 | class RHEL21Guest(oz.RedHat.RedHatFDGuest): 29 | """ 30 | Class for RHEL-2.1 GOLD, U2, U3, U4, U5, and U6 installation. 31 | """ 32 | def __init__(self, tdl, config, auto, output_disk, netdev, diskbus, 33 | macaddress): 34 | oz.RedHat.RedHatFDGuest.__init__(self, tdl, config, auto, output_disk, 35 | netdev, diskbus, macaddress) 36 | 37 | def get_auto_path(self): 38 | """ 39 | Method to create the correct path to the RHEL 2.1 kickstart file. 40 | """ 41 | return oz.ozutil.generate_full_auto_path("RHEL2.1.auto") 42 | 43 | 44 | def get_class(tdl, config, auto, output_disk=None, netdev=None, diskbus=None, 45 | macaddress=None): 46 | """ 47 | Factory method for RHEL-2.1 installs. 48 | """ 49 | if tdl.update in versions: 50 | if netdev is None: 51 | netdev = 'pcnet' 52 | return RHEL21Guest(tdl, config, auto, output_disk, netdev, diskbus, 53 | macaddress) 54 | 55 | 56 | def get_supported_string(): 57 | """ 58 | Return supported versions as a string. 59 | """ 60 | return "RHEL 2.1: " + ", ".join(versions) 61 | -------------------------------------------------------------------------------- /tests/tdl/test-43-persisted-repos.tdl: -------------------------------------------------------------------------------- 1 | 65 | -------------------------------------------------------------------------------- /tests/guest/test.icicle: -------------------------------------------------------------------------------- 1 | 2 | Icicle Description 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /oz/RHEL_9.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2013-2017 Chris Lalancette 2 | # Copyright (C) 2013 Ian McLeod 3 | 4 | # This library is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU Lesser General Public 6 | # License as published by the Free Software Foundation; 7 | # version 2.1 of the License. 8 | 9 | # This library is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | # Lesser General Public License for more details. 13 | 14 | # You should have received a copy of the GNU Lesser General Public 15 | # License along with this library; if not, write to the Free Software 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | """ 19 | RHEL-9 installation 20 | """ 21 | 22 | import os 23 | 24 | import oz.OzException 25 | import oz.RHEL_8 26 | import oz.ozutil 27 | 28 | 29 | class RHEL9Guest(oz.RHEL_8.RHEL8Guest): 30 | """ 31 | Class for RHEL-9 installation 32 | """ 33 | def __init__(self, tdl, config, auto, output_disk=None, netdev=None, 34 | diskbus=None, macaddress=None): 35 | # dnf distro 36 | oz.RHEL_8.RHEL8Guest.__init__(self, tdl, config, auto, 37 | output_disk, netdev, diskbus, 38 | macaddress) 39 | 40 | # method and ks options were dropped 41 | self.cmdline = "inst.repo=" + self.url + " inst.ks=file:/ks.cfg" 42 | if self.tdl.kernel_param: 43 | self.cmdline += " " + self.tdl.kernel_param 44 | 45 | self.virtio_channel_name = 'org.fedoraproject.anaconda.log.0' 46 | 47 | def get_auto_path(self): 48 | """ 49 | Method to create the correct path to the RHEL 9 kickstart file. 50 | """ 51 | return oz.ozutil.generate_full_auto_path("RHEL9.auto") 52 | 53 | 54 | def get_class(tdl, config, auto, output_disk=None, netdev=None, diskbus=None, 55 | macaddress=None): 56 | """ 57 | Factory method for RHEL-9 installs. 58 | """ 59 | if tdl.update.isdigit(): 60 | if netdev is None: 61 | netdev = 'virtio' 62 | if diskbus is None: 63 | diskbus = 'virtio' 64 | return RHEL9Guest(tdl, config, auto, output_disk, netdev, diskbus, 65 | macaddress) 66 | 67 | 68 | def get_supported_string(): 69 | """ 70 | Return supported versions as a string. 71 | """ 72 | return "RHEL 9" 73 | -------------------------------------------------------------------------------- /oz/RHEL_6.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2010,2011 Chris Lalancette 2 | # Copyright (C) 2012-2017 Chris Lalancette 3 | 4 | # This library is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU Lesser General Public 6 | # License as published by the Free Software Foundation; 7 | # version 2.1 of the License. 8 | 9 | # This library is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | # Lesser General Public License for more details. 13 | 14 | # You should have received a copy of the GNU Lesser General Public 15 | # License along with this library; if not, write to the Free Software 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | """ 19 | RHEL-6 installation 20 | """ 21 | 22 | import os 23 | 24 | import oz.OzException 25 | import oz.RedHat 26 | import oz.ozutil 27 | 28 | 29 | class RHEL6Guest(oz.RedHat.RedHatLinuxCDYumGuest): 30 | """ 31 | Class for RHEL-6 installation 32 | """ 33 | def __init__(self, tdl, config, auto, output_disk=None, netdev=None, 34 | diskbus=None, macaddress=None): 35 | oz.RedHat.RedHatLinuxCDYumGuest.__init__(self, tdl, config, auto, 36 | output_disk, netdev, diskbus, 37 | True, True, "cpio", macaddress, 38 | True) 39 | 40 | def _modify_iso(self): 41 | """ 42 | Method to modify the ISO for autoinstallation. 43 | """ 44 | self._copy_kickstart(os.path.join(self.iso_contents, "ks.cfg")) 45 | 46 | initrdline = " append initrd=initrd.img ks=cdrom:/ks.cfg" 47 | if self.tdl.installtype == "url": 48 | initrdline += " repo=" + self.url 49 | self._modify_isolinux(initrdline) 50 | 51 | def get_auto_path(self): 52 | """ 53 | Method to create the correct path to the RHEL 6 kickstart files. 54 | """ 55 | return oz.ozutil.generate_full_auto_path("RHEL6.auto") 56 | 57 | 58 | def get_class(tdl, config, auto, output_disk=None, netdev=None, diskbus=None, 59 | macaddress=None): 60 | """ 61 | Factory method for RHEL-6 installs. 62 | """ 63 | if tdl.update.isdigit(): 64 | if netdev is None: 65 | netdev = 'virtio' 66 | if diskbus is None: 67 | diskbus = 'virtio' 68 | return RHEL6Guest(tdl, config, auto, output_disk, netdev, diskbus, 69 | macaddress) 70 | 71 | 72 | def get_supported_string(): 73 | """ 74 | Return supported versions as a string. 75 | """ 76 | return "RHEL/OL/CentOS/Scientific Linux{,CERN} 6" 77 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from distutils.core import setup, Command 2 | from distutils.command.sdist import sdist as _sdist 3 | import subprocess 4 | import time 5 | 6 | VERSION = '0.19.0' 7 | RELEASE = '0' 8 | 9 | datafiles = [('share/man/man1', ['man/oz-install.1', 'man/oz-generate-icicle.1', 10 | 'man/oz-customize.1', 11 | 'man/oz-cleanup-cache.1']), 12 | ('share/man/man5', ['man/oz-examples.5']) 13 | ] 14 | 15 | class sdist(_sdist): 16 | """ custom sdist command, to prep oz.spec file for inclusion """ 17 | 18 | def run(self): 19 | global VERSION 20 | global RELEASE 21 | 22 | # Create a development release string for later use 23 | git_head = subprocess.Popen("git log -1 --pretty=format:%h", 24 | shell=True, 25 | stdout=subprocess.PIPE).communicate()[0].strip() 26 | date = time.strftime("%Y%m%d%H%M%S", time.gmtime()) 27 | git_release = "%sgit%s" % (date, git_head.decode()) 28 | 29 | # Expand macros in oz.spec.in and create oz.spec 30 | spec_in = open('oz.spec.in', 'r') 31 | spec = open('oz.spec', 'w') 32 | for line in spec_in.readlines(): 33 | if "@VERSION@" in line: 34 | line = line.replace("@VERSION@", VERSION) 35 | elif "@RELEASE@" in line: 36 | # If development release, include date+githash in %{release} 37 | if RELEASE.startswith('0'): 38 | RELEASE += '.' + git_release 39 | line = line.replace("@RELEASE@", RELEASE) 40 | spec.write(line) 41 | spec_in.close() 42 | spec.close() 43 | 44 | # Run parent constructor 45 | _sdist.run(self) 46 | 47 | class pytest(Command): 48 | user_options = [] 49 | def initialize_options(self): pass 50 | def finalize_options(self): pass 51 | def run(self): 52 | try: 53 | errno = subprocess.call('py.test-3 tests --verbose --tb=short --junitxml=tests/results.xml'.split()) 54 | except OSError as e: 55 | if e.errno == 2: 56 | raise OSError(2, "No such file or directory: py.test") 57 | raise 58 | raise SystemExit(errno) 59 | 60 | setup(name='oz', 61 | version=VERSION, 62 | description='Oz automated installer', 63 | author='Chris Lalancette', 64 | author_email='clalancette@gmail.com', 65 | license='LGPLv2', 66 | url='http://github.com/clalancette/oz', 67 | package_dir={'oz': 'oz'}, 68 | package_data={'oz': ['auto/*', '*.rng']}, 69 | packages=['oz'], 70 | scripts=['oz-install', 'oz-generate-icicle', 'oz-customize', 71 | 'oz-cleanup-cache'], 72 | cmdclass={'sdist': sdist, 73 | 'test' : pytest }, 74 | data_files = datafiles, 75 | ) 76 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | VERSION = $(shell egrep "^VERSION" setup.py | awk '{print $$3}') 2 | VENV_DIR = tests/.venv 3 | 4 | sdist: oz.spec.in 5 | python3 setup.py sdist 6 | 7 | oz.spec: sdist 8 | 9 | signed-tarball: sdist 10 | gpg --detach-sign --armor -o dist/oz-$(VERSION).tar.gz.sign dist/oz-$(VERSION).tar.gz 11 | 12 | signed-rpm: oz.spec 13 | rpmbuild -ba oz.spec --sign --define "_sourcedir `pwd`/dist" 14 | 15 | rpm: oz.spec 16 | rpmbuild -ba oz.spec --define "_sourcedir `pwd`/dist" 17 | 18 | srpm: oz.spec 19 | rpmbuild -bs oz.spec --define "_sourcedir `pwd`/dist" 20 | 21 | deb: 22 | debuild -i -uc -us -b 23 | 24 | release: signed-rpm signed-tarball deb 25 | 26 | man2html: 27 | @for file in oz-install oz-customize oz-generate-icicle oz-cleanup-cache oz-examples; do \ 28 | echo "Generating $$file HTML page from man" ; \ 29 | groff -mandoc -mwww man/$$file.? -T html > man/$$file.html ; \ 30 | done 31 | 32 | $(VENV_DIR): 33 | @virtualenv --system-site-packages $(VENV_DIR) 34 | @pip-python -E $(VENV_DIR) install pytest 35 | @[[ "$$PWD" =~ \ |\' ]] && ( \ 36 | echo "Resolving potential problems where '$$PWD' contains spaces" ; \ 37 | for MATCH in $$(grep '^#!"/' $(VENV_DIR)/bin/* -l) ; do \ 38 | sed -i '1s|^#!".*/\([^/]*\)"|#!/usr/bin/env \1|' "$$MATCH" ; \ 39 | done ) || true 40 | 41 | virtualenv: $(VENV_DIR) 42 | 43 | unittests: 44 | @[ -f $(VENV_DIR)/bin/activate ] && source $(VENV_DIR)/bin/activate ; python3 setup.py test 45 | @(type deactivate 2>/dev/null | grep -q 'function') && deactivate || true 46 | 47 | tests: unittests 48 | 49 | container-unittests-fedora: 50 | docker rm -f oz-tests-fedora 51 | docker build -f Containerfile.tests.fedora -t oz-tests-fedora-image . 52 | docker run --name oz-tests-fedora oz-tests-fedora-image 53 | docker cp oz-tests-fedora:/oz/coverage.xml . 54 | 55 | container-unittests-el8: 56 | docker rm -f oz-tests-el8 57 | docker build -f Containerfile.tests.el8 -t oz-tests-el8-image . 58 | docker run --name oz-tests-el8 oz-tests-el8-image 59 | 60 | container-unittests: container-unittests-fedora container-unittests-el8 61 | 62 | test-coverage: 63 | python-coverage run --source oz /usr/bin/py.test --verbose tests 64 | python-coverage html 65 | xdg-open htmlcov/index.html 66 | 67 | pylint: 68 | pylint oz oz-install oz-customize oz-cleanup-cache oz-generate-icicle 69 | 70 | flake8: 71 | flake8 oz oz-install oz-customize oz-cleanup-cache oz-generate-icicle 72 | 73 | container-clean: 74 | docker rm -f oz-tests-fedora 75 | docker rm -f oz-tests-el8 76 | docker image rm -f -i oz-tests-fedora-image oz-tests-el8-image 77 | 78 | clean: 79 | rm -rf MANIFEST build dist usr *~ oz.spec *.pyc oz/*~ oz/*.pyc examples/*~ oz/auto/*~ man/*~ docs/*~ man/*.html $(VENV_DIR) tests/tdl/*~ tests/factory/*~ tests/results.xml htmlcov 80 | 81 | .PHONY: sdist oz.spec signed-tarball signed-rpm rpm srpm deb release man2html virtualenv unittests container-unittests-fedora container-unittests-el8 container-unittests tests test-coverage pylint clean container-clean 82 | -------------------------------------------------------------------------------- /oz/RHEL_7.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2013-2017 Chris Lalancette 2 | # Copyright (C) 2013 Ian McLeod 3 | 4 | # This library is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU Lesser General Public 6 | # License as published by the Free Software Foundation; 7 | # version 2.1 of the License. 8 | 9 | # This library is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | # Lesser General Public License for more details. 13 | 14 | # You should have received a copy of the GNU Lesser General Public 15 | # License along with this library; if not, write to the Free Software 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | """ 19 | RHEL-7 installation 20 | """ 21 | 22 | import os 23 | 24 | import oz.OzException 25 | import oz.RedHat 26 | import oz.ozutil 27 | 28 | 29 | class RHEL7Guest(oz.RedHat.RedHatLinuxCDYumGuest): 30 | """ 31 | Class for RHEL-7 installation 32 | """ 33 | def __init__(self, tdl, config, auto, output_disk=None, netdev=None, 34 | diskbus=None, macaddress=None): 35 | oz.RedHat.RedHatLinuxCDYumGuest.__init__(self, tdl, config, auto, 36 | output_disk, netdev, diskbus, 37 | True, True, "cpio", macaddress, 38 | True) 39 | self.virtio_channel_name = 'org.fedoraproject.anaconda.log.0' 40 | 41 | def _modify_iso(self): 42 | """ 43 | Method to modify the ISO for autoinstallation. 44 | """ 45 | self._copy_kickstart(os.path.join(self.iso_contents, "ks.cfg")) 46 | 47 | initrdline = " append initrd=initrd.img ks=cdrom:/dev/cdrom:/ks.cfg" 48 | if self.tdl.installtype == "url": 49 | initrdline += " repo=" + self.url 50 | else: 51 | # RHEL6 dropped this command line directive due to an Anaconda bug 52 | # that has since been fixed. Note that this used to be "method=" 53 | # but that has been deprecated for some time. 54 | initrdline += " repo=cdrom:/dev/cdrom" 55 | self._modify_isolinux(initrdline) 56 | 57 | def get_auto_path(self): 58 | """ 59 | Method to create the correct path to the RHEL 7 kickstart file. 60 | """ 61 | return oz.ozutil.generate_full_auto_path("RHEL7.auto") 62 | 63 | 64 | def get_class(tdl, config, auto, output_disk=None, netdev=None, diskbus=None, 65 | macaddress=None): 66 | """ 67 | Factory method for RHEL-7 installs. 68 | """ 69 | if tdl.update.isdigit(): 70 | if netdev is None: 71 | netdev = 'virtio' 72 | if diskbus is None: 73 | diskbus = 'virtio' 74 | return RHEL7Guest(tdl, config, auto, output_disk, netdev, diskbus, 75 | macaddress) 76 | 77 | 78 | def get_supported_string(): 79 | """ 80 | Return supported versions as a string. 81 | """ 82 | return "RHEL 7" 83 | -------------------------------------------------------------------------------- /oz/RHEL_8.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2013-2017 Chris Lalancette 2 | # Copyright (C) 2013 Ian McLeod 3 | 4 | # This library is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU Lesser General Public 6 | # License as published by the Free Software Foundation; 7 | # version 2.1 of the License. 8 | 9 | # This library is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | # Lesser General Public License for more details. 13 | 14 | # You should have received a copy of the GNU Lesser General Public 15 | # License along with this library; if not, write to the Free Software 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | """ 19 | RHEL-8 installation 20 | """ 21 | 22 | import os 23 | 24 | import oz.OzException 25 | import oz.RedHat 26 | import oz.ozutil 27 | 28 | 29 | class RHEL8Guest(oz.RedHat.RedHatLinuxCDYumGuest): 30 | """ 31 | Class for RHEL-8 installation 32 | """ 33 | def __init__(self, tdl, config, auto, output_disk=None, netdev=None, 34 | diskbus=None, macaddress=None): 35 | # dnf distro 36 | oz.RedHat.RedHatLinuxCDYumGuest.__init__(self, tdl, config, auto, 37 | output_disk, netdev, diskbus, 38 | True, True, "cpio", macaddress, 39 | False) 40 | self.virtio_channel_name = 'org.fedoraproject.anaconda.log.0' 41 | 42 | def _modify_iso(self): 43 | """ 44 | Method to modify the ISO for autoinstallation. 45 | """ 46 | self._copy_kickstart(os.path.join(self.iso_contents, "ks.cfg")) 47 | 48 | initrdline = " append initrd=initrd.img ks=cdrom:/dev/cdrom:/ks.cfg" 49 | if self.tdl.installtype == "url": 50 | initrdline += " repo=" + self.url 51 | else: 52 | # RHEL6 dropped this command line directive due to an Anaconda bug 53 | # that has since been fixed. Note that this used to be "method=" 54 | # but that has been deprecated for some time. 55 | initrdline += " repo=cdrom:/dev/cdrom" 56 | self._modify_isolinux(initrdline) 57 | 58 | def get_auto_path(self): 59 | """ 60 | Method to create the correct path to the RHEL 8 kickstart file. 61 | """ 62 | return oz.ozutil.generate_full_auto_path("RHEL8.auto") 63 | 64 | 65 | def get_class(tdl, config, auto, output_disk=None, netdev=None, diskbus=None, 66 | macaddress=None): 67 | """ 68 | Factory method for RHEL-8 installs. 69 | """ 70 | if tdl.update.isdigit(): 71 | if netdev is None: 72 | netdev = 'virtio' 73 | if diskbus is None: 74 | diskbus = 'virtio' 75 | return RHEL8Guest(tdl, config, auto, output_disk, netdev, diskbus, 76 | macaddress) 77 | 78 | 79 | def get_supported_string(): 80 | """ 81 | Return supported versions as a string. 82 | """ 83 | return "RHEL 8" 84 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu11.04.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | d-i partman/confirm_nooverwrite boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect standard 26 | d-i pkgsel/include/install-recommends boolean true 27 | d-i pkgsel/include string openssh-server 28 | 29 | d-i grub-installer/only_debian boolean true 30 | d-i grub-installer/with_other_os boolean true 31 | 32 | d-i apt-setup/security_host string 33 | base-config apt-setup/security-updates boolean false 34 | 35 | ubiquity ubiquity/summary note 36 | ubiquity ubiquity/reboot boolean true 37 | 38 | d-i finish-install/reboot_in_progress note 39 | 40 | # In Debian/Ubuntu, ssh keys are generated at package install time. Because 41 | # the disk image may be cached, we need to remove the ssh keys, but this means 42 | # that ssh'ing into the server won't work later. So we remove the keys, but 43 | # setup a service that will generate the keys on boot if necessary. 44 | d-i preseed/late_command string \ 45 | in-target rm -f /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub ; \ 46 | echo '#! /bin/sh' > /target/etc/init.d/oz-generate-ssh ; \ 47 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 48 | echo '# Debian/Ubuntu generate ssh host keys at package installation time.' >> /target/etc/init.d/oz-generate-ssh ; \ 49 | echo '# This is problematic for Oz, since the final disk image may be cached' >> /target/etc/init.d/oz-generate-ssh ; \ 50 | echo '# and reused, leading to duplicate host keys. To work around this, Oz' >> /target/etc/init.d/oz-generate-ssh ; \ 51 | echo '# deletes the SSH host keys at the end of installation. This solves' >> /target/etc/init.d/oz-generate-ssh ; \ 52 | echo '# the above problem, but introduces the problem of having no way to' >> /target/etc/init.d/oz-generate-ssh ; \ 53 | echo '# SSH into the machine without manual intervention. This service checks' >> /target/etc/init.d/oz-generate-ssh ; \ 54 | echo '# to see if host keys are already installed, and if not, recreates them.' >> /target/etc/init.d/oz-generate-ssh ; \ 55 | echo '# Note that after the very first boot, this service could be removed.' >> /target/etc/init.d/oz-generate-ssh ; \ 56 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 57 | echo 'case "$1" in' >> /target/etc/init.d/oz-generate-ssh ; \ 58 | echo ' start)' >> /target/etc/init.d/oz-generate-ssh ; \ 59 | echo ' [ -r /etc/ssh/ssh_host_rsa_key ] || /usr/sbin/dpkg-reconfigure openssh-server' >> /target/etc/init.d/oz-generate-ssh ; \ 60 | echo ' ;;' >> /target/etc/init.d/oz-generate-ssh ; \ 61 | echo 'esac' >> /target/etc/init.d/oz-generate-ssh ; \ 62 | echo 'exit 0' >> /target/etc/init.d/oz-generate-ssh ; \ 63 | in-target chmod 755 /etc/init.d/oz-generate-ssh ; \ 64 | in-target ln -s /etc/init.d/oz-generate-ssh /etc/rc2.d/S40oz-generate-ssh 65 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu11.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | d-i partman/confirm_nooverwrite boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect standard 26 | d-i pkgsel/include/install-recommends boolean true 27 | d-i pkgsel/include string openssh-server 28 | 29 | d-i grub-installer/only_debian boolean true 30 | d-i grub-installer/with_other_os boolean true 31 | 32 | d-i apt-setup/security_host string 33 | base-config apt-setup/security-updates boolean false 34 | 35 | ubiquity ubiquity/summary note 36 | ubiquity ubiquity/reboot boolean true 37 | 38 | d-i finish-install/reboot_in_progress note 39 | 40 | # In Debian/Ubuntu, ssh keys are generated at package install time. Because 41 | # the disk image may be cached, we need to remove the ssh keys, but this means 42 | # that ssh'ing into the server won't work later. So we remove the keys, but 43 | # setup a service that will generate the keys on boot if necessary. 44 | d-i preseed/late_command string \ 45 | in-target rm -f /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub ; \ 46 | echo '#! /bin/sh' > /target/etc/init.d/oz-generate-ssh ; \ 47 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 48 | echo '# Debian/Ubuntu generate ssh host keys at package installation time.' >> /target/etc/init.d/oz-generate-ssh ; \ 49 | echo '# This is problematic for Oz, since the final disk image may be cached' >> /target/etc/init.d/oz-generate-ssh ; \ 50 | echo '# and reused, leading to duplicate host keys. To work around this, Oz' >> /target/etc/init.d/oz-generate-ssh ; \ 51 | echo '# deletes the SSH host keys at the end of installation. This solves' >> /target/etc/init.d/oz-generate-ssh ; \ 52 | echo '# the above problem, but introduces the problem of having no way to' >> /target/etc/init.d/oz-generate-ssh ; \ 53 | echo '# SSH into the machine without manual intervention. This service checks' >> /target/etc/init.d/oz-generate-ssh ; \ 54 | echo '# to see if host keys are already installed, and if not, recreates them.' >> /target/etc/init.d/oz-generate-ssh ; \ 55 | echo '# Note that after the very first boot, this service could be removed.' >> /target/etc/init.d/oz-generate-ssh ; \ 56 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 57 | echo 'case "$1" in' >> /target/etc/init.d/oz-generate-ssh ; \ 58 | echo ' start)' >> /target/etc/init.d/oz-generate-ssh ; \ 59 | echo ' [ -r /etc/ssh/ssh_host_rsa_key ] || /usr/sbin/dpkg-reconfigure openssh-server' >> /target/etc/init.d/oz-generate-ssh ; \ 60 | echo ' ;;' >> /target/etc/init.d/oz-generate-ssh ; \ 61 | echo 'esac' >> /target/etc/init.d/oz-generate-ssh ; \ 62 | echo 'exit 0' >> /target/etc/init.d/oz-generate-ssh ; \ 63 | in-target chmod 755 /etc/init.d/oz-generate-ssh ; \ 64 | in-target ln -s /etc/init.d/oz-generate-ssh /etc/rc2.d/S40oz-generate-ssh 65 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu12.04.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | d-i partman/confirm_nooverwrite boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect standard 26 | d-i pkgsel/include/install-recommends boolean true 27 | d-i pkgsel/include string openssh-server 28 | 29 | d-i grub-installer/only_debian boolean true 30 | d-i grub-installer/with_other_os boolean true 31 | 32 | d-i apt-setup/security_host string 33 | base-config apt-setup/security-updates boolean false 34 | 35 | ubiquity ubiquity/summary note 36 | ubiquity ubiquity/reboot boolean true 37 | 38 | d-i finish-install/reboot_in_progress note 39 | 40 | # In Debian/Ubuntu, ssh keys are generated at package install time. Because 41 | # the disk image may be cached, we need to remove the ssh keys, but this means 42 | # that ssh'ing into the server won't work later. So we remove the keys, but 43 | # setup a service that will generate the keys on boot if necessary. 44 | d-i preseed/late_command string \ 45 | in-target rm -f /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub ; \ 46 | echo '#! /bin/sh' > /target/etc/init.d/oz-generate-ssh ; \ 47 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 48 | echo '# Debian/Ubuntu generate ssh host keys at package installation time.' >> /target/etc/init.d/oz-generate-ssh ; \ 49 | echo '# This is problematic for Oz, since the final disk image may be cached' >> /target/etc/init.d/oz-generate-ssh ; \ 50 | echo '# and reused, leading to duplicate host keys. To work around this, Oz' >> /target/etc/init.d/oz-generate-ssh ; \ 51 | echo '# deletes the SSH host keys at the end of installation. This solves' >> /target/etc/init.d/oz-generate-ssh ; \ 52 | echo '# the above problem, but introduces the problem of having no way to' >> /target/etc/init.d/oz-generate-ssh ; \ 53 | echo '# SSH into the machine without manual intervention. This service checks' >> /target/etc/init.d/oz-generate-ssh ; \ 54 | echo '# to see if host keys are already installed, and if not, recreates them.' >> /target/etc/init.d/oz-generate-ssh ; \ 55 | echo '# Note that after the very first boot, this service could be removed.' >> /target/etc/init.d/oz-generate-ssh ; \ 56 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 57 | echo 'case "$1" in' >> /target/etc/init.d/oz-generate-ssh ; \ 58 | echo ' start)' >> /target/etc/init.d/oz-generate-ssh ; \ 59 | echo ' [ -r /etc/ssh/ssh_host_rsa_key ] || /usr/sbin/dpkg-reconfigure openssh-server' >> /target/etc/init.d/oz-generate-ssh ; \ 60 | echo ' ;;' >> /target/etc/init.d/oz-generate-ssh ; \ 61 | echo 'esac' >> /target/etc/init.d/oz-generate-ssh ; \ 62 | echo 'exit 0' >> /target/etc/init.d/oz-generate-ssh ; \ 63 | in-target chmod 755 /etc/init.d/oz-generate-ssh ; \ 64 | in-target ln -s /etc/init.d/oz-generate-ssh /etc/rc2.d/S40oz-generate-ssh 65 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu12.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | d-i partman/confirm_nooverwrite boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect standard 26 | d-i pkgsel/include/install-recommends boolean true 27 | d-i pkgsel/include string openssh-server 28 | 29 | d-i grub-installer/only_debian boolean true 30 | d-i grub-installer/with_other_os boolean true 31 | 32 | d-i apt-setup/security_host string 33 | base-config apt-setup/security-updates boolean false 34 | 35 | ubiquity ubiquity/summary note 36 | ubiquity ubiquity/reboot boolean true 37 | 38 | d-i finish-install/reboot_in_progress note 39 | 40 | # In Debian/Ubuntu, ssh keys are generated at package install time. Because 41 | # the disk image may be cached, we need to remove the ssh keys, but this means 42 | # that ssh'ing into the server won't work later. So we remove the keys, but 43 | # setup a service that will generate the keys on boot if necessary. 44 | d-i preseed/late_command string \ 45 | in-target rm -f /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub ; \ 46 | echo '#! /bin/sh' > /target/etc/init.d/oz-generate-ssh ; \ 47 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 48 | echo '# Debian/Ubuntu generate ssh host keys at package installation time.' >> /target/etc/init.d/oz-generate-ssh ; \ 49 | echo '# This is problematic for Oz, since the final disk image may be cached' >> /target/etc/init.d/oz-generate-ssh ; \ 50 | echo '# and reused, leading to duplicate host keys. To work around this, Oz' >> /target/etc/init.d/oz-generate-ssh ; \ 51 | echo '# deletes the SSH host keys at the end of installation. This solves' >> /target/etc/init.d/oz-generate-ssh ; \ 52 | echo '# the above problem, but introduces the problem of having no way to' >> /target/etc/init.d/oz-generate-ssh ; \ 53 | echo '# SSH into the machine without manual intervention. This service checks' >> /target/etc/init.d/oz-generate-ssh ; \ 54 | echo '# to see if host keys are already installed, and if not, recreates them.' >> /target/etc/init.d/oz-generate-ssh ; \ 55 | echo '# Note that after the very first boot, this service could be removed.' >> /target/etc/init.d/oz-generate-ssh ; \ 56 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 57 | echo 'case "$1" in' >> /target/etc/init.d/oz-generate-ssh ; \ 58 | echo ' start)' >> /target/etc/init.d/oz-generate-ssh ; \ 59 | echo ' [ -r /etc/ssh/ssh_host_rsa_key ] || /usr/sbin/dpkg-reconfigure openssh-server' >> /target/etc/init.d/oz-generate-ssh ; \ 60 | echo ' ;;' >> /target/etc/init.d/oz-generate-ssh ; \ 61 | echo 'esac' >> /target/etc/init.d/oz-generate-ssh ; \ 62 | echo 'exit 0' >> /target/etc/init.d/oz-generate-ssh ; \ 63 | in-target chmod 755 /etc/init.d/oz-generate-ssh ; \ 64 | in-target ln -s /etc/init.d/oz-generate-ssh /etc/rc2.d/S40oz-generate-ssh 65 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu13.10.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | d-i partman/confirm_nooverwrite boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect standard 26 | d-i pkgsel/include/install-recommends boolean true 27 | d-i pkgsel/include string openssh-server 28 | 29 | d-i grub-installer/only_debian boolean true 30 | d-i grub-installer/with_other_os boolean true 31 | 32 | d-i apt-setup/security_host string 33 | base-config apt-setup/security-updates boolean false 34 | 35 | ubiquity ubiquity/summary note 36 | ubiquity ubiquity/reboot boolean true 37 | 38 | d-i finish-install/reboot_in_progress note 39 | 40 | # In Debian/Ubuntu, ssh keys are generated at package install time. Because 41 | # the disk image may be cached, we need to remove the ssh keys, but this means 42 | # that ssh'ing into the server won't work later. So we remove the keys, but 43 | # setup a service that will generate the keys on boot if necessary. 44 | d-i preseed/late_command string \ 45 | in-target rm -f /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub ; \ 46 | echo '#! /bin/sh' > /target/etc/init.d/oz-generate-ssh ; \ 47 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 48 | echo '# Debian/Ubuntu generate ssh host keys at package installation time.' >> /target/etc/init.d/oz-generate-ssh ; \ 49 | echo '# This is problematic for Oz, since the final disk image may be cached' >> /target/etc/init.d/oz-generate-ssh ; \ 50 | echo '# and reused, leading to duplicate host keys. To work around this, Oz' >> /target/etc/init.d/oz-generate-ssh ; \ 51 | echo '# deletes the SSH host keys at the end of installation. This solves' >> /target/etc/init.d/oz-generate-ssh ; \ 52 | echo '# the above problem, but introduces the problem of having no way to' >> /target/etc/init.d/oz-generate-ssh ; \ 53 | echo '# SSH into the machine without manual intervention. This service checks' >> /target/etc/init.d/oz-generate-ssh ; \ 54 | echo '# to see if host keys are already installed, and if not, recreates them.' >> /target/etc/init.d/oz-generate-ssh ; \ 55 | echo '# Note that after the very first boot, this service could be removed.' >> /target/etc/init.d/oz-generate-ssh ; \ 56 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 57 | echo 'case "$1" in' >> /target/etc/init.d/oz-generate-ssh ; \ 58 | echo ' start)' >> /target/etc/init.d/oz-generate-ssh ; \ 59 | echo ' [ -r /etc/ssh/ssh_host_rsa_key ] || /usr/sbin/dpkg-reconfigure openssh-server' >> /target/etc/init.d/oz-generate-ssh ; \ 60 | echo ' ;;' >> /target/etc/init.d/oz-generate-ssh ; \ 61 | echo 'esac' >> /target/etc/init.d/oz-generate-ssh ; \ 62 | echo 'exit 0' >> /target/etc/init.d/oz-generate-ssh ; \ 63 | in-target chmod 755 /etc/init.d/oz-generate-ssh ; \ 64 | in-target ln -s /etc/init.d/oz-generate-ssh /etc/rc2.d/S40oz-generate-ssh 65 | -------------------------------------------------------------------------------- /oz/auto/Windows2008.auto: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | OnError 7 | 8 | 9 | 10 | 1 11 | 1 12 | Primary 13 | 14 | 15 | 0 16 | true 17 | 18 | 19 | true 20 | true 21 | NTFS 22 | 23 | C 24 | 1 25 | 1 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | /IMAGE/INDEX 35 | 1 36 | 37 | 38 | 39 | 0 40 | 1 41 | 42 | OnError 43 | 44 | 45 | 46 | true 47 | 48 | 49 | 50 | 51 | en-US 52 | 53 | en-US 54 | en-US 55 | en-US 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | true</PlainText> 64 | </AdministratorPassword> 65 | </UserAccounts> 66 | <AutoLogon> 67 | <Password> 68 | <Value></Value> 69 | <PlainText>true</PlainText> 70 | </Password> 71 | <Enabled>true</Enabled> 72 | <LogonCount>5</LogonCount> 73 | <Username>Administrator</Username> 74 | </AutoLogon> 75 | <RegisteredOwner/> 76 | <OOBE> 77 | <HideEULAPage>true</HideEULAPage> 78 | <ProtectYourPC>3</ProtectYourPC> 79 | </OOBE> 80 | <FirstLogonCommands> 81 | <SynchronousCommand wcm:action="add"> 82 | <Order>1</Order> 83 | <Description>Shutting down Windows</Description> 84 | <CommandLine>cmd /C shutdown /s /t 0</CommandLine> 85 | </SynchronousCommand> 86 | </FirstLogonCommands> 87 | </component> 88 | </settings> 89 | <settings pass="specialize"> 90 | <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 91 | <ProductKey></ProductKey> 92 | </component> 93 | </settings> 94 | </unattend> 95 | -------------------------------------------------------------------------------- /oz/auto/Windows2012.auto: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <unattend xmlns="urn:schemas-microsoft-com:unattend"> 3 | <settings pass="windowsPE"> 4 | <component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 5 | <DiskConfiguration> 6 | <WillShowUI>OnError</WillShowUI> 7 | <Disk> 8 | <CreatePartitions> 9 | <CreatePartition> 10 | <Order>1</Order> 11 | <Size>1</Size> 12 | <Type>Primary</Type> 13 | </CreatePartition> 14 | </CreatePartitions> 15 | <DiskID>0</DiskID> 16 | <WillWipeDisk>true</WillWipeDisk> 17 | <ModifyPartitions> 18 | <ModifyPartition> 19 | <Active>true</Active> 20 | <Extend>true</Extend> 21 | <Format>NTFS</Format> 22 | <Label>C drive</Label> 23 | <Letter>C</Letter> 24 | <Order>1</Order> 25 | <PartitionID>1</PartitionID> 26 | </ModifyPartition> 27 | </ModifyPartitions> 28 | </Disk> 29 | </DiskConfiguration> 30 | <ImageInstall> 31 | <OSImage> 32 | <InstallFrom> 33 | <MetaData wcm:action="add"> 34 | <Key>/IMAGE/INDEX</Key> 35 | <Value>1</Value> 36 | </MetaData> 37 | </InstallFrom> 38 | <InstallTo> 39 | <DiskID>0</DiskID> 40 | <PartitionID>1</PartitionID> 41 | </InstallTo> 42 | <WillShowUI>OnError</WillShowUI> 43 | </OSImage> 44 | </ImageInstall> 45 | <UserData> 46 | <AcceptEula>true</AcceptEula> 47 | </UserData> 48 | </component> 49 | <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 50 | <SetupUILanguage> 51 | <UILanguage>en-US</UILanguage> 52 | </SetupUILanguage> 53 | <SystemLocale>en-US</SystemLocale> 54 | <UILanguage>en-US</UILanguage> 55 | <UserLocale>en-US</UserLocale> 56 | </component> 57 | </settings> 58 | <settings pass="oobeSystem"> 59 | <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 60 | <UserAccounts> 61 | <AdministratorPassword> 62 | <Value></Value> 63 | <PlainText>true</PlainText> 64 | </AdministratorPassword> 65 | </UserAccounts> 66 | <AutoLogon> 67 | <Password> 68 | <Value></Value> 69 | <PlainText>true</PlainText> 70 | </Password> 71 | <Enabled>true</Enabled> 72 | <LogonCount>5</LogonCount> 73 | <Username>Administrator</Username> 74 | </AutoLogon> 75 | <RegisteredOwner/> 76 | <OOBE> 77 | <HideEULAPage>true</HideEULAPage> 78 | <ProtectYourPC>3</ProtectYourPC> 79 | </OOBE> 80 | <FirstLogonCommands> 81 | <SynchronousCommand wcm:action="add"> 82 | <Order>1</Order> 83 | <Description>Shutting down Windows</Description> 84 | <CommandLine>cmd /C shutdown /s /t 0</CommandLine> 85 | </SynchronousCommand> 86 | </FirstLogonCommands> 87 | </component> 88 | </settings> 89 | <settings pass="specialize"> 90 | <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 91 | <ProductKey></ProductKey> 92 | </component> 93 | </settings> 94 | </unattend> 95 | -------------------------------------------------------------------------------- /oz/auto/Windows2016.auto: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <unattend xmlns="urn:schemas-microsoft-com:unattend"> 3 | <settings pass="windowsPE"> 4 | <component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 5 | <DiskConfiguration> 6 | <WillShowUI>OnError</WillShowUI> 7 | <Disk> 8 | <CreatePartitions> 9 | <CreatePartition> 10 | <Order>1</Order> 11 | <Size>1</Size> 12 | <Type>Primary</Type> 13 | </CreatePartition> 14 | </CreatePartitions> 15 | <DiskID>0</DiskID> 16 | <WillWipeDisk>true</WillWipeDisk> 17 | <ModifyPartitions> 18 | <ModifyPartition> 19 | <Active>true</Active> 20 | <Extend>true</Extend> 21 | <Format>NTFS</Format> 22 | <Label>C drive</Label> 23 | <Letter>C</Letter> 24 | <Order>1</Order> 25 | <PartitionID>1</PartitionID> 26 | </ModifyPartition> 27 | </ModifyPartitions> 28 | </Disk> 29 | </DiskConfiguration> 30 | <ImageInstall> 31 | <OSImage> 32 | <InstallFrom> 33 | <MetaData wcm:action="add"> 34 | <Key>/IMAGE/INDEX</Key> 35 | <Value>1</Value> 36 | </MetaData> 37 | </InstallFrom> 38 | <InstallTo> 39 | <DiskID>0</DiskID> 40 | <PartitionID>1</PartitionID> 41 | </InstallTo> 42 | <WillShowUI>OnError</WillShowUI> 43 | </OSImage> 44 | </ImageInstall> 45 | <UserData> 46 | <AcceptEula>true</AcceptEula> 47 | </UserData> 48 | </component> 49 | <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 50 | <SetupUILanguage> 51 | <UILanguage>en-US</UILanguage> 52 | </SetupUILanguage> 53 | <SystemLocale>en-US</SystemLocale> 54 | <UILanguage>en-US</UILanguage> 55 | <UserLocale>en-US</UserLocale> 56 | </component> 57 | </settings> 58 | <settings pass="oobeSystem"> 59 | <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 60 | <UserAccounts> 61 | <AdministratorPassword> 62 | <Value></Value> 63 | <PlainText>true</PlainText> 64 | </AdministratorPassword> 65 | </UserAccounts> 66 | <AutoLogon> 67 | <Password> 68 | <Value></Value> 69 | <PlainText>true</PlainText> 70 | </Password> 71 | <Enabled>true</Enabled> 72 | <LogonCount>5</LogonCount> 73 | <Username>Administrator</Username> 74 | </AutoLogon> 75 | <RegisteredOwner/> 76 | <OOBE> 77 | <HideEULAPage>true</HideEULAPage> 78 | <ProtectYourPC>3</ProtectYourPC> 79 | </OOBE> 80 | <FirstLogonCommands> 81 | <SynchronousCommand wcm:action="add"> 82 | <Order>1</Order> 83 | <Description>Shutting down Windows</Description> 84 | <CommandLine>cmd /C shutdown /s /t 0</CommandLine> 85 | </SynchronousCommand> 86 | </FirstLogonCommands> 87 | </component> 88 | </settings> 89 | <settings pass="specialize"> 90 | <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 91 | <ProductKey></ProductKey> 92 | </component> 93 | </settings> 94 | </unattend> 95 | -------------------------------------------------------------------------------- /oz/auto/Ubuntu13.04.auto: -------------------------------------------------------------------------------- 1 | d-i debian-installer/locale string en_US 2 | d-i console-setup/ask_detect boolean false 3 | d-i console-setup/layoutcode string us 4 | 5 | d-i netcfg/choose_interface select auto 6 | d-i netcfg/get_hostname string unassigned-hostname 7 | d-i netcfg/get_domain string unassigned-domain 8 | d-i netcfg/wireless_wep string 9 | 10 | d-i clock-setup/utc boolean true 11 | d-i time/zone string US/Eastern 12 | 13 | d-i partman-auto/method string regular 14 | d-i partman-auto/choose_recipe select home 15 | d-i partman/confirm_write_new_label boolean true 16 | d-i partman/choose_partition select finish 17 | d-i partman/confirm boolean true 18 | d-i partman/confirm_nooverwrite boolean true 19 | 20 | d-i passwd/root-login boolean true 21 | d-i passwd/make-user boolean false 22 | d-i passwd/root-password password %ROOTPW% 23 | d-i passwd/root-password-again password %ROOTPW% 24 | 25 | tasksel tasksel/first multiselect standard 26 | d-i pkgsel/include/install-recommends boolean true 27 | d-i pkgsel/include string openssh-server 28 | 29 | d-i grub-installer/only_debian boolean true 30 | d-i grub-installer/with_other_os boolean true 31 | 32 | d-i apt-setup/security_host string 33 | base-config apt-setup/security-updates boolean false 34 | 35 | ubiquity ubiquity/summary note 36 | ubiquity ubiquity/reboot boolean true 37 | 38 | d-i finish-install/reboot_in_progress note 39 | 40 | # workaround for 13.04 casper bug (Desktop build only) 41 | ubiquity ubiquity/success_command string sed -i 's/eject -p -m.*/&; [ "$prompt" ] || return 0/' /etc/init.d/casper 42 | 43 | # In Debian/Ubuntu, ssh keys are generated at package install time. Because 44 | # the disk image may be cached, we need to remove the ssh keys, but this means 45 | # that ssh'ing into the server won't work later. So we remove the keys, but 46 | # setup a service that will generate the keys on boot if necessary. 47 | d-i preseed/late_command string \ 48 | in-target rm -f /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key.pub ; \ 49 | echo '#! /bin/sh' > /target/etc/init.d/oz-generate-ssh ; \ 50 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 51 | echo '# Debian/Ubuntu generate ssh host keys at package installation time.' >> /target/etc/init.d/oz-generate-ssh ; \ 52 | echo '# This is problematic for Oz, since the final disk image may be cached' >> /target/etc/init.d/oz-generate-ssh ; \ 53 | echo '# and reused, leading to duplicate host keys. To work around this, Oz' >> /target/etc/init.d/oz-generate-ssh ; \ 54 | echo '# deletes the SSH host keys at the end of installation. This solves' >> /target/etc/init.d/oz-generate-ssh ; \ 55 | echo '# the above problem, but introduces the problem of having no way to' >> /target/etc/init.d/oz-generate-ssh ; \ 56 | echo '# SSH into the machine without manual intervention. This service checks' >> /target/etc/init.d/oz-generate-ssh ; \ 57 | echo '# to see if host keys are already installed, and if not, recreates them.' >> /target/etc/init.d/oz-generate-ssh ; \ 58 | echo '# Note that after the very first boot, this service could be removed.' >> /target/etc/init.d/oz-generate-ssh ; \ 59 | echo '#' >> /target/etc/init.d/oz-generate-ssh ; \ 60 | echo 'case "$1" in' >> /target/etc/init.d/oz-generate-ssh ; \ 61 | echo ' start)' >> /target/etc/init.d/oz-generate-ssh ; \ 62 | echo ' [ -r /etc/ssh/ssh_host_rsa_key ] || /usr/sbin/dpkg-reconfigure openssh-server' >> /target/etc/init.d/oz-generate-ssh ; \ 63 | echo ' ;;' >> /target/etc/init.d/oz-generate-ssh ; \ 64 | echo 'esac' >> /target/etc/init.d/oz-generate-ssh ; \ 65 | echo 'exit 0' >> /target/etc/init.d/oz-generate-ssh ; \ 66 | in-target chmod 755 /etc/init.d/oz-generate-ssh ; \ 67 | in-target ln -s /etc/init.d/oz-generate-ssh /etc/rc2.d/S40oz-generate-ssh ; \ 68 | echo "GRUB_TERMINAL=console" >> /target/etc/default/grub ; \ 69 | in-target /usr/sbin/update-grub 70 | -------------------------------------------------------------------------------- /oz/FedoraCore.py: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2010,2011 Chris Lalancette <clalance@redhat.com> 2 | # Copyright (C) 2012-2018 Chris Lalancette <clalancette@gmail.com> 3 | 4 | # This library is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU Lesser General Public 6 | # License as published by the Free Software Foundation; 7 | # version 2.1 of the License. 8 | 9 | # This library is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | # Lesser General Public License for more details. 13 | 14 | # You should have received a copy of the GNU Lesser General Public 15 | # License along with this library; if not, write to the Free Software 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 | 18 | """ 19 | Fedora Core installation 20 | """ 21 | 22 | import os 23 | 24 | import oz.OzException 25 | import oz.RedHat 26 | import oz.ozutil 27 | 28 | 29 | class FedoraCoreConfiguration(object): 30 | """ 31 | Configuration class for Fedora Core installation. 32 | """ 33 | def __init__(self, initrdtype): 34 | self._initrdtype = initrdtype 35 | 36 | @property 37 | def initrdtype(self): 38 | """ 39 | Property method for the type of initrd this version of Fedora uses 40 | ('cpio' or 'ext2'). 41 | """ 42 | return self._initrdtype 43 | 44 | 45 | version_to_config = { 46 | '6': FedoraCoreConfiguration(initrdtype='cpio'), 47 | '5': FedoraCoreConfiguration(initrdtype='cpio'), 48 | '4': FedoraCoreConfiguration(initrdtype='cpio'), 49 | '3': FedoraCoreConfiguration(initrdtype='ext2'), 50 | '2': FedoraCoreConfiguration(initrdtype='ext2'), 51 | '1': FedoraCoreConfiguration(initrdtype='ext2'), 52 | } 53 | 54 | 55 | class FedoraCoreGuest(oz.RedHat.RedHatLinuxCDGuest): 56 | """ 57 | Class for Fedora Core 1, 2, 3, 4, 5, and 6 installation. 58 | """ 59 | def __init__(self, tdl, config, auto, output_disk, netdev, diskbus, 60 | macaddress): 61 | self.config = version_to_config[tdl.update] 62 | oz.RedHat.RedHatLinuxCDGuest.__init__(self, tdl, config, auto, 63 | output_disk, netdev, diskbus, 64 | True, True, self.config.initrdtype, 65 | macaddress) 66 | 67 | # FIXME: if doing an ISO install, we have to check that the ISO passed 68 | # in is the DVD, not the CD (since we can't change disks midway) 69 | 70 | def _modify_iso(self): 71 | """ 72 | Method to modify the ISO for autoinstallation. 73 | """ 74 | self._copy_kickstart(os.path.join(self.iso_contents, "ks.cfg")) 75 | 76 | initrdline = " append initrd=initrd.img ks=cdrom:/ks.cfg method=" 77 | if self.tdl.installtype == "url": 78 | initrdline += self.url 79 | else: 80 | initrdline += "cdrom:/dev/cdrom" 81 | self._modify_isolinux(initrdline) 82 | 83 | def get_auto_path(self): 84 | """ 85 | Method to create the correct path to the Fedora Core kickstart files. 86 | """ 87 | return oz.ozutil.generate_full_auto_path("FedoraCore" + self.tdl.update + ".auto") 88 | 89 | 90 | def get_class(tdl, config, auto, output_disk=None, netdev=None, diskbus=None, 91 | macaddress=None): 92 | """ 93 | Factory method for Fedora Core installs. 94 | """ 95 | if tdl.update in version_to_config.keys(): 96 | return FedoraCoreGuest(tdl, config, auto, output_disk, netdev, diskbus, 97 | macaddress) 98 | 99 | 100 | def get_supported_string(): 101 | """ 102 | Return supported versions as a string. 103 | """ 104 | return "Fedora Core: " + ", ".join(sorted(version_to_config.keys())) 105 | -------------------------------------------------------------------------------- /oz/auto/Mageia2.auto: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -cw 2 | # 3 | # You should check the syntax of this file before using it in an auto-install. 4 | # You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file 5 | # (note the '#!/usr/bin/perl -cw' on the first line). 6 | $o = { 7 | 'autoExitInstall' => '1', 8 | 'interactiveSteps' => [], 9 | 'no_suggests' => 1, 10 | 'mkbootdisk' => 0, 11 | 'isUpgrade' => 0, 12 | 'excludedocs' => 1, 13 | 'minimal' => 1, 14 | 'miscellaneous' => { 15 | 'numlock' => 1, 16 | }, 17 | 18 | 'netc' => { 19 | 'ZEROCONF_HOSTNAME' => undef, 20 | 'NETWORKING' => 'yes', 21 | 'NET_DEVICE' => 'eth0', 22 | 'DHCP' => 'yes' 23 | }, 24 | 'locale' => { 25 | 'lang' => 'en_US', 26 | 'country' => 'US', 27 | 'utf8' => 1, 28 | 'langs' => { 29 | 'en_US' => 1 30 | } 31 | }, 32 | 'mkbootdisk' => 0, 33 | 'partitions' => [ 34 | { 35 | 'size' => 12273597, 36 | 'mntpoint' => '/', 37 | 'type' => 1155, 38 | 'fs_type' => 'ext4' 39 | }, 40 | { 41 | 'size' => 1012032, 42 | 'mntpoint' => 'swap', 43 | 'type' => 130, 44 | 'fs_type' => 'swap' 45 | }, 46 | { 47 | 'size' => 1024, 48 | 'ratio' => 100, 49 | 'mntpoint' => '/home', 50 | 'type' => 1155, 51 | 'fs_type' => 'ext4' 52 | } 53 | ], 54 | 'printer' => { 55 | 'MANUALCUPSCONFIG' => undef, 56 | 'BROWSEPOLLPORT' => undef, 57 | 'BROWSEPOLLADDR' => undef, 58 | 'SPOOLER' => undef, 59 | 'configured' => {}, 60 | 'DEFAULT' => undef 61 | }, 62 | 'intf' => { 63 | 'eth0' => { 64 | 'BROADCAST' => '', 65 | 'ONBOOT' => 'yes', 66 | 'BOOTPROTO' => 'dhcp', 67 | 'DEVICE' => 'eth0', 68 | 'NETMASK' => '255.255.255.0', 69 | 'NETWORK' => '' 70 | } 71 | }, 72 | 'authentication' => { 73 | 'shadow' => 1, 74 | 'md5' => 1, 75 | 'local' => undef 76 | }, 77 | 'partitioning' => { 78 | 'auto_allocate' => '1', 79 | 'clearall' => '1', 80 | 'eraseBadPartitions' => 0 81 | }, 82 | 'users' => [{ 83 | 'icon' => 'default', 84 | 'realname' => 'user', 85 | 'uid' => undef, 86 | 'groups' => [], 87 | 'name' => 'user', 88 | 'shell' => '/bin/bash', 89 | 'password' => %ROOTPW%, 90 | 'gid' => undef 91 | }], 92 | 'security' => 2, 93 | 'X' => { disabled => 1 }, 94 | 'skipped_packages' => [ 'xdm', 'shorewall', 95 | 'shorewall-core', 'mageia-gfxboot-theme'], 96 | 'default_packages' => [ 97 | 'basesystem-minimal', 98 | 'urpmi', 99 | 'sudo', 100 | 'openssh-client', 101 | 'openssh-server', 'vim-minimal' 102 | ], 103 | 'superuser' => { 104 | 'home' => '/root', 105 | 'shell' => '/bin/bash', 106 | 'realname' => 'root', 107 | 'password' => %ROOTPW%, 108 | 'uid' => '0', 109 | 'gid' => '0' 110 | }, 111 | 'manualFstab' => [], 112 | 'libsafe' => 0, 113 | 'useSupermount' => '0', 114 | 'timezone' => { 115 | 'UTC' => 1, 116 | 'ntp' => undef, 117 | 'timezone' => 'America/New_York' 118 | }, 119 | 'netcnx' => { 120 | 'lan' => {}, 121 | 'type' => 'lan' 122 | }, 123 | 'keyboard' => { 124 | 'unsafe' => 1, 125 | 'GRP_TOGGLE' => '', 126 | 'KEYBOARD' => 'us', 127 | 'KBCHARSET' => 'C' 128 | }, 129 | 'security_user' => '', 130 | 'mouse' => { 131 | 'MOUSETYPE' => 'ps/2', 132 | 'device' => 'psaux', 133 | 'name' => 'Standard', 134 | 'nbuttons' => 2, 135 | 'type' => 'PS/2', 136 | 'XMOUSETYPE' => 'PS/2', 137 | 'EMULATEWHEEL' => undef 138 | } 139 | }; 140 | -------------------------------------------------------------------------------- /oz/auto/Mageia3.auto: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -cw 2 | # 3 | # You should check the syntax of this file before using it in an auto-install. 4 | # You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file 5 | # (note the '#!/usr/bin/perl -cw' on the first line). 6 | $o = { 7 | 'autoExitInstall' => '1', 8 | 'interactiveSteps' => [], 9 | 'no_suggests' => 1, 10 | 'mkbootdisk' => 0, 11 | 'isUpgrade' => 0, 12 | 'excludedocs' => 1, 13 | 'minimal' => 1, 14 | 'miscellaneous' => { 15 | 'numlock' => 1, 16 | }, 17 | 18 | 'netc' => { 19 | 'ZEROCONF_HOSTNAME' => undef, 20 | 'NETWORKING' => 'yes', 21 | 'NET_DEVICE' => 'eth0', 22 | 'DHCP' => 'yes' 23 | }, 24 | 'locale' => { 25 | 'lang' => 'en_US', 26 | 'country' => 'US', 27 | 'utf8' => 1, 28 | 'langs' => { 29 | 'en_US' => 1 30 | } 31 | }, 32 | 'mkbootdisk' => 0, 33 | 'partitions' => [ 34 | { 35 | 'size' => 12273597, 36 | 'mntpoint' => '/', 37 | 'type' => 1155, 38 | 'fs_type' => 'ext4' 39 | }, 40 | { 41 | 'size' => 1012032, 42 | 'mntpoint' => 'swap', 43 | 'type' => 130, 44 | 'fs_type' => 'swap' 45 | }, 46 | { 47 | 'size' => 1024, 48 | 'ratio' => 100, 49 | 'mntpoint' => '/home', 50 | 'type' => 1155, 51 | 'fs_type' => 'ext4' 52 | } 53 | ], 54 | 'printer' => { 55 | 'MANUALCUPSCONFIG' => undef, 56 | 'BROWSEPOLLPORT' => undef, 57 | 'BROWSEPOLLADDR' => undef, 58 | 'SPOOLER' => undef, 59 | 'configured' => {}, 60 | 'DEFAULT' => undef 61 | }, 62 | 'intf' => { 63 | 'eth0' => { 64 | 'BROADCAST' => '', 65 | 'ONBOOT' => 'yes', 66 | 'BOOTPROTO' => 'dhcp', 67 | 'DEVICE' => 'eth0', 68 | 'NETMASK' => '255.255.255.0', 69 | 'NETWORK' => '' 70 | } 71 | }, 72 | 'authentication' => { 73 | 'shadow' => 1, 74 | 'md5' => 1, 75 | 'local' => undef 76 | }, 77 | 'partitioning' => { 78 | 'auto_allocate' => '1', 79 | 'clearall' => '1', 80 | 'eraseBadPartitions' => 0 81 | }, 82 | 'users' => [{ 83 | 'icon' => 'default', 84 | 'realname' => 'user', 85 | 'uid' => undef, 86 | 'groups' => [], 87 | 'name' => 'user', 88 | 'shell' => '/bin/bash', 89 | 'password' => %ROOTPW%, 90 | 'gid' => undef 91 | }], 92 | 'security' => 2, 93 | 'X' => { disabled => 1 }, 94 | 'skipped_packages' => [ 'xdm', 'shorewall', 95 | 'shorewall-core', 'mageia-gfxboot-theme'], 96 | 'default_packages' => [ 97 | 'basesystem-minimal', 98 | 'urpmi', 99 | 'sudo', 100 | 'openssh-client', 101 | 'openssh-server', 'vim-minimal' 102 | ], 103 | 'superuser' => { 104 | 'home' => '/root', 105 | 'shell' => '/bin/bash', 106 | 'realname' => 'root', 107 | 'password' => %ROOTPW%, 108 | 'uid' => '0', 109 | 'gid' => '0' 110 | }, 111 | 'manualFstab' => [], 112 | 'libsafe' => 0, 113 | 'useSupermount' => '0', 114 | 'timezone' => { 115 | 'UTC' => 1, 116 | 'ntp' => undef, 117 | 'timezone' => 'America/New_York' 118 | }, 119 | 'netcnx' => { 120 | 'lan' => {}, 121 | 'type' => 'lan' 122 | }, 123 | 'keyboard' => { 124 | 'unsafe' => 1, 125 | 'GRP_TOGGLE' => '', 126 | 'KEYBOARD' => 'us', 127 | 'KBCHARSET' => 'C' 128 | }, 129 | 'security_user' => '', 130 | 'mouse' => { 131 | 'MOUSETYPE' => 'ps/2', 132 | 'device' => 'psaux', 133 | 'name' => 'Standard', 134 | 'nbuttons' => 2, 135 | 'type' => 'PS/2', 136 | 'XMOUSETYPE' => 'PS/2', 137 | 'EMULATEWHEEL' => undef 138 | } 139 | }; 140 | -------------------------------------------------------------------------------- /oz/auto/Mageia4.auto: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -cw 2 | # 3 | # You should check the syntax of this file before using it in an auto-install. 4 | # You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file 5 | # (note the '#!/usr/bin/perl -cw' on the first line). 6 | $o = { 7 | 'autoExitInstall' => '1', 8 | 'interactiveSteps' => [], 9 | 'no_suggests' => 1, 10 | 'mkbootdisk' => 0, 11 | 'isUpgrade' => 0, 12 | 'excludedocs' => 1, 13 | 'minimal' => 1, 14 | 'miscellaneous' => { 15 | 'numlock' => 1, 16 | }, 17 | 18 | 'netc' => { 19 | 'ZEROCONF_HOSTNAME' => undef, 20 | 'NETWORKING' => 'yes', 21 | 'NET_DEVICE' => 'eth0', 22 | 'DHCP' => 'yes' 23 | }, 24 | 'locale' => { 25 | 'lang' => 'en_US', 26 | 'country' => 'US', 27 | 'utf8' => 1, 28 | 'langs' => { 29 | 'en_US' => 1 30 | } 31 | }, 32 | 'mkbootdisk' => 0, 33 | 'partitions' => [ 34 | { 35 | 'size' => 12273597, 36 | 'mntpoint' => '/', 37 | 'type' => 1155, 38 | 'fs_type' => 'ext4' 39 | }, 40 | { 41 | 'size' => 1012032, 42 | 'mntpoint' => 'swap', 43 | 'type' => 130, 44 | 'fs_type' => 'swap' 45 | }, 46 | { 47 | 'size' => 1024, 48 | 'ratio' => 100, 49 | 'mntpoint' => '/home', 50 | 'type' => 1155, 51 | 'fs_type' => 'ext4' 52 | } 53 | ], 54 | 'printer' => { 55 | 'MANUALCUPSCONFIG' => undef, 56 | 'BROWSEPOLLPORT' => undef, 57 | 'BROWSEPOLLADDR' => undef, 58 | 'SPOOLER' => undef, 59 | 'configured' => {}, 60 | 'DEFAULT' => undef 61 | }, 62 | 'intf' => { 63 | 'eth0' => { 64 | 'BROADCAST' => '', 65 | 'ONBOOT' => 'yes', 66 | 'BOOTPROTO' => 'dhcp', 67 | 'DEVICE' => 'eth0', 68 | 'NETMASK' => '255.255.255.0', 69 | 'NETWORK' => '' 70 | } 71 | }, 72 | 'authentication' => { 73 | 'shadow' => 1, 74 | 'md5' => 1, 75 | 'local' => undef 76 | }, 77 | 'partitioning' => { 78 | 'auto_allocate' => '1', 79 | 'clearall' => '1', 80 | 'eraseBadPartitions' => 0 81 | }, 82 | 'users' => [{ 83 | 'icon' => 'default', 84 | 'realname' => 'user', 85 | 'uid' => undef, 86 | 'groups' => [], 87 | 'name' => 'user', 88 | 'shell' => '/bin/bash', 89 | 'password' => %ROOTPW%, 90 | 'gid' => undef 91 | }], 92 | 'security' => 2, 93 | 'X' => { disabled => 1 }, 94 | 'skipped_packages' => [ 'xdm', 'shorewall', 95 | 'shorewall-core', 'mageia-gfxboot-theme'], 96 | 'default_packages' => [ 97 | 'basesystem-minimal', 98 | 'urpmi', 99 | 'sudo', 100 | 'openssh-client', 101 | 'openssh-server', 'vim-minimal' 102 | ], 103 | 'superuser' => { 104 | 'home' => '/root', 105 | 'shell' => '/bin/bash', 106 | 'realname' => 'root', 107 | 'password' => %ROOTPW%, 108 | 'uid' => '0', 109 | 'gid' => '0' 110 | }, 111 | 'manualFstab' => [], 112 | 'libsafe' => 0, 113 | 'useSupermount' => '0', 114 | 'timezone' => { 115 | 'UTC' => 1, 116 | 'ntp' => undef, 117 | 'timezone' => 'America/New_York' 118 | }, 119 | 'netcnx' => { 120 | 'lan' => {}, 121 | 'type' => 'lan' 122 | }, 123 | 'keyboard' => { 124 | 'unsafe' => 1, 125 | 'GRP_TOGGLE' => '', 126 | 'KEYBOARD' => 'us', 127 | 'KBCHARSET' => 'C' 128 | }, 129 | 'security_user' => '', 130 | 'mouse' => { 131 | 'MOUSETYPE' => 'ps/2', 132 | 'device' => 'psaux', 133 | 'name' => 'Standard', 134 | 'nbuttons' => 2, 135 | 'type' => 'PS/2', 136 | 'XMOUSETYPE' => 'PS/2', 137 | 'EMULATEWHEEL' => undef 138 | } 139 | }; 140 | -------------------------------------------------------------------------------- /oz/auto/Mageia5.auto: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -cw 2 | # 3 | # You should check the syntax of this file before using it in an auto-install. 4 | # You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file 5 | # (note the '#!/usr/bin/perl -cw' on the first line). 6 | $o = { 7 | 'autoExitInstall' => '1', 8 | 'interactiveSteps' => [], 9 | 'no_suggests' => 1, 10 | 'mkbootdisk' => 0, 11 | 'isUpgrade' => 0, 12 | 'excludedocs' => 1, 13 | 'minimal' => 1, 14 | 'miscellaneous' => { 15 | 'numlock' => 1, 16 | }, 17 | 18 | 'netc' => { 19 | 'ZEROCONF_HOSTNAME' => undef, 20 | 'NETWORKING' => 'yes', 21 | 'NET_DEVICE' => 'eth0', 22 | 'DHCP' => 'yes' 23 | }, 24 | 'locale' => { 25 | 'lang' => 'en_US', 26 | 'country' => 'US', 27 | 'utf8' => 1, 28 | 'langs' => { 29 | 'en_US' => 1 30 | } 31 | }, 32 | 'mkbootdisk' => 0, 33 | 'partitions' => [ 34 | { 35 | 'size' => 12273597, 36 | 'mntpoint' => '/', 37 | 'type' => 1155, 38 | 'fs_type' => 'ext4' 39 | }, 40 | { 41 | 'size' => 1012032, 42 | 'mntpoint' => 'swap', 43 | 'type' => 130, 44 | 'fs_type' => 'swap' 45 | }, 46 | { 47 | 'size' => 1024, 48 | 'ratio' => 100, 49 | 'mntpoint' => '/home', 50 | 'type' => 1155, 51 | 'fs_type' => 'ext4' 52 | } 53 | ], 54 | 'printer' => { 55 | 'MANUALCUPSCONFIG' => undef, 56 | 'BROWSEPOLLPORT' => undef, 57 | 'BROWSEPOLLADDR' => undef, 58 | 'SPOOLER' => undef, 59 | 'configured' => {}, 60 | 'DEFAULT' => undef 61 | }, 62 | 'intf' => { 63 | 'eth0' => { 64 | 'BROADCAST' => '', 65 | 'ONBOOT' => 'yes', 66 | 'BOOTPROTO' => 'dhcp', 67 | 'DEVICE' => 'eth0', 68 | 'NETMASK' => '255.255.255.0', 69 | 'NETWORK' => '' 70 | } 71 | }, 72 | 'authentication' => { 73 | 'shadow' => 1, 74 | 'md5' => 1, 75 | 'local' => undef 76 | }, 77 | 'partitioning' => { 78 | 'auto_allocate' => '1', 79 | 'clearall' => '1', 80 | 'eraseBadPartitions' => 0 81 | }, 82 | 'users' => [{ 83 | 'icon' => 'default', 84 | 'realname' => 'user', 85 | 'uid' => undef, 86 | 'groups' => [], 87 | 'name' => 'user', 88 | 'shell' => '/bin/bash', 89 | 'password' => %ROOTPW%, 90 | 'gid' => undef 91 | }], 92 | 'security' => 2, 93 | 'X' => { disabled => 1 }, 94 | 'skipped_packages' => [ 'xdm', 'shorewall', 95 | 'shorewall-core', 'mageia-gfxboot-theme'], 96 | 'default_packages' => [ 97 | 'basesystem-minimal', 98 | 'urpmi', 99 | 'sudo', 100 | 'openssh-client', 101 | 'openssh-server', 'vim-minimal' 102 | ], 103 | 'superuser' => { 104 | 'home' => '/root', 105 | 'shell' => '/bin/bash', 106 | 'realname' => 'root', 107 | 'password' => %ROOTPW%, 108 | 'uid' => '0', 109 | 'gid' => '0' 110 | }, 111 | 'manualFstab' => [], 112 | 'libsafe' => 0, 113 | 'useSupermount' => '0', 114 | 'timezone' => { 115 | 'UTC' => 1, 116 | 'ntp' => undef, 117 | 'timezone' => 'America/New_York' 118 | }, 119 | 'netcnx' => { 120 | 'lan' => {}, 121 | 'type' => 'lan' 122 | }, 123 | 'keyboard' => { 124 | 'unsafe' => 1, 125 | 'GRP_TOGGLE' => '', 126 | 'KEYBOARD' => 'us', 127 | 'KBCHARSET' => 'C' 128 | }, 129 | 'security_user' => '', 130 | 'mouse' => { 131 | 'MOUSETYPE' => 'ps/2', 132 | 'device' => 'psaux', 133 | 'name' => 'Standard', 134 | 'nbuttons' => 2, 135 | 'type' => 'PS/2', 136 | 'XMOUSETYPE' => 'PS/2', 137 | 'EMULATEWHEEL' => undef 138 | } 139 | }; 140 | --------------------------------------------------------------------------------