Index: release/Makefile.vm =================================================================== --- release/Makefile.vm +++ release/Makefile.vm @@ -19,6 +19,7 @@ CLOUDWARE?= BASIC-CI \ EC2 \ GCE \ + OCI \ VAGRANT-VIRTUALBOX \ VAGRANT-VMWARE AZURE_FORMAT= vhdf @@ -33,6 +34,9 @@ GCE_FORMAT= raw GCE_DESC= Google Compute Engine image GCE_DISK= disk.${GCE_FORMAT} +OCI_FORMAT= qcow2 +OCI_DESC= Oracle Cloud Infrastructure image +OCI_DISK= disk.${OCI_FORMAT} OPENSTACK_FORMAT=qcow2 OPENSTACK_DESC= OpenStack platform image OPENSTACK_DISK= ${OSRELEASE}.${OPENSTACK_FORMAT} @@ -177,4 +181,6 @@ .include "${.CURDIR}/Makefile.ec2" .include "${.CURDIR}/Makefile.azure" .include "${.CURDIR}/Makefile.gce" +# TODO write one of these when we have figured out upload +# .include "${.CURDIR}/Makefile.oci" .include "${.CURDIR}/Makefile.vagrant" Index: release/release.conf.sample =================================================================== --- release/release.conf.sample +++ release/release.conf.sample @@ -113,4 +113,4 @@ ## If WITH_CLOUDWARE is set to a non-empty value, this is a list of providers ## to create disk images. -#CLOUDWARE="EC2 GCE VAGRANT-VIRTUALBOX VAGRANT-VMWARE" +#CLOUDWARE="EC2 GCE OCI VAGRANT-VIRTUALBOX VAGRANT-VMWARE" Index: release/tools/oci.conf =================================================================== --- /dev/null +++ release/tools/oci.conf @@ -0,0 +1,86 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# # Set to a list of packages to install. +# TODO MFH devel/oci-cli and dependencies or use latest for packages +export VM_EXTRA_PACKAGES=" + comms/py-pyserial + converters/base64 + devel/py-babel + devel/py-iso8601 + devel/py-oci + devel/py-pbr + devel/py-six + ftp/curl + lang/python + lang/python3 + net/cloud-init + net/py-eventlet + net/py-netaddr + net/py-netifaces + net/py-oauth + net/rsync + panicmail + security/ca_root_nss + security/sudo + sysutils/firstboot-freebsd-update + sysutils/firstboot-pkgs + sysutils/panicmail + sysutils/tmux + textproc/jq + " + +# Should be enough for base image, image can be resized in needed +export VMSIZE=5g + +# Set to a list of third-party software to enable in rc.conf(5). +# TODO add cloudinit after finishing testing +export VM_RC_LIST=" + cloudinit + firstboot_pkgs + firstboot_freebsd_update + growfs + ntpd + ntpd_sync_on_start + sshd + zfs" + +vm_extra_pre_umount() { + cat << EOF >> ${DESTDIR}/etc/rc.conf +dumpdev=AUTO +sendmail_enable=NONE +# TODO may not be required for cloudinit +ifconfig_DEFAULT=SYNCDHCP +kldlist="${kldlist} virtio_random virtio_console virtio_balloon" +EOF + + cat << EOF >> ${DESTDIR}/boot/loader.conf +autoboot_delay="5" +beastie_disable="YES" +boot_serial="YES" +loader_logo="none" +# ensure disk devices are found by label not partition +# kern.geom.label.disk_ident.enable="0" +# kern.geom.label.gptid.enable="0" +# storage +cryptodev_load="YES" +opensolaris_load="YES" +xz_load="YES" +zfs_load="YES" +EOF + + cat <> ${DESTDIR}/etc/ssh/sshd_config +PermitRootLogin prohibit-password +PasswordAuthentication no +KbdInteractiveAuthentication no +PermitEmptyPasswords no +UsePAM no +UseDNS no +EOF + + touch ${DESTDIR}/firstboot + + return 0 +}