Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note
titleDon't follow these instructions

There is a script which does all of this and more automatically:

https://github.com/avalonmediasystem/avalon-installer/blob/master/bin/build-ova.sh

 

 

packer#usage



These are the instructions for creating an end-user VM from scratch.

...

Note

There is a bug in VirtualBox with IPv6 handling over a bridged network.  When the bug is present the top transfer speeds for IPv6 are around 18kb/s.  Since RHEL (and derivatives) prefer IPv6 when looking up hosts, it is not uncommon to get an IPv6 host address for updates.  To disable IPv6 on the guest add these lines to /etc/sysctl.conf.  VirtualBox 4.2.12 was supposed to fix it but I'm not sure it has.

Code Block
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

 


Avalon Install

  • OPTIONAL:
    • clone the baseOS image as puppet-YYMMDD
  • Use the installation notes from Manual Installation of Avalon Using Puppet
    • When setting FACTER_* environment variables, set
      • FACTER_avalon_dropbox_password to "changeme"
      • FACTER_avalon_public_address to "localhost.localdomain"
  • HACK: maintain permissions for dropbox
    • create script /usr/local/bin/fix_dropbox_permissions with this content:

      Code Block
      languagebash
      #!/bin/bash
      chown -R avalon:dropbox /var/avalon/dropbox
      find /var/avalon/dropbox -type f -exec chmod 664 "{}" ";"
      find /var/avalon/dropbox -type d -exec chmod 2775 "{}" ";"

      and set the mode to 755.

    • set the cronjob to run every minute by adding this line:

      Code Block
      * * * * * /usr/local/bin/fix_dropbox_permissions

...

  • OPTIONAL:
    • clone the latest democontent image as dist-YYMMDD
  • Install avalon-vm-2.0-1.noarch.rpm to install the firstboot changes and tools
  • If IPv6 was disabled during install, re-enable it by removing the lines added to /etc/sysctl.conf during BaseOS.  If these lines are not removed, email will not work.
  • Prepare the disk for compacting
    • clean up anything that's left over from the build process

      Code Block
      rm -rf /root/Downloads/* /var/avalon/dropbox/* /home/makerpm/rpmbuild /opt/staging /root/avalon-installer-flat /root/flat.tar.gz
      yum clean all
      swapoff /dev/mapper/vg_avalon-lv_swap; dd if=/dev/zero of=/dev/mapper/vg_avalon-lv_swap bs=1M; mkswap /dev/mapper/vg_avalon-lv_swap
    • deleted files still take up space on the disk image.  The disk image (as of 4/24/13) is roughly 12G in size, with 7.8G of actual data.  Write zeros to a file until the disk is full to clear out the sectors which are unallocated but had data at one point.  Since the .VDI image is sparsely allocated, the disk image size will actually grow less that 1G even though nearly 500G has been written.

      Code Block
      dd if=/dev/zero of=/tmp/foo bs=1M oflag=direct; rm /tmp/foo
  • run /usr/share/avalon/dist-prep to prepare the machine for release
  • clear the command line history  (history -cw)
  • shutdown the VM
  • Compact the disk image
    • On the host run:

      Code Block
      VBoxManage modifyhd avalon-vm-disk-YYMMDD.vdi --compact
  • Export the appliance
    • List the VMs and find the UUID of the Avalon VM

      Code Block
      VBoxManage list vms
    • Disable USB 2.0 in the VM to avoid a warning when users don't have the VirtualBox extensions loaded.

      Code Block
      VBoxManage modifyvm <machine-id> --usb off
    • VM Settings:

      NameValue
      Nameavalon-vm
      ProductAvalon Media System
      Product-URLhttp://www.avalonmediasystem.org
      VersionR2
      Code Block
      VBoxManage export <machine-id> --output avalon-vm.ova --product "Avalon Media System" --producturl http://www.avalonmediasystem.org --version R2

       

       



  • copy the OVA to the distribution point
    • Make sure to set the avalon-vm.ova symlink to the current release
    • Set the permissions to 644 (they're 600 by default)