Eksport wirtualnej maszyny z Ubuntu 16.04 jako OVA w VirtualBox-ie

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

W tym artykule przedstawiamy jak w VirtualBox-ie może zostać eksportowana wirtualna maszyna do formatu Open Virtualization Format i zapisana jako plik OVA. W poniższym przykładzie jest to Ubuntu 16.04 LTS z TKmon.

Przygotowanie wirtualnej maszyny

Przed eksportem wirtualnej maszyny należy przeprowadzić następujące kroki:

  1. Najpierw należy wgrać aktualizacje bezpieczeństwa i jeżeli jest konieczne to restartować system:
    sudo apt update
    sudo apt dist-upgrade
  2. Usunąć pliki tymczasowe i ewentualnie stare pakiety jądra:
    sudo apt clean
  3. W razie potrzeby oczyścić historię bash:
    rm .bash_history
  4. W pliku /etc/systemd/system/rc-local.service dopisać na końcu dwa poniższe wiersze, może zostać to przeprowadzane za pośrednictwem następującej komendy:
    sudo systemctl edit --full rc-local
    [Install]
    WantedBy=multi-user.target
  5. Dostosować plik /etc/rc.local tak, żeby podczas kolejnego uruchomienia systemu zostały wygenerowane nowe klucze SSH i certyfikaty SSL Apache2. Odpowiednia konfiguracja znajduje się poniżej w punkcie /etc/rc.local.
  6. "Reenable" przez Systemctl skrypt rc-local, tworzony jest symlink do multi-user.target.wants:
    sudo systemctl reenable rc-local
    Created symlink from /etc/systemd/system/multi-user.target.wants/rc-local.service to /etc/systemd/system/rc-local.service.
  7. Następnie należy wyłączyć wirtualną maszynę:
    sudo shutdown -h now

/etc/rc.local

Plik /etc/rc.local należy edytować i dodać w dolnym obszarze (od wskazówki "start tkfirstboot section") tekst widoczny w poniższym przykładzie:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# start tkfirstboot section
# initialize ssh and keys on first bootup of the TKmon virtual appliance
FLAGFILE=/var/log/tk-firstboot.log
if [ -e $FLAGFILE ]; then
  exit 0
else
  echo "Executing tk-firstboot ..."
  echo "Executing tk-firstboot ..." >> $FLAGFILE
  echo "  removing ssh keys" >> $FLAGFILE
  rm /etc/ssh/*key* >> $FLAGFILE
  echo "  removing ssl-cert-snakeoil.pem" >> $FLAGFILE
  rm /etc/ssl/certs/ssl-cert-snakeoil.pem >> $FLAGFILE
  echo "  removing ssl-cert-snakeoil.key" >> $FLAGFILE
  rm /etc/ssl/private/ssl-cert-snakeoil.key >> $FLAGFILE
  echo "  running dpkg-reconfigure openssh-server" >> $FLAGFILE
  dpkg-reconfigure openssh-server >> $FLAGFILE
  echo "  running make-ssl-cert generate-default-snakeoil" >> $FLAGFILE
  make-ssl-cert generate-default-snakeoil --force-overwrite >> $FLAGFILE
  echo "  restarting apache2" >> $FLAGFILE
  /bin/systemctl restart apache2.service >> $FLAGFILE
fi
touch $FLAGFILE
# end tkfirstboot section

exit 0

Eksport wirtualnej maszyny

Dodatkowe informacje


Autor: Thomas Niedermeier

Powiązane artykuły

Instalacja Windows XP w VirtualBox
Konfiguracja sieciowa w VirtualBox
Powiększenie dysku VDI z VirtualBoxu w Ubuntu