openstack-manuals/doc/image-guide/source/fedora-image.rst

7.7 KiB

Example: Fedora image

Download a Fedora ISO image. This procedure lets you create a Fedora 20 image.

  1. Start the installation using virt-install as shown below:

    # qemu-img create -f qcow2 fedora-20.qcow2 8G
    # virt-install --connect=qemu:///system --network=bridge:virbr0 \
      --extra-args="console=tty0 console=ttyS0,115200 serial rd_NO_PLYMOUTH" \
      --name=fedora-20 --disk path=/var/lib/libvirt/images/fedora-20.qcow2,format=qcow2,size=10,cache=none \
      --ram 2048 --vcpus=2 --check-cpu --accelerate --os-type linux --os-variant fedora19 \
      --hvm --location=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/x86_64/os/ \
      --nographics

    This will launch a VM and start the installation process.

    Starting install...
    Retrieving file .treeinfo...                      | 2.2 kB  00:00:00 !!!
    Retrieving file vmlinuz...                        | 9.8 MB  00:00:05 !!!
    Retrieving file initrd.img...                     |  66 MB  00:00:37 !!!
    Allocating 'fedora-20.qcow2'                      |  10 GB  00:00:00
    Creating domain...                                |    0 B  00:00:00
    Connected to domain fedora-20
    Escape character is ^]
    [    0.000000] Initializing cgroup subsys cpuset
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    ...
    ...
    ...
    [  OK  ] Reached target Local File Systems (Pre).
    Starting installer, one moment...
    anaconda 20.25.15-1 for Fedora 20 started.
    ========================================================================
    ========================================================================
  2. Choose the VNC or text mode to set the installation options.

    Text mode provides a limited set of installation options.
    It does not offer custom partitioning for full control over the
    disk layout. Would you like to use VNC mode instead?
    
    1) Start VNC
    
    2) Use text mode
    
    Please make your choice from above ['q' to quit | 'c' to continue |
    'r' to refresh]:
  3. Set the timezone, network configuration, installation source, and the root password. Optionally, you can choose to create a user.

  4. Set up the installation destination as shown below:

    ========================================================================
    Probing storage...
    Installation Destination
    
    [x] 1) Virtio Block Device: 10.24 GB (vda)
    
    1 disk selected; 10.24 GB capacity; 10.24 GB free ...
    
    Please make your choice from above ['q' to quit | 'c' to continue |
    'r' to refresh]: c
    ========================================================================
    ========================================================================
    Autopartitioning Options
    
    [ ] 1) Replace Existing Linux system(s)
    
    [x] 2) Use All Space
    
    [ ] 3) Use Free Space
    
    Installation requires partitioning of your hard drive. Select what space
    to use for the install target.
    
    Please make your choice from above ['q' to quit | 'c' to continue |
    'r' to refresh]: 2
    ========================================================================
    ========================================================================
    Autopartitioning Options
    
    [ ] 1) Replace Existing Linux system(s)
    
    [x] 2) Use All Space
    
    [ ] 3) Use Free Space
    
    Installation requires partitioning of your hard drive. Select what space
    to use for the install target.
    
    Please make your choice from above ['q' to quit | 'c' to continue |
    'r' to refresh]: c
    ========================================================================
    ========================================================================
    Partition Scheme Options
    
    [ ] 1) Standard Partition
    
    [x] 2) LVM
    
    [ ] 3) BTRFS
    
    Select a partition scheme configuration.
    
    Please make your choice from above ['q' to quit | 'c' to continue |
    'r' to refresh]: c
    Generating updated storage configuration
    Checking storage configuration...
    ========================================================================
  5. Run the following commands from the host to eject the disk and reboot using the virsh command, as root.

    # virsh attach-disk --type cdrom --mode readonly fedora-20 "" hdc
    # virsh destroy fedora-20
    # virsh start fedora-20

    You can also use the GUI to detach and reboot it by manually stopping and starting.

  6. Log in as root user when you boot for the first time after installation.

  7. Install and run the acpid service on the guest system to enable the virtual machine to reboot or shutdown an instance.

    Run the following commands inside the Fedora guest to install the ACPI service and configure it to start when the system boots:

    # yum install acpid
    # chkconfig acpid on
  8. Install the cloud-init package inside the Fedora guest by adding the EPEL repo:

    The cloud-init package automatically fetches the public key from the metadata server and places the key in an account.

    # yum install http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    # yum install cloud-init

    You can change the name of the account used by cloud-init by editing the /etc/cloud/cloud.cfg file and adding a line with a different user. For example, to configure cloud-init to put the key in an account named admin, add this line to the configuration file:

    user: admin
  9. Disable the default zeroconf route for the instance to access the metadata service:

    # echo "NOZEROCONF=yes" >> /etc/sysconfig/network
  10. For the nova console-log command to work properly on Fedora 20, you might need to add the following lines to the /boot/grub/menu.lst file:

    serial --unit=0 --speed=115200
    terminal --timeout=10 console serial
    # Edit the kernel line to add the console entries
    kernel ... console=tty0 console=ttyS0,115200n8
  11. Shut down the instance from inside the instance as a root user:

    # /sbin/shutdown -h now
  12. Clean up and remove MAC address details.

    The operating system records the MAC address of the virtual Ethernet card in locations such as /etc/sysconfig/network-scripts/ifcfg-eth0 and /etc/udev/rules.d/70-persistent-net.rules during the instance process. However, each time the image boots up, the virtual Ethernet card will have a different MAC address, so this information must be deleted from the configuration file.

    Use the virt-sysprep utility. This performs various cleanup tasks such as removing the MAC address references. It will clean up a virtual machine image in place:

    # virt-sysprep -d fedora-20
  13. Undefine the domain since you no longer need to have this virtual machine image managed by libvirt:

    # virsh undefine fedora-20

The underlying image file that you created with the qemu-img create command is ready to be uploaded to the Image service by using the openstack image create command. For more information, see the Create or update an image.