docs: review manual image creation
* Add TOCs * Divide Examples and Tools (make it easier to add others such as VBox, VMware etc.) * Merge all libvirt related content as a tool * Modify headers as per Contributor Guide [1] * Move pages to clarify hierarchy Note: further work will be needed to update examples [1] https://docs.openstack.org/doc-contrib-guide/rst-conv/titles.html Change-Id: I78970ef578020c7df7e35ca59a1c7b8aed19bb6f
This commit is contained in:
parent
96c9857397
commit
78179a67bf
@ -7,8 +7,10 @@ mainly on CentOS 7. Because the CentOS installation process
|
|||||||
might differ across versions, the installation steps might
|
might differ across versions, the installation steps might
|
||||||
differ if you use a different version of CentOS.
|
differ if you use a different version of CentOS.
|
||||||
|
|
||||||
|
.. contents:: :depth: 2
|
||||||
|
|
||||||
Download a CentOS install ISO
|
Download a CentOS install ISO
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------------
|
||||||
|
|
||||||
#. Navigate to the `CentOS mirrors
|
#. Navigate to the `CentOS mirrors
|
||||||
<https://www.centos.org/download/mirrors/>`_ page.
|
<https://www.centos.org/download/mirrors/>`_ page.
|
||||||
@ -24,7 +26,7 @@ Download a CentOS install ISO
|
|||||||
packages from the Internet during installation.
|
packages from the Internet during installation.
|
||||||
|
|
||||||
Start the installation process
|
Start the installation process
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
------------------------------
|
||||||
|
|
||||||
Start the installation process using either the :command:`virt-manager`
|
Start the installation process using either the :command:`virt-manager`
|
||||||
or the :command:`virt-install` command as described previously.
|
or the :command:`virt-install` command as described previously.
|
||||||
@ -52,7 +54,7 @@ something like this:
|
|||||||
--location=/data/isos/CentOS-7-x86_64-NetInstall-1611.iso
|
--location=/data/isos/CentOS-7-x86_64-NetInstall-1611.iso
|
||||||
|
|
||||||
Step through the installation
|
Step through the installation
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------------
|
||||||
|
|
||||||
At the initial Installer boot menu, choose the
|
At the initial Installer boot menu, choose the
|
||||||
:guilabel:`Install CentOS 7` option. After the installation program starts,
|
:guilabel:`Install CentOS 7` option. After the installation program starts,
|
||||||
@ -63,7 +65,7 @@ installation summary. Accept the defaults.
|
|||||||
:width: 100%
|
:width: 100%
|
||||||
|
|
||||||
Change the Ethernet status
|
Change the Ethernet status
|
||||||
--------------------------
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The default Ethernet setting is ``OFF``. Change the setting of
|
The default Ethernet setting is ``OFF``. Change the setting of
|
||||||
the Ethernet form ``OFF`` to ``ON``. In particular, ensure that
|
the Ethernet form ``OFF`` to ``ON``. In particular, ensure that
|
||||||
@ -74,7 +76,7 @@ default.
|
|||||||
:width: 100%
|
:width: 100%
|
||||||
|
|
||||||
Hostname
|
Hostname
|
||||||
--------
|
~~~~~~~~
|
||||||
|
|
||||||
The installer allows you to choose a host name.
|
The installer allows you to choose a host name.
|
||||||
The default (``localhost.localdomain``) is fine.
|
The default (``localhost.localdomain``) is fine.
|
||||||
@ -83,7 +85,7 @@ which sets the host name on boot when a new instance
|
|||||||
is provisioned using this image.
|
is provisioned using this image.
|
||||||
|
|
||||||
Point the installer to a CentOS web server
|
Point the installer to a CentOS web server
|
||||||
------------------------------------------
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Depending on the version of CentOS, the net installer requires
|
Depending on the version of CentOS, the net installer requires
|
||||||
the user to specify either a URL or the web site and
|
the user to specify either a URL or the web site and
|
||||||
@ -109,13 +111,13 @@ to get a full list of mirrors, click on the ``HTTP`` link
|
|||||||
of a mirror to retrieve the web site name of a mirror.
|
of a mirror to retrieve the web site name of a mirror.
|
||||||
|
|
||||||
Storage devices
|
Storage devices
|
||||||
---------------
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
If prompted about which type of devices your installation uses,
|
If prompted about which type of devices your installation uses,
|
||||||
choose :guilabel:`Virtio Block Device`.
|
choose :guilabel:`Virtio Block Device`.
|
||||||
|
|
||||||
Partition the disks
|
Partition the disks
|
||||||
-------------------
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
There are different options for partitioning the disks.
|
There are different options for partitioning the disks.
|
||||||
The default installation uses LVM partitions, and creates
|
The default installation uses LVM partitions, and creates
|
||||||
@ -130,19 +132,19 @@ list will allow it to grow without crossing another
|
|||||||
partition's boundary.
|
partition's boundary.
|
||||||
|
|
||||||
Select installation option
|
Select installation option
|
||||||
--------------------------
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Step through the installation, using the default options.
|
Step through the installation, using the default options.
|
||||||
The simplest thing to do is to choose the ``Minimal Install``
|
The simplest thing to do is to choose the ``Minimal Install``
|
||||||
install, which installs an SSH server.
|
install, which installs an SSH server.
|
||||||
|
|
||||||
Set the root password
|
Set the root password
|
||||||
---------------------
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
During the installation, remember to set the root password when prompted.
|
During the installation, remember to set the root password when prompted.
|
||||||
|
|
||||||
Detach the CD-ROM and reboot
|
Detach the CD-ROM and reboot
|
||||||
----------------------------
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Wait until the installation is complete.
|
Wait until the installation is complete.
|
||||||
|
|
||||||
@ -181,7 +183,7 @@ and reboot it by manually stopping and starting.
|
|||||||
# virsh reboot centos
|
# virsh reboot centos
|
||||||
|
|
||||||
Install the ACPI service
|
Install the ACPI service
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
------------------------
|
||||||
|
|
||||||
To enable the hypervisor to reboot or shutdown an instance,
|
To enable the hypervisor to reboot or shutdown an instance,
|
||||||
you must install and run the ``acpid`` service on the guest system.
|
you must install and run the ``acpid`` service on the guest system.
|
||||||
@ -196,7 +198,7 @@ system boots:
|
|||||||
# systemctl enable acpid
|
# systemctl enable acpid
|
||||||
|
|
||||||
Configure to fetch metadata
|
Configure to fetch metadata
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---------------------------
|
||||||
|
|
||||||
An instance must interact with the metadata service to perform
|
An instance must interact with the metadata service to perform
|
||||||
several tasks on start up. For example, the instance must get
|
several tasks on start up. For example, the instance must get
|
||||||
@ -210,7 +212,7 @@ the instance performs these tasks, use one of these methods:
|
|||||||
the metadata service, as described in the next section.
|
the metadata service, as described in the next section.
|
||||||
|
|
||||||
Use cloud-init to fetch the public key
|
Use cloud-init to fetch the public key
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
--------------------------------------
|
||||||
|
|
||||||
The ``cloud-init`` package automatically fetches the public key
|
The ``cloud-init`` package automatically fetches the public key
|
||||||
from the metadata server and places the key in an account.
|
from the metadata server and places the key in an account.
|
||||||
@ -237,7 +239,7 @@ syntax in the configuration file:
|
|||||||
(...)
|
(...)
|
||||||
|
|
||||||
Install cloud-utils-growpart to allow partitions to resize
|
Install cloud-utils-growpart to allow partitions to resize
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
----------------------------------------------------------
|
||||||
|
|
||||||
In order for the root partition to properly resize, install the
|
In order for the root partition to properly resize, install the
|
||||||
``cloud-utils-growpart`` package, which contains the proper tools
|
``cloud-utils-growpart`` package, which contains the proper tools
|
||||||
@ -248,7 +250,7 @@ to allow the disk to resize using cloud-init.
|
|||||||
# yum install cloud-utils-growpart
|
# yum install cloud-utils-growpart
|
||||||
|
|
||||||
Write a script to fetch the public key (if no cloud-init)
|
Write a script to fetch the public key (if no cloud-init)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---------------------------------------------------------
|
||||||
|
|
||||||
If you are not able to install the ``cloud-init`` package in your
|
If you are not able to install the ``cloud-init`` package in your
|
||||||
image, to fetch the ssh public key and add it to the root account,
|
image, to fetch the ssh public key and add it to the root account,
|
||||||
@ -303,7 +305,7 @@ before the line ``touch /var/lock/subsys/local``:
|
|||||||
AESDG-chapter-instancedata.html>`_ for details on how to get user data.
|
AESDG-chapter-instancedata.html>`_ for details on how to get user data.
|
||||||
|
|
||||||
Disable the zeroconf route
|
Disable the zeroconf route
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
--------------------------
|
||||||
|
|
||||||
For the instance to access the metadata service,
|
For the instance to access the metadata service,
|
||||||
you must disable the default zeroconf route:
|
you must disable the default zeroconf route:
|
||||||
@ -313,7 +315,7 @@ you must disable the default zeroconf route:
|
|||||||
# echo "NOZEROCONF=yes" >> /etc/sysconfig/network
|
# echo "NOZEROCONF=yes" >> /etc/sysconfig/network
|
||||||
|
|
||||||
Configure console
|
Configure console
|
||||||
~~~~~~~~~~~~~~~~~
|
-----------------
|
||||||
|
|
||||||
For the :command:`nova console-log` command to work properly
|
For the :command:`nova console-log` command to work properly
|
||||||
on CentOS 7, you might need to do the following steps:
|
on CentOS 7, you might need to do the following steps:
|
||||||
@ -346,7 +348,7 @@ on CentOS 7, you might need to do the following steps:
|
|||||||
done
|
done
|
||||||
|
|
||||||
Shut down the instance
|
Shut down the instance
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
----------------------
|
||||||
|
|
||||||
From inside the instance, run as root:
|
From inside the instance, run as root:
|
||||||
|
|
||||||
@ -355,7 +357,7 @@ From inside the instance, run as root:
|
|||||||
# poweroff
|
# poweroff
|
||||||
|
|
||||||
Clean up (remove MAC address details)
|
Clean up (remove MAC address details)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------
|
||||||
|
|
||||||
The operating system records the MAC address of the virtual Ethernet
|
The operating system records the MAC address of the virtual Ethernet
|
||||||
card in locations such as ``/etc/sysconfig/network-scripts/ifcfg-eth0``
|
card in locations such as ``/etc/sysconfig/network-scripts/ifcfg-eth0``
|
||||||
@ -372,7 +374,7 @@ It will clean up a virtual machine image in place:
|
|||||||
# virt-sysprep -d centos
|
# virt-sysprep -d centos
|
||||||
|
|
||||||
Undefine the libvirt domain
|
Undefine the libvirt domain
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---------------------------
|
||||||
|
|
||||||
Now that you can upload the image to the Image service, you no
|
Now that you can upload the image to the Image service, you no
|
||||||
longer need to have this virtual machine image managed by libvirt.
|
longer need to have this virtual machine image managed by libvirt.
|
||||||
@ -383,7 +385,7 @@ Use the :command:`virsh undefine vm-image` command to inform libvirt:
|
|||||||
# virsh undefine centos
|
# virsh undefine centos
|
||||||
|
|
||||||
Image is complete
|
Image is complete
|
||||||
~~~~~~~~~~~~~~~~~
|
-----------------
|
||||||
|
|
||||||
The underlying image file that you created with the
|
The underlying image file that you created with the
|
||||||
:command:`qemu-img create` command is ready to be uploaded.
|
:command:`qemu-img create` command is ready to be uploaded.
|
@ -7,8 +7,10 @@ mainly on Fedora 25. Because the Fedora installation process
|
|||||||
might differ across versions, the installation steps might
|
might differ across versions, the installation steps might
|
||||||
differ if you use a different version of Fedora.
|
differ if you use a different version of Fedora.
|
||||||
|
|
||||||
|
.. contents:: :depth: 2
|
||||||
|
|
||||||
Download a Fedora install ISO
|
Download a Fedora install ISO
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------------
|
||||||
|
|
||||||
#. Visit the `Fedora download site <https://getfedora.org/>`_.
|
#. Visit the `Fedora download site <https://getfedora.org/>`_.
|
||||||
|
|
||||||
@ -23,7 +25,7 @@ Download a Fedora install ISO
|
|||||||
installation.
|
installation.
|
||||||
|
|
||||||
Start the installation process
|
Start the installation process
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
------------------------------
|
||||||
|
|
||||||
Start the installation process using either the :command:`virt-manager`
|
Start the installation process using either the :command:`virt-manager`
|
||||||
or the :command:`virt-install` command as described previously.
|
or the :command:`virt-install` command as described previously.
|
||||||
@ -51,19 +53,19 @@ something like this:
|
|||||||
--location=/tmp/Fedora-Server-netinst-x86_64-25-1.3.iso
|
--location=/tmp/Fedora-Server-netinst-x86_64-25-1.3.iso
|
||||||
|
|
||||||
Step through the installation
|
Step through the installation
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------------
|
||||||
|
|
||||||
After the installation program starts, choose your preferred language and click
|
After the installation program starts, choose your preferred language and click
|
||||||
:guilabel:`Continue` to get to the installation summary. Accept the defaults.
|
:guilabel:`Continue` to get to the installation summary. Accept the defaults.
|
||||||
|
|
||||||
Review the Ethernet status
|
Review the Ethernet status
|
||||||
--------------------------
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Ensure that the Ethernet setting is ``ON``. Additionally, make sure that
|
Ensure that the Ethernet setting is ``ON``. Additionally, make sure that
|
||||||
``IPv4 Settings' Method`` is ``Automatic (DHCP)``, which is the default.
|
``IPv4 Settings' Method`` is ``Automatic (DHCP)``, which is the default.
|
||||||
|
|
||||||
Hostname
|
Hostname
|
||||||
--------
|
~~~~~~~~
|
||||||
|
|
||||||
The installer allows you to choose a host name.
|
The installer allows you to choose a host name.
|
||||||
The default (``localhost.localdomain``) is fine.
|
The default (``localhost.localdomain``) is fine.
|
||||||
@ -72,7 +74,7 @@ which sets the host name on boot when a new instance
|
|||||||
is provisioned using this image.
|
is provisioned using this image.
|
||||||
|
|
||||||
Partition the disks
|
Partition the disks
|
||||||
-------------------
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
There are different options for partitioning the disks.
|
There are different options for partitioning the disks.
|
||||||
The default installation uses LVM partitions, and creates
|
The default installation uses LVM partitions, and creates
|
||||||
@ -87,19 +89,19 @@ list will allow it to grow without crossing another
|
|||||||
partition's boundary.
|
partition's boundary.
|
||||||
|
|
||||||
Select software to install
|
Select software to install
|
||||||
--------------------------
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Step through the installation, using the default options.
|
Step through the installation, using the default options.
|
||||||
The simplest thing to do is to choose the ``Minimal Install``
|
The simplest thing to do is to choose the ``Minimal Install``
|
||||||
install, which installs an SSH server.
|
install, which installs an SSH server.
|
||||||
|
|
||||||
Set the root password
|
Set the root password
|
||||||
---------------------
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
During the installation, remember to set the root password when prompted.
|
During the installation, remember to set the root password when prompted.
|
||||||
|
|
||||||
Detach the CD-ROM and reboot
|
Detach the CD-ROM and reboot
|
||||||
----------------------------
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Wait until the installation is complete.
|
Wait until the installation is complete.
|
||||||
|
|
||||||
@ -138,7 +140,7 @@ and reboot it by manually stopping and starting.
|
|||||||
# virsh reboot fedora
|
# virsh reboot fedora
|
||||||
|
|
||||||
Install the ACPI service
|
Install the ACPI service
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
------------------------
|
||||||
|
|
||||||
To enable the hypervisor to reboot or shutdown an instance,
|
To enable the hypervisor to reboot or shutdown an instance,
|
||||||
you must install and run the ``acpid`` service on the guest system.
|
you must install and run the ``acpid`` service on the guest system.
|
||||||
@ -153,7 +155,7 @@ system boots:
|
|||||||
# systemctl enable acpid
|
# systemctl enable acpid
|
||||||
|
|
||||||
Configure cloud-init to fetch metadata
|
Configure cloud-init to fetch metadata
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
--------------------------------------
|
||||||
|
|
||||||
An instance must interact with the metadata service to perform
|
An instance must interact with the metadata service to perform
|
||||||
several tasks on start up. For example, the instance must get
|
several tasks on start up. For example, the instance must get
|
||||||
@ -186,7 +188,7 @@ syntax in the configuration file:
|
|||||||
(...)
|
(...)
|
||||||
|
|
||||||
Install cloud-utils-growpart to allow partitions to resize
|
Install cloud-utils-growpart to allow partitions to resize
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
----------------------------------------------------------
|
||||||
|
|
||||||
In order for the root partition to properly resize, install the
|
In order for the root partition to properly resize, install the
|
||||||
``cloud-utils-growpart`` package, which contains the proper tools
|
``cloud-utils-growpart`` package, which contains the proper tools
|
||||||
@ -197,7 +199,7 @@ to allow the disk to resize using cloud-init.
|
|||||||
# dnf install cloud-utils-growpart
|
# dnf install cloud-utils-growpart
|
||||||
|
|
||||||
Disable the zeroconf route
|
Disable the zeroconf route
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
--------------------------
|
||||||
|
|
||||||
For the instance to access the metadata service,
|
For the instance to access the metadata service,
|
||||||
you must disable the default zeroconf route:
|
you must disable the default zeroconf route:
|
||||||
@ -207,7 +209,7 @@ you must disable the default zeroconf route:
|
|||||||
# echo "NOZEROCONF=yes" >> /etc/sysconfig/network
|
# echo "NOZEROCONF=yes" >> /etc/sysconfig/network
|
||||||
|
|
||||||
Configure console
|
Configure console
|
||||||
~~~~~~~~~~~~~~~~~
|
-----------------
|
||||||
|
|
||||||
For the :command:`nova console-log` command to work properly
|
For the :command:`nova console-log` command to work properly
|
||||||
on Fedora, you might need to do the following steps:
|
on Fedora, you might need to do the following steps:
|
||||||
@ -235,7 +237,7 @@ on Fedora, you might need to do the following steps:
|
|||||||
done
|
done
|
||||||
|
|
||||||
Shut down the instance
|
Shut down the instance
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
----------------------
|
||||||
|
|
||||||
From inside the instance, run as root:
|
From inside the instance, run as root:
|
||||||
|
|
||||||
@ -244,7 +246,7 @@ From inside the instance, run as root:
|
|||||||
# poweroff
|
# poweroff
|
||||||
|
|
||||||
Clean up (remove MAC address details)
|
Clean up (remove MAC address details)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------
|
||||||
|
|
||||||
The operating system records the MAC address of the virtual Ethernet
|
The operating system records the MAC address of the virtual Ethernet
|
||||||
card in locations such as ``/etc/sysconfig/network-scripts/ifcfg-eth0``
|
card in locations such as ``/etc/sysconfig/network-scripts/ifcfg-eth0``
|
||||||
@ -261,7 +263,7 @@ It will clean up a virtual machine image in place:
|
|||||||
# virt-sysprep -d fedora
|
# virt-sysprep -d fedora
|
||||||
|
|
||||||
Undefine the libvirt domain
|
Undefine the libvirt domain
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---------------------------
|
||||||
|
|
||||||
Now that you can upload the image to the Image service, you no
|
Now that you can upload the image to the Image service, you no
|
||||||
longer need to have this virtual machine image managed by libvirt.
|
longer need to have this virtual machine image managed by libvirt.
|
||||||
@ -272,7 +274,7 @@ Use the :command:`virsh undefine vm-image` command to inform libvirt:
|
|||||||
# virsh undefine fedora
|
# virsh undefine fedora
|
||||||
|
|
||||||
Image is complete
|
Image is complete
|
||||||
~~~~~~~~~~~~~~~~~
|
-----------------
|
||||||
|
|
||||||
The underlying image file that you created with the
|
The underlying image file that you created with the
|
||||||
:command:`qemu-img create` command is ready to be uploaded.
|
:command:`qemu-img create` command is ready to be uploaded.
|
@ -17,7 +17,10 @@ use that same platform in the image creation step.
|
|||||||
This example shows how to create a FreeBSD 10 image. To create
|
This example shows how to create a FreeBSD 10 image. To create
|
||||||
a FreeBSD 9.2 image, follow these steps with the noted differences.
|
a FreeBSD 9.2 image, follow these steps with the noted differences.
|
||||||
|
|
||||||
**To create a FreeBSD image**
|
.. contents:: :depth: 2
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
-------------
|
||||||
|
|
||||||
#. Make a virtual drive:
|
#. Make a virtual drive:
|
||||||
|
|
||||||
@ -71,6 +74,9 @@ a FreeBSD 9.2 image, follow these steps with the noted differences.
|
|||||||
You now have a VM that boots from the downloaded install ISO and
|
You now have a VM that boots from the downloaded install ISO and
|
||||||
is connected to the blank virtual disk that you created previously.
|
is connected to the blank virtual disk that you created previously.
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
#. To install the operating system, complete the following
|
#. To install the operating system, complete the following
|
||||||
steps inside the VM:
|
steps inside the VM:
|
||||||
|
|
@ -6,8 +6,10 @@ This example installs an Ubuntu 18.04 (Bionic Beaver) image.
|
|||||||
To create an image for a different version of Ubuntu,
|
To create an image for a different version of Ubuntu,
|
||||||
follow these steps with the noted differences.
|
follow these steps with the noted differences.
|
||||||
|
|
||||||
|
.. contents:: :depth: 2
|
||||||
|
|
||||||
Download an Ubuntu installation ISO
|
Download an Ubuntu installation ISO
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------------------
|
||||||
|
|
||||||
Because the goal is to make the smallest possible base image,
|
Because the goal is to make the smallest possible base image,
|
||||||
this example uses the network installation ISO.
|
this example uses the network installation ISO.
|
||||||
@ -15,7 +17,7 @@ The Ubuntu 64-bit 18.04 network installation ISO is at the `Ubuntu download
|
|||||||
page <http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso>`_.
|
page <http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso>`_.
|
||||||
|
|
||||||
Start the installation process
|
Start the installation process
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
------------------------------
|
||||||
|
|
||||||
Start the installation process by using either :command:`virt-manager`
|
Start the installation process by using either :command:`virt-manager`
|
||||||
or :command:`virt-install` as described in the previous section.
|
or :command:`virt-install` as described in the previous section.
|
||||||
@ -44,7 +46,7 @@ the commands should look something like this:
|
|||||||
--os-type=linux --os-variant=ubuntu18.04
|
--os-type=linux --os-variant=ubuntu18.04
|
||||||
|
|
||||||
Step through the installation
|
Step through the installation
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------------
|
||||||
|
|
||||||
At the initial Installer boot menu, choose the :guilabel:`Install` option.
|
At the initial Installer boot menu, choose the :guilabel:`Install` option.
|
||||||
Step through the installation prompts, the defaults should be fine.
|
Step through the installation prompts, the defaults should be fine.
|
||||||
@ -112,14 +114,14 @@ For more information on configuring Grub, see the section
|
|||||||
called ":ref:`write-to-console`".
|
called ":ref:`write-to-console`".
|
||||||
|
|
||||||
Log in to newly created image
|
Log in to newly created image
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-----------------------------
|
||||||
|
|
||||||
When you boot for the first time after install, it may ask
|
When you boot for the first time after install, it may ask
|
||||||
you about authentication tools, you can just choose :guilabel:`Exit`.
|
you about authentication tools, you can just choose :guilabel:`Exit`.
|
||||||
Then, log in as admin user using the password you specified.
|
Then, log in as admin user using the password you specified.
|
||||||
|
|
||||||
Install cloud-init
|
Install cloud-init
|
||||||
~~~~~~~~~~~~~~~~~~
|
------------------
|
||||||
|
|
||||||
The :command:`cloud-init` script starts on instance boot and
|
The :command:`cloud-init` script starts on instance boot and
|
||||||
will search for a metadata provider to fetch a public key from.
|
will search for a metadata provider to fetch a public key from.
|
||||||
@ -161,7 +163,7 @@ syntax in the configuration file:
|
|||||||
(...)
|
(...)
|
||||||
|
|
||||||
Shut down the instance
|
Shut down the instance
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
----------------------
|
||||||
|
|
||||||
From inside the instance, as root:
|
From inside the instance, as root:
|
||||||
|
|
||||||
@ -170,7 +172,7 @@ From inside the instance, as root:
|
|||||||
# /sbin/shutdown -h now
|
# /sbin/shutdown -h now
|
||||||
|
|
||||||
Clean up (remove MAC address details)
|
Clean up (remove MAC address details)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------
|
||||||
|
|
||||||
The operating system records the MAC address of the virtual Ethernet
|
The operating system records the MAC address of the virtual Ethernet
|
||||||
card in locations such as ``/etc/udev/rules.d/70-persistent-net.rules``
|
card in locations such as ``/etc/udev/rules.d/70-persistent-net.rules``
|
||||||
@ -187,7 +189,7 @@ It will clean up a virtual machine image in place:
|
|||||||
# virt-sysprep -d bionic
|
# virt-sysprep -d bionic
|
||||||
|
|
||||||
Undefine the libvirt domain
|
Undefine the libvirt domain
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---------------------------
|
||||||
|
|
||||||
Now that the image is ready to be uploaded to the Image service,
|
Now that the image is ready to be uploaded to the Image service,
|
||||||
you no longer need to have this virtual machine image managed by libvirt.
|
you no longer need to have this virtual machine image managed by libvirt.
|
||||||
@ -198,7 +200,7 @@ Use the :command:`virsh undefine vm-image` command to inform libvirt:
|
|||||||
# virsh undefine bionic
|
# virsh undefine bionic
|
||||||
|
|
||||||
Image is complete
|
Image is complete
|
||||||
~~~~~~~~~~~~~~~~~
|
-----------------
|
||||||
|
|
||||||
The underlying image file that you created with the
|
The underlying image file that you created with the
|
||||||
:command:`qemu-img create` command, such as
|
:command:`qemu-img create` command, such as
|
@ -2,9 +2,14 @@
|
|||||||
Example: Microsoft Windows image
|
Example: Microsoft Windows image
|
||||||
================================
|
================================
|
||||||
|
|
||||||
|
.. contents:: :depth: 2
|
||||||
|
|
||||||
This example creates a Windows Server 2012 qcow2 image,
|
This example creates a Windows Server 2012 qcow2 image,
|
||||||
using the :command:`virt-install` command and the KVM hypervisor.
|
using the :command:`virt-install` command and the KVM hypervisor.
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
-------------
|
||||||
|
|
||||||
#. Follow these steps to prepare the installation:
|
#. Follow these steps to prepare the installation:
|
||||||
|
|
||||||
#. Download a Windows Server 2012 installation ISO.
|
#. Download a Windows Server 2012 installation ISO.
|
||||||
@ -19,6 +24,9 @@ using the :command:`virt-install` command and the KVM hypervisor.
|
|||||||
|
|
||||||
$ qemu-img create -f qcow2 ws2012.qcow2 15G
|
$ qemu-img create -f qcow2 ws2012.qcow2 15G
|
||||||
|
|
||||||
|
Installation
|
||||||
|
------------
|
||||||
|
|
||||||
#. Start the Windows Server 2012 installation with the
|
#. Start the Windows Server 2012 installation with the
|
||||||
:command:`virt-install` command:
|
:command:`virt-install` command:
|
||||||
|
|
||||||
@ -94,6 +102,9 @@ using the :command:`virt-install` command and the KVM hypervisor.
|
|||||||
|
|
||||||
Wait for the machine shutdown.
|
Wait for the machine shutdown.
|
||||||
|
|
||||||
|
Image ready
|
||||||
|
-----------
|
||||||
|
|
||||||
Your image is ready to upload to the Image service:
|
Your image is ready to upload to the Image service:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
@ -1,6 +1,93 @@
|
|||||||
========================================================
|
=====================================
|
||||||
|
Tools: libvirt and virsh/virt-manager
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
.. contents:: :depth: 3
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Verify the libvirt default network is running
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Before starting a virtual machine with libvirt, verify
|
||||||
|
that the libvirt ``default`` network has started.
|
||||||
|
This network must be active for your virtual machine
|
||||||
|
to be able to connect out to the network.
|
||||||
|
Starting this network will create a Linux bridge (usually
|
||||||
|
called ``virbr0``), iptables rules, and a dnsmasq process
|
||||||
|
that will serve as a DHCP server.
|
||||||
|
|
||||||
|
To verify that the libvirt ``default`` network is enabled,
|
||||||
|
use the :command:`virsh net-list` command and verify
|
||||||
|
that the ``default`` network is active:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
# virsh net-list
|
||||||
|
Name State Autostart
|
||||||
|
-----------------------------------------
|
||||||
|
default active yes
|
||||||
|
|
||||||
|
If the network is not active, start it by doing:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
# virsh net-start default
|
||||||
|
|
||||||
|
Use the virt-manager X11 GUI
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
If you plan to create a virtual machine image on a machine that
|
||||||
|
can run X11 applications, the simplest way to do so is to use
|
||||||
|
the :command:`virt-manager` GUI, which is installable as the
|
||||||
|
``virt-manager`` package on both Fedora-based and Debian-based systems.
|
||||||
|
This GUI has an embedded VNC client that will let you view and
|
||||||
|
interact with the guest's graphical console.
|
||||||
|
|
||||||
|
If you are building the image on a headless server, and
|
||||||
|
you have an X server on your local machine, you can launch
|
||||||
|
:command:`virt-manager` using ssh X11 forwarding to access the GUI.
|
||||||
|
Since virt-manager interacts directly with libvirt, you typically
|
||||||
|
need to be root to access it. If you can ssh directly in as root
|
||||||
|
(or with a user that has permissions to interact with libvirt), do:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ ssh -X root@server virt-manager
|
||||||
|
|
||||||
|
If the account you use to ssh into your server does not have
|
||||||
|
permissions to run libvirt, but has sudo privileges, do:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ ssh -X user@server
|
||||||
|
$ sudo virt-manager
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The ``-X`` flag passed to ssh will enable X11 forwarding over ssh.
|
||||||
|
If this does not work, try replacing it with the ``-Y`` flag.
|
||||||
|
|
||||||
|
Click the :guilabel:`Create a new virtual machine` button at the top-left,
|
||||||
|
or go to :menuselection:`File --> New Virtual Machine`. Then, follow the
|
||||||
|
instructions.
|
||||||
|
|
||||||
|
.. figure:: figures/virt-manager.png
|
||||||
|
:width: 100%
|
||||||
|
|
||||||
|
You will be shown a series of dialog boxes that will allow you
|
||||||
|
to specify information about the virtual machine.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
When using qcow2 format images, you should check the option
|
||||||
|
``Customize configuration before install``, go to disk properties and
|
||||||
|
explicitly select the :guilabel:`qcow2` format.
|
||||||
|
This ensures the virtual machine disk size will be correct.
|
||||||
|
|
||||||
Use virt-install and connect by using a local VNC client
|
Use virt-install and connect by using a local VNC client
|
||||||
========================================================
|
--------------------------------------------------------
|
||||||
|
|
||||||
If you do not wish to use :command:`virt-manager` (for example,
|
If you do not wish to use :command:`virt-manager` (for example,
|
||||||
you do not want to install the dependencies on your server, you do
|
you do not want to install the dependencies on your server, you do
|
@ -2,18 +2,6 @@
|
|||||||
Create images manually
|
Create images manually
|
||||||
======================
|
======================
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
net-running.rst
|
|
||||||
virt-manager.rst
|
|
||||||
virt-install.rst
|
|
||||||
centos-image.rst
|
|
||||||
ubuntu-image.rst
|
|
||||||
fedora-image.rst
|
|
||||||
windows-image.rst
|
|
||||||
freebsd-image.rst
|
|
||||||
|
|
||||||
Creating a new image is a step done outside of your
|
Creating a new image is a step done outside of your
|
||||||
OpenStack installation. You create the new image manually on
|
OpenStack installation. You create the new image manually on
|
||||||
your own system and then upload the image to your cloud.
|
your own system and then upload the image to your cloud.
|
||||||
@ -39,3 +27,23 @@ to find a VNC client that works on your local desktop.
|
|||||||
To create an image for the Database service,
|
To create an image for the Database service,
|
||||||
see `Building Guest Images for OpenStack Trove
|
see `Building Guest Images for OpenStack Trove
|
||||||
<https://docs.openstack.org/trove/latest/admin/building_guest_images.html>`_.
|
<https://docs.openstack.org/trove/latest/admin/building_guest_images.html>`_.
|
||||||
|
|
||||||
|
Tools
|
||||||
|
-----
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
create-images-manually-tools-libvirt.rst
|
||||||
|
|
||||||
|
Examples
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
create-images-manually-example-centos-image.rst
|
||||||
|
create-images-manually-example-fedora-image.rst
|
||||||
|
create-images-manually-example-freebsd-image.rst
|
||||||
|
create-images-manually-example-windows-image.rst
|
||||||
|
create-images-manually-example-ubuntu-image.rst
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
=============================================
|
|
||||||
Verify the libvirt default network is running
|
|
||||||
=============================================
|
|
||||||
|
|
||||||
Before starting a virtual machine with libvirt, verify
|
|
||||||
that the libvirt ``default`` network has started.
|
|
||||||
This network must be active for your virtual machine
|
|
||||||
to be able to connect out to the network.
|
|
||||||
Starting this network will create a Linux bridge (usually
|
|
||||||
called ``virbr0``), iptables rules, and a dnsmasq process
|
|
||||||
that will serve as a DHCP server.
|
|
||||||
|
|
||||||
To verify that the libvirt ``default`` network is enabled,
|
|
||||||
use the :command:`virsh net-list` command and verify
|
|
||||||
that the ``default`` network is active:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
# virsh net-list
|
|
||||||
Name State Autostart
|
|
||||||
-----------------------------------------
|
|
||||||
default active yes
|
|
||||||
|
|
||||||
If the network is not active, start it by doing:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
# virsh net-start default
|
|
@ -1,51 +0,0 @@
|
|||||||
============================
|
|
||||||
Use the virt-manager X11 GUI
|
|
||||||
============================
|
|
||||||
|
|
||||||
If you plan to create a virtual machine image on a machine that
|
|
||||||
can run X11 applications, the simplest way to do so is to use
|
|
||||||
the :command:`virt-manager` GUI, which is installable as the
|
|
||||||
``virt-manager`` package on both Fedora-based and Debian-based systems.
|
|
||||||
This GUI has an embedded VNC client that will let you view and
|
|
||||||
interact with the guest's graphical console.
|
|
||||||
|
|
||||||
If you are building the image on a headless server, and
|
|
||||||
you have an X server on your local machine, you can launch
|
|
||||||
:command:`virt-manager` using ssh X11 forwarding to access the GUI.
|
|
||||||
Since virt-manager interacts directly with libvirt, you typically
|
|
||||||
need to be root to access it. If you can ssh directly in as root
|
|
||||||
(or with a user that has permissions to interact with libvirt), do:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ ssh -X root@server virt-manager
|
|
||||||
|
|
||||||
If the account you use to ssh into your server does not have
|
|
||||||
permissions to run libvirt, but has sudo privileges, do:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
$ ssh -X user@server
|
|
||||||
$ sudo virt-manager
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The ``-X`` flag passed to ssh will enable X11 forwarding over ssh.
|
|
||||||
If this does not work, try replacing it with the ``-Y`` flag.
|
|
||||||
|
|
||||||
Click the :guilabel:`Create a new virtual machine` button at the top-left,
|
|
||||||
or go to :menuselection:`File --> New Virtual Machine`. Then, follow the
|
|
||||||
instructions.
|
|
||||||
|
|
||||||
.. figure:: figures/virt-manager.png
|
|
||||||
:width: 100%
|
|
||||||
|
|
||||||
You will be shown a series of dialog boxes that will allow you
|
|
||||||
to specify information about the virtual machine.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
When using qcow2 format images, you should check the option
|
|
||||||
``Customize configuration before install``, go to disk properties and
|
|
||||||
explicitly select the :guilabel:`qcow2` format.
|
|
||||||
This ensures the virtual machine disk size will be correct.
|
|
Loading…
x
Reference in New Issue
Block a user