Skip to content

Commit

Permalink
Basic virtual machine management on the command line (#202)
Browse files Browse the repository at this point in the history
Fixed feedback from Tomas

Co-authored-by: Tomáš Bažant <[email protected]>

---------

Co-authored-by: Shalaka Harne <[email protected]>
Co-authored-by: Tomáš Bažant <[email protected]>
  • Loading branch information
3 people authored Oct 3, 2023
1 parent 4311f4e commit 9ce56ba
Show file tree
Hide file tree
Showing 6 changed files with 158 additions and 37 deletions.
17 changes: 17 additions & 0 deletions DC-manage-vm-on-commandline
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## ----------------------------
## Doc Config File for the DB Assembly
## ----------------------------
##
## Basics
MAIN="manage-vm-on-commandline.asm.xml"
SRC_DIR="articles"
IMG_SRC_DIR="images"

## Profiling
PROFOS="generic"
#PROFARCH="x86_64;zseries;power;aarch64"

## stylesheet location
STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2022-ns"
FALLBACK_STYLEROOT="/usr/share/xml/docbook/stylesheet/suse2021-ns"
DOCBOOK5_RNG_URI="urn:x-suse:rng:v2:geekodoc-flat"
4 changes: 2 additions & 2 deletions articles/freeradius-setup-server.asm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@
<productname version="15-GA"></productname>
</meta>
<meta name="title" its:translate="yes">Set up a FreeRADIUS Server</meta>
<meta name="description" its:translate="yes">An overview of setting up FreeRADIUS server set up and the procedure to set</meta>
<meta name="social-descr" its:translate="yes">ultrashort description for social media, max 55 chars</meta>
<meta name="description" its:translate="yes">An overview of setting up FreeRADIUS server.</meta>
<meta name="social-descr" its:translate="yes">Set up FreeRADIUS server.</meta>
<!-- suitable category, comma-separated list of categories -->
<meta name="category" content="Systems Management, Security" its:translate="no"/>
<dm:docmanager xmlns:dm="urn:x-suse:ns:docmanager">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,18 @@
</resources>-->
<!-- Concept files -->
<resources>
<resource href="../concepts/freeradius-concept.xml" xml:id="_freeradius-concept">
<description>FreeRADIUS server concept</description>
<resource href="../concepts/manage-vm-on-commandline-concept.xml" xml:id="_manage-vm-on-commandline-concept">
<description>Unified management of virtual machines using &libvirt;</description>
</resource> <resource href="../concepts/manage-vm-on-commandline-benefits.xml" xml:id="_manage-vm-on-commandline-benefits">
<description>&libvirt; unifies management of virtual machines.</description>
</resource>
</resources>
<resource href="../concepts/manage-vm-on-commandline-tools.xml" xml:id="_manage-vm-on-commandline-tools">
<description>&libvirt; unifies management of virtual machines.</description>
</resource>
</resources>
<!-- Tasks -->
<resources>

<resource href="../tasks/freeradius-installing-server.xml" xml:id="_freeradius-installing-server">
<description>Installing FreeRADIUS server</description>
</resource>

</resources>
<!--<resources>
</resources>-->
<!-- References -->
<!--<resources>
<resource xml:id="_reference-example" href="../references/reference.xml">
Expand All @@ -60,14 +60,14 @@
</resource>
</resources>
<!-- S T R U C T U R E -->
<structure renderas="article" xml:id="freeradius-server" xml:lang="en">
<structure renderas="article" xml:id="manage-vm-on-commandline" xml:lang="en">
<merge>
<title>Setting Up FreeRADIUS server</title>
<title>Unified Management of Virtual Machines using &libvirt;</title>
<!-- <subtitle>Subtitle if necessary</subtitle>-->
<!-- Create changelog to enable versioning; add most recent entries at the top. -->
<revhistory>
<title>Changelog</title>
<revision><revnumber>1</revnumber><date>2023-07-07</date>
<revision><revnumber>1</revnumber><date>2023-09-19</date>
<revdescription>
<para>
Initial version
Expand All @@ -86,7 +86,7 @@
<!-- add author's e-mail -->
<meta name="maintainer" content="[email protected]" its:translate="no"/>
<!-- ISO date of last update as YYYY-MM-DD -->
<meta name="updated" content="2023-07-07" its:translate="no"/>
<meta name="updated" content="2023-09-19" its:translate="no"/>
<!-- this does not work yet. Use the dm tags listed below for now
<meta name="bugtracker" its:translate="no">
<phrase role="url">https://bugzilla.suse.com/enter_bug.cgi</phrase>
Expand All @@ -113,9 +113,9 @@
<productname version="15-SP1"></productname>
<productname version="15-GA"></productname>
</meta>
<meta name="title" its:translate="yes">Set up FreeRADIUS Server</meta>
<meta name="description" its:translate="yes">An overview of setting up FreeRADIUS server set up and the procedure to set</meta>
<meta name="social-descr" its:translate="yes">ultrashort description for social media, max 55 chars</meta>
<meta name="title" its:translate="yes">Unified Management of Virtual Machines using &libvirt;</meta>
<meta name="description" its:translate="yes">An overview of managing virtual machine on command line using libvirt.</meta>
<meta name="social-descr" its:translate="yes">Virtual Machine management using libvirt on command line.</meta>
<!-- suitable category, comma-separated list of categories -->
<meta name="category" content="Systems Management, Security" its:translate="no"/>
<dm:docmanager xmlns:dm="urn:x-suse:ns:docmanager">
Expand All @@ -132,38 +132,34 @@
<varlistentry>
<term>WHAT?</term>
<listitem>
<para>
libvirt is a collection of software that provides a common API (Application Programming Interface) for managing popular virtualization solutions.
<para>
This article introduces &libvirt; - a set of tools that unify management of virtual machines.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>WHY?</term>
<listitem>
<para>
This article is intended to provide an overview of managing virtual machines on the command line.
By understanding &libvirt;, you make the first step to easily manage virtual machines regardless of the virtualization technology used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>EFFORT</term>
<listitem>
<para>
It takes 30 minutes to understand the basics of managing virtual machines on the command line.
It takes 15 minutes to understand libvirt.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>GOAL</term>
<listitem>
<para>
Basic understanding of managing virtual machines on command line.
Basic understanding of &libvirt; and related tools.
</para>
</listitem>
</varlistentry><varlistentry>
<term>REQUIREMENTS</term>
<listitem><itemizedlist><listitem><para>A virtual machine or instance to install FreeRADIUS.</para></listitem> <listitem><para>Another Virtual Machine on your network to test client functions.</para></listitem></itemizedlist>
</listitem>
</varlistentry>
</variablelist>
</abstract>
Expand All @@ -182,15 +178,10 @@
<!-- <module resourceref="_reference-example" renderas="section"/>
<module resourceref="_glue-more-info" renderas="section"/>
<module resourceref="_glue-whats-next" renderas="section"/>-->
<module resourceref="_freeradius-concept" renderas="section"></module>
<module resourceref="_freeradius-installing-server" renderas="section"></module>
<module resourceref="_freeradius-create-test-certificates" renderas="section"></module>
<module resourceref="_freeradius-start-server" renderas="section"/>
<module resourceref="_freeradius-add-client-user" renderas="section"></module>
<module resourceref="_freeradius-start-freeradius" renderas="section"></module>
<module resourceref="_freeradius-test" renderas="section"></module>
<module resourceref="_freeradius-troubleshooting" renderas="section"></module>
<module resourceref="_manage-vm-on-commandline-concept" renderas="section"></module>
<module resourceref="_manage-vm-on-commandline-benefits" renderas="section"></module>
<module resourceref="_manage-vm-on-commandline-tools" renderas="section"></module>
<module resourceref="_legal" renderas="section"/>
<module resourceref="_gfdl" renderas="appendix"/>
</structure>
</assembly>
</assembly>
35 changes: 35 additions & 0 deletions concepts/manage-vm-on-commandline-benefits.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
[
<!ENTITY % entities SYSTEM "../common/generic-entities.ent">
%entities;
]>
<!-- refers to https://github.com/SUSE/doc-sle/blob/main/xml/systemd.xml [sec-boot-systemd-timer-units] -->
<topic xml:id="manage-vm-on-commandline-benefits"
role="concept" xml:lang="en"
xmlns="http://docbook.org/ns/docbook" version="5.2"
xmlns:its="http://www.w3.org/2005/11/its"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:trans="http://docbook.org/ns/transclusion">
<info>
<title>Benefits of using libvirt</title>
<meta name="maintainer" content="[email protected]" its:translate="no"/>
<abstract><para>libvirt is a software that enables you to manage different virtual machines. You can use libvirt to start, stop, monitor, and manage virtual machines.</para></abstract></info>
<para>The benefits of using libvirt are given below:</para>
<itemizedlist>
<listitem><para>Provides a unified management interface for diverse virtualization technologies.</para></listitem>

<listitem><para>Modular architecture allows developers to extend the functionality.</para></listitem>
<listitem><para>Allows live migration of virtual machines between physical hosts without downtime. This facilitates load balancing and maintenance.</para></listitem>
<listitem><para>Enables managing remote virtual machines. </para></listitem>
<listitem><para>Allows storage, resource, and network management.</para></listitem>
<listitem><para>Allows event monitoring and this helps in tracking changes of virtual machines and related resources.</para></listitem>
<listitem><para>Allows managing different types of storage that are available to VM Guests on a host running the <literal>libvirtd</literal> service.</para></listitem>
<listitem><para>Allows managing physical and logical network interfaces that are available to VM Guests on a host running the <literal>libvirtd</literal> service.</para></listitem>
<listitem><para>Provides resource efficiency as command-line tools have less resource requirements compared to graphical user interface.</para></listitem>
<listitem><para>Allows scripting and automation of repetitive tasks.</para></listitem>
<listitem><para>Provides snapshot support thereby enabling you to capture the state of virtual machines at a specific point in time.</para></listitem>
<listitem><para>Allows using any Linux distribution as libvirt is cross-platform compatible.</para></listitem>
<listitem><para>Simplifies the management of virtual machines with existing libvirt-based utilities.</para></listitem></itemizedlist>
</topic>
44 changes: 44 additions & 0 deletions concepts/manage-vm-on-commandline-concept.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
[
<!ENTITY % entities SYSTEM "../common/generic-entities.ent">
%entities;
]>
<!-- refers to https://github.com/SUSE/doc-sle/blob/main/xml/systemd.xml [sec-boot-systemd-timer-units] -->
<topic xml:id="manage-vm-on-commandline-concept"
role="concept" xml:lang="en"
xmlns="http://docbook.org/ns/docbook" version="5.2"
xmlns:its="http://www.w3.org/2005/11/its"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:trans="http://docbook.org/ns/transclusion">
<info><title>What is &libvirt;?</title>
<meta name="maintainer" content="[email protected]" its:translate="no"/>
<abstract><para>
libvirt is a collection of software that provides a common API (Application Programming Interface) for managing popular virtualization solutions, for example KVM and Xen. libvirt consists of an API library, a system service libvirtd, and a command line utility virsh.
</para></abstract></info>
<para>Using the libvirt-based tools is a recommended way of managing VM Guests. You can use <command>virsh</command> to configure virtual machines (VM) on the command line as an alternative to using the graphical &vmm;. Interoperability between libvirt and libvirt-based applications has been tested and is an essential part of SUSE's support stance.</para>
<para>The libvirtd service runs on the server and performs management tasks, for example, starting, stopping, and migrating guests between host servers. The libvirt client libraries and utilities connect to libvirtd and collect configuration information and resources of the host servers. </para>
<para>The configuration of each virtual machine is stored in an xml file and you can manage this configuration in different ways. To manage the configuration on the command-line, you can use <command>virsh</command></para>
<para>The management of virtual machines on command-line provides more control over the host machines than using the graphical interface applications. This also enables you to add on to scripting and automation.</para>
<para>Using <command>virsh</command> enables you to start, configure, pause, list, and stop virtual machines. You can also manage virtual disks using this utility.
</para><note><para>You must be a root user to manage virtual machines using <command>virsh</command>. However, as a non-root user you enter an unprivileged libvirt session in which you can not see or interact with any virtual machines.</para></note>
<para>Benefits of using &libvirt;</para>
<para>libvirt is a software that enables you to manage different virtual machines. You can use libvirt to start, stop, monitor, and manage virtual machines.</para>
<para>The benefits of using libvirt are given below:</para>
<itemizedlist>
<listitem><para>Provides a unified management interface for diverse virtualization technologies.</para></listitem>
<listitem><para>Modular architecture allows developers to extend the functionality.</para></listitem>
<listitem><para>Allows live migration of virtual machines between physical hosts without downtime. This facilitates load balancing and maintenance.</para></listitem>
<listitem><para>Enables managing remote virtual machines. </para></listitem>
<listitem><para>Allows storage, resource, and network management.</para></listitem>
<listitem><para>Allows event monitoring and this helps in tracking changes of virtual machines and related resources.</para></listitem>
<listitem><para>Allows managing different types of storage that are available to VM Guests on a host running the <literal>libvirtd</literal> service.</para></listitem>
<listitem><para>Allows managing physical and logical network interfaces that are available to VM Guests on a host running the <literal>libvirtd</literal> service.</para></listitem>
<listitem><para>Provides resource efficiency as command-line tools have less resource requirements compared to graphical user interface.</para></listitem>
<listitem><para>Allows scripting and automation of repetitive tasks.</para></listitem>
<listitem><para>Provides snapshot support thereby enabling you to capture the state of virtual machines at a specific time.</para></listitem>
<listitem><para>Allows using any Linux distribution as libvirt is cross-platform compatible.</para></listitem>
<listitem><para>Simplifies the management of virtual machines with existing libvirt-based utilities.</para></listitem></itemizedlist>

</topic>
34 changes: 34 additions & 0 deletions references/manage-vm-on-commanline-tools.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
[
<!ENTITY % entities SYSTEM "../common/generic-entities.ent">
%entities;
]>
<!-- refers to https://github.com/SUSE/doc-sle/blob/main/xml/systemd.xml [sec-boot-systemd-timer-units] -->
<topic xml:id="manage-vm-on-commandline-tools"
role="concept" xml:lang="en"
xmlns="http://docbook.org/ns/docbook" version="5.2"
xmlns:its="http://www.w3.org/2005/11/its"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:trans="http://docbook.org/ns/transclusion">
<info>
<title>Command-line tools</title>
<meta name="maintainer" content="[email protected]" its:translate="no"/>
<abstract>
<para>libvirt includes several command line utilities to manage virtual machines.</para></abstract>
</info>
<variablelist>
<varlistentry>
<term><literal>virsh</literal> (Package: libvirt-client)</term>
<listitem>
<para>A command line tool to manage VM Guests with similar functionality as the Virtual Machine Manager. Allows you to change a VM Guest's status (start, stop, pause, etc.), to set up new guests and devices, or to edit existing configurations. virsh is also useful to script VM Guest management operations.</para>
</listitem>
</varlistentry>
<varlistentry><term><literal>virt-install</literal> (Package: virt-install)</term>
<listitem> <para>A command line tool for creating new VM Guests using the libvirt library. It supports graphical installations via VNC or SPICE protocols. Given suitable command line arguments, virt-install can run completely unattended. This allows for easy automation of guest installs. virt-install is the default installation tool used by the Virtual Machine Manager.</para></listitem></varlistentry>
<varlistentry><term><literal>remote-viewer</literal> (Package: virt-viewer)</term><listitem><para>A simple viewer of a remote desktop. It supports SPICE and VNC protocols.</para></listitem></varlistentry>
<varlistentry><term><literal>virt-clone</literal> (Package: virt-install)</term><listitem><para>A tool for cloning existing virtual machine images using the libvirt hypervisor management library.</para></listitem></varlistentry>
<varlistentry><term><literal>virt-host-validate</literal> (Package: libvirt-client)</term><listitem><para>A tool that validates whether the host is configured in a suitable way to run libvirt hypervisor drivers.</para></listitem></varlistentry>
</variablelist>
</topic>

0 comments on commit 9ce56ba

Please sign in to comment.