Merge pull request 'Fix various typos' (!183) from brettweir/user-documentation:fix-typos into main

Reviewed-on: server/user-documentation#183
This commit is contained in:
Peter Boy 2026-07-01 19:35:24 +00:00
commit 8425e74203
6 changed files with 49 additions and 49 deletions

View file

@ -41,9 +41,9 @@ But in all cases you need a more appropriate alternative data organization. The
_One option_ is to use the `/var/www/` directory to create domain-specific subdirectories and additional appropriate subdirectory within. The advantage of this procedure is that it uses many default httpd configurations, e.g. the SELinux labels. The disadvantage is that the default configuration of the distribution is modified. It is generally better to leave this untouched.
__An alternative option__, in many cases a better fit to FHS compliance is the `/srv` directory. Today you would have many Domains, which are served by one or more applications. According to the FHS, the `/srv` directory is the appropriate place for storing data. You create a domain-specific directory, e.g. example.com, and therein a `htdocs` subdirectory for static html files, a `webapps` subdirectory for your web applicaion, e.g Ruby on Rails, a `mail` subdirectory for a postfix/dovecot mail hub, etc.
__An alternative option__, in many cases a better fit to FHS compliance is the `/srv` directory. Today you would have many Domains, which are served by one or more applications. According to the FHS, the `/srv` directory is the appropriate place for storing data. You create a domain-specific directory, e.g. example.com, and therein a `htdocs` subdirectory for static html files, a `webapps` subdirectory for your web application, e.g Ruby on Rails, a `mail` subdirectory for a postfix/dovecot mail hub, etc.
In this guide we use the latter option. Therefore, we use directories like `/srv/<DOMAINNAME>/` to store all data relevant to a domain, and `/srv/<DOMAINMANE>/htdocs/` for static HTML pages. If you want to use the former option, you can replace `/srv/` by `/var/www/`.
In this guide we use the latter option. Therefore, we use directories like `/srv/<DOMAINNAME>/` to store all data relevant to a domain, and `/srv/<DOMAINNAME>/htdocs/` for static HTML pages. If you want to use the former option, you can replace `/srv/` by `/var/www/`.
== Storage preparation
@ -102,10 +102,10 @@ As discussed above there are several options. In this example we use the /srv al
[source,]
----
[…]$ sudo -i
[…]# mkdir -p /srv/SITENAME/htdocs
[…]# mkdir -p /srv/SITENAME/htdocs
----
+
It you opt for thinly provisioned volumes use Cockpit to create the volume, format the filesystem and permanently mount it at the base location `/srv/SITEMANE/`. Cockpit performs all these steps, you just need to create the htdocs subdirectory.
It you opt for thinly provisioned volumes use Cockpit to create the volume, format the filesystem and permanently mount it at the base location `/srv/SITENAME/`. Cockpit performs all these steps, you just need to create the htdocs subdirectory.
+
With /srv/ as the base directory you must adjust the SELinux labels.
+
@ -195,11 +195,11 @@ Edit the copied template file and adjust it as appropriate.
# We rely on Fedora's systemwide configuration of SSL security.
# By default, certificates are managed by Apache md module (see above)
# In this case, no certificates needs bo be configured here.
# In this case, no certificates needs to be configured here.
# Otherwise, insert proper certificate configuration.
# DEFAULT mod_ssl provided, needed for initial startup.
#==> Comment OUT when module md created a certificate or you use
#==> Comment OUT when module md created a certificate or you use
# custom certificates.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

View file

@ -48,12 +48,12 @@ But by cloud base image you (usually) dont get an alternatively built but oth
_It is up to the system administrator to decide whether the functionality is identical to the extent that the advantages outweigh the disadvantages and it makes sense to use a specific cloud image as a virtual machine._
== How to proceed
First of all you need a working Fedora Server Edition including virtualization support added and libvirtd daemon active. We assume an internal network 'default' with virbr0, DHCP, and DNS set up as well (see section 'Add Virtualization Support'). External network connectivity will be provided by macvlan (ethernet interface) rsp. macvtap (libvirt naming).
First of all you need a working Fedora Server Edition including virtualization support added and libvirtd daemon active. We assume an internal network 'default' with virbr0, DHCP, and DNS set up as well (see section 'Add Virtualization Support'). External network connectivity will be provided by macvlan (ethernet interface) resp. macvtap (libvirt naming).
You have various options:
* Using Cockpit graphical interactive tool to perform a quick minimal VM setup
* Using virt-install CLI interactive tool to perform a quick mminimal VM setup based on cloud-init
* Using Cockpit graphical interactive tool to perform a quick minimal VM setup
* Using virt-install CLI interactive tool to perform a quick minimal VM setup based on cloud-init
* Using virt-install CLI interactive tool to perform a elaborate VM setup based on cloud-init
* virt-customize and virt-install CLI tools for a fairly easy, interactive VM setup
* Using any of the CLI tools to perform a script based automated installation
@ -63,7 +63,7 @@ We will only cover the former two variants here. They are so universal that they
== General preparations
Whichever of the presented installation methods is chosen, a cloud image always has to be downloaded and verified. In the case of CentOS, this involves the following steps.
1. Check on the CentOS project site the lastest release of GenericCloud image:
1. Check on the CentOS project site the latest release of GenericCloud image:
https://cloud.centos.org/centos/9-stream/x86_64/images/ At the time of this writing it was CentOS-Stream-GenericCloud-9-20220315.0.x86_64.qcow2
2. In the Cockpit terminal window, fetch a CentOS 9-stream generic image file and store it into the directory `/var/lib/libvirt/boot`. This is by convention the libvirt default location of images for installation. Check the integrity of the download.
@ -116,7 +116,7 @@ You _must_ enter a root password. This will activate the root account at the sam
====
[IMPORTANT]
====
__NON-US system administrators__: Cloud image usually configures inially a US keyboard, and you can adjust the keyboard layout after the first login at the earliest. Limit the password to matching key positions (and change it later if you want)
__NON-US system administrators__: Cloud image usually configures initially a US keyboard, and you can adjust the keyboard layout after the first login at the earliest. Limit the password to matching key positions (and change it later if you want)
====
Select _Create_ to start the installation.
@ -129,14 +129,14 @@ In the list of running virtual machines click on the newly created box.
image::virtualization/vm-install-cloudimg-centos9-020.png[Cockpit `__Create new virtual machine__` form]
The created runtime environment is rather basic. With cloud image installation, you cannot defer the creation process and fine-tune the runtime configuration, as you can with other installation options. There is a default disk configuration, e.g. a default CDrom and one disk as configured. And there is just one network connection, which uses libvirt&#8217;s default virtual network.
The created runtime environment is rather basic. With cloud image installation, you cannot defer the creation process and fine-tune the runtime configuration, as you can with other installation options. There is a default disk configuration, e.g. a default CDrom and one disk as configured. And there is just one network connection, which uses libvirt&#8217;s default virtual network.
Log in with the root account. If you look around, you will find some resemblance to a CentOS server configuration. Cockpit is installed, but not activated. Firewall installation is completely missing. The virtual disk contains one flat XFS file system. The active network configuration resides in `/etc/sysconfig/network-scripts` (due to cloud-init limitations). Residues of a NetworkManager network configuration exist in `/etc/NetworkManager/system-connections`.
Log in with the root account. If you look around, you will find some resemblance to a CentOS server configuration. Cockpit is installed, but not activated. Firewall installation is completely missing. The virtual disk contains one flat XFS file system. The active network configuration resides in `/etc/sysconfig/network-scripts` (due to cloud-init limitations). Residues of a NetworkManager network configuration exist in `/etc/NetworkManager/system-connections`.
So there is some post-installation work to do.
==== Adjust locale and non-US keyboard layout
Users of a non-US keyborad layout probably want to customize the keyboard layout first of all.
Users of a non-US keyboard layout probably want to customize the keyboard layout first of all.
1. Check the current locale configuration
+
@ -147,7 +147,7 @@ System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
----
2. List available keyboard mappings filtered by your short county code part
2. List available keyboard mappings filtered by your short country code part
+
[source,]
----
@ -170,7 +170,7 @@ de-nodeadkeys
[…]# localectl set-keymap de-nodeadkeys
...
----
The setting is immediately activ.
The setting is immediately active.
==== Network configuration
@ -192,13 +192,13 @@ The latter is now the recommended approach. It acts similar to a bridge, but wit
----
2. If you expanded the terminal window click on the VM name in the breadcrumb to get the default view. Select shutdown to stop the virtual machine.
3. An administrator who sticks to the habit that the first network adapter in the device list establishes the external connection will now edit and rearrange the existing network configuration. Select `__Edit__` to access the Configuration form.
3. An administrator who sticks to the habit that the first network adapter in the device list establishes the external connection will now edit and rearrange the existing network configuration. Select `__Edit__` to access the Configuration form.
+
image::virtualization/vm-install-cloudimg-centos9-030.png[Cockpit `__Virtual ethernet configuration form__`]
+
Replace the interface type by `__Direct attachment__` and select the external physical interface of the host in the `__Source__` field. Leave `__model__` and `__MAC address__` unchanged.
4. If you also want an internal network (and you definitely should in most cases), select `__Add network interface__`. A nearly identical form pops up. Select `__Interface tpye__` as _Virtual network_ if it is not already preselected and _default_ as `__Source__`. Again, leave `__model__` (__Linux, perf__) and `__MAC address__` (__Generate automatically__) unchanged. Click Create to finish to create the network configuration.
4. If you also want an internal network (and you definitely should in most cases), select `__Add network interface__`. A nearly identical form pops up. Select `__Interface type__` as _Virtual network_ if it is not already preselected and _default_ as `__Source__`. Again, leave `__model__` (__Linux, perf__) and `__MAC address__` (__Generate automatically__) unchanged. Click Create to finish to create the network configuration.
5. Start the virtual machine again.
@ -217,7 +217,7 @@ If the name service setup in the host is correct, the short name should work. Ot
If pinging the IP address works, fix the name resolution. Otherwise check again network configuration.
2. *Check external connections*
+
From a machine on your network try to ping the virtual machinge
From a machine on your network try to ping the virtual machine
+
----
[…]$ ping vm1-el9.example.com
@ -246,7 +246,7 @@ Test if login and sudo work!
[…]# sudo passwd -l root
----
+
Log off and try to login as root (e.g. using the host's Cockpit instance). The system should respong with 'Login incorrect'.
Log off and try to login as root (e.g. using the host's Cockpit instance). The system should respond with 'Login incorrect'.
3. If you decide to use the root account and you chose a simple password during installation, you should set a long and secure password. Log in as root and execute
+
@ -362,7 +362,7 @@ Log in to the root account giving the password displayed early in the installati
[IMPORTANT]
====
__**NON-US system administrators**__: Cloud Image usually configures a __US keyboard__ first! The easiest way is to copy & paste the password. Limit the new password to matching key positions, choose a rather simple one to minimize the chance ot typos, and change it to a secure password later after keyboard configuration..
__**NON-US system administrators**__: Cloud Image usually configures a __US keyboard__ first! The easiest way is to copy & paste the password. Limit the new password to matching key positions, choose a rather simple one to minimize the chance of typos, and change it to a secure password later after keyboard configuration.
====
==== Post-Installation Tasks
@ -378,7 +378,7 @@ System Locale: LANG=en_US.UTF-8
VC Keymap: us
X11 Layout: us
----
b. List available keyboard mappings filtered by your short county code part. Replaye "de-" by your country, i.e. "<COUNTRYCODE>-"
b. List available keyboard mappings filtered by your short country code part. Replace "de-" with your country, i.e. "<COUNTRYCODE>-"
+
[source,]
----
@ -401,7 +401,7 @@ c. Determine applicable key mapping and apply it
[…]# localectl set-keymap de-nodeadkeys
...
----
The setting is immediately activ.
The setting is immediately active.
2. Check network connection
+
@ -516,7 +516,7 @@ The use of Cloud Base Images to create a distribution's virtual machine installa
=== Short explanation of the virt-install parameter used
--name VM_NAME:: Unique name of the VM to install as shown e.g.in VM list
--name VM_NAME:: Unique name of the VM to install as shown e.g. in VM list
--memory 3074:: Amount of memory to allocate, adjust as appropriate
--cpu host:: same cpu type as host
--vcpus 3:: number of cpus for VM, adjust as appropriate
@ -524,7 +524,7 @@ The use of Cloud Base Images to create a distribution's virtual machine installa
--import:: Fixed, skips installation procedure and boots from the first (virtual) disk as specified by the first disk parameter.
--graphics none:: Fixed, enforces a redirect of the VM login prompt to the host terminal window for immediate access.
--disk /var/lib/libvirt/images/VM_NAME.qcow2, format=qcow2,bus=virtio:: disk image file, adjust VM_NAME
--network direct,source=enpXsY,source_mode=bridge, model=virtio:: specify _external_ netwok (macvlan) __first__, it will get the name eth0 as usual. Adjust interface name as appropriate.
--network direct,source=enpXsY,source_mode=bridge, model=virtio:: specify _external_ network (macvlan) __first__, it will get the name eth0 as usual. Adjust interface name as appropriate.
--network bridge=virbr0,model=virtio:: specify the _internal_ network (libvirt generated bridge) _second_. It will get the name eth1 as usual.
--cloud-init:: Deal with nocloud configuration using defaults

View file

@ -55,7 +55,7 @@ centosstream-8 x86_64 CentOS Stream 8
centosstream-9 x86_64 CentOS Stream 9
----
The guestfs-tools project provides a fairly complete set of variants available in recent years. Omitting the grep term reveals an impressive list of of distribution images provided.
The guestfs-tools project provides a fairly complete set of variants available in recent years. Omitting the grep term reveals an impressive list of distribution images provided.
We want the latest and greatest CentOS release and would like to get some info about details.
[source,bash]
@ -94,13 +94,13 @@ Even a quick and experimental setup should take the opportunity to set a number
--firstboot-command 'useradd -m -G wheel -p "" hostmin ; chage -d 0 hostmin'
----
Please, adjust the above example as apropriate!
Please, adjust the above example as appropriate!
Specifically, _US users_ will omit the 6. line ('--firstboot-command 'localectl&#8230;&#8203;`) of the virt-builder command, other will have to adjust the keyboard layout. On your local Fedora Server run `localectl list-keymaps`to get a list of supported keyboard layouts and their identifiers.
If you really are to install a _short term test installation_ you may omit the third line (`--root-password &#8230;&#8203;`) of the virt-builder command for connvenience and work directly as root. The app will automatically generate a password and display it. Don&#8217;t forget to copy and store it safely.
If you really are to install a _short term test installation_ you may omit the third line (`--root-password &#8230;&#8203;`) of the virt-builder command for convenience and work directly as root. The app will automatically generate a password and display it. Don&#8217;t forget to copy and store it safely.
You get a lot ot output. The process takes some time. Be patient.
You get a lot of output. The process takes some time. Be patient.
[source,bash]
----
@ -191,7 +191,7 @@ Log in with the administrative user account (hostmin in this example). You can l
=== Adjust the new VM instance
You did a minimal customization so var and need to do some further adjustments.
You did a minimal customization so far and need to do some further adjustments.
==== Network consolidation

View file

@ -61,7 +61,7 @@ Select `__Terminal__` in the left navigation bar and issue the commands line by
[…]# sudo sh -c ' cd /var/lib/libvirt/boot/ && sha256sum --ignore-missing -c *-CHECKSUM '
----
You can safely ignore the warning of the last command about not correctly formated lines.
You can safely ignore the warning of the last command about not correctly formatted lines.
You can provide additional installation media in an analog way. With everything necessary in place, we can start installing a virtual machine.
@ -73,16 +73,16 @@ This guide uses Cockpit, version 326, and Cockpit machines, version 321. On upda
To start a VM installation, connect your desktop browser to the Cockpit instance of your host server. Consult the xref:installation/postinstallation-tasks.adoc[post-installation guide] to find out the possible connection paths. Log in as root or with your administrative account. In the overview (start) page select `__Virtual Machines__` in the left navigation column and then `__Create VM__` (the button `__Import VM__` next to it refers to the other alternative, using disk images) and fill in the form that opens..
image::virtualization/vm-install-fedoraserver-cockpit-020.png[Cockpit `__Create new virtual machine__` form]
First, specify a name for the virtual machine to be created. It must be unique in the host servers name space. Select an connection type, usually system. See explanation in the xref:virtualization/installation.adoc[Adding Virtualization Support] guide.
First, specify a name for the virtual machine to be created. It must be unique in the host servers name space. Select a connection type, usually system. See explanation in the xref:virtualization/installation.adoc[Adding Virtualization Support] guide.
Then select the installation type to be used. The drop down menu offers several alternatives:
Download an OS:: Download from a remote location. You have to choose the Distribution from a drop down menu in the next field. It includes various distributions and version. But you can&#8217;t select the Fedora edition. Not an recommendable option.
Download an OS:: Download from a remote location. You have to choose the Distribution from a drop down menu in the next field. It includes various distributions and version. But you can&#8217;t select the Fedora edition. Not a recommendable option.
Cloud base image:: That refers to the special case of cloud disk images. That is not covered here.
Local install media:: Use a ISO image or a distro install tree stored on the local disk. This is the option we want to use here. Select this option and specify in the next field the fully qulified path and filename.
URL (ISO image or distro install tree):: The same as 'Download an OS', but you can freely specify the exact distribution by download URL in the next field and do not depend on a preset list
Network boot (PXE):: That&#8217;s another special case we don&#8217;t cover here. You need to set up a special install server beforehand.
Local install media:: Use a ISO image or a distro install tree stored on the local disk. This is the option we want to use here. Select this option and specify in the next field the fully qualified path and filename.
URL (ISO image or distro install tree):: The same as 'Download an OS', but you can freely specify the exact distribution by download URL in the next field and do not depend on a preset list
Network boot (PXE):: That&#8217;s another special case we don&#8217;t cover here. You need to set up a special install server beforehand.
As mentioned above choose `__Local install media__` and select in the drop down menu of the following row the fully qualified file name. In our example of Fedora Server 41 it is `/var/lib/libvirt/boot/Fedora-Server-dvd-x86_64-41-1.3.iso`. The drop down menu works a bit unfamiliar. You have to select the target file step by step from subdirectory to subdirectory up to the file name.
@ -118,7 +118,7 @@ image::virtualization/vm-install-fedoraserver-cockpit-040.png[Cockpit `__Virtual
Replace the interface type by `__Direct attachment__` and select the external physical interface of the host in the `__Source__` field. Leave `__model__` and `__MAC address__` unchanged.
Next, if you also want an internal network, select `__Add network interface__`. A nearly identical form pops up. Select `__Interface tpye__` as _Virtual network_ if it is not already preselected and _default_ as `__Source__`. Again, leave `__model__` __virtio (Linux, perf)__ and `__MAC address__` __Generate automatically__ unchanged.
Next, if you also want an internal network, select `__Add network interface__`. A nearly identical form pops up. Select `__Interface type__` as _Virtual network_ if it is not already preselected and _default_ as `__Source__`. Again, leave `__model__` __virtio (Linux, perf)__ and `__MAC address__` __Generate automatically__ unchanged.
Now everything is ready and the installation can begin.
@ -134,12 +134,12 @@ Start with installation as usual. You may basically follow the xref:installation
The installation process will take some time.
If you want to save the disk image for future VM creation, select shutdown, copy the image to `__~/libvirt/boot/__`, and then start the VM anew for post-installation steps. Otherwise restart according the installation program&#8217;s advise and procede with post-install.
If you want to save the disk image for future VM creation, select shutdown, copy the image to `__~/libvirt/boot/__`, and then start the VM anew for post-installation steps. Otherwise restart according the installation program&#8217;s advise and proceed with post-install.
____
*__Excursus__: Save generated virual machine for later reuse*
*__Excursus__: Save generated virtual machine for later reuse*
Sometimes, after selecting __Shutdown__ the machine automatically start again. Login with your administrativ account and perform a shutdown: `sudo shutdown -h now`. Then switch to a host's terminal window and execute:
Sometimes, after selecting __Shutdown__ the machine automatically start again. Login with your administrative account and perform a shutdown: `sudo shutdown -h now`. Then switch to a host's terminal window and execute:
[source,]
----
[…]# qemu-img convert -O qcow2 /var/lib/libvirt/images/{VM_NAME}.qcow2 /var/lib/libvirt/boot/fedora-servervm-img.qcow2
@ -175,7 +175,7 @@ All subsequent tasks must be executed with ROOT privileges. If the root account
1. *Check hostname and time synchronisation*
+
A correct hostname is specifically important for DHCP of the internal network to work properly. A correct time is important vor various tasks, sopecifically syncronization.
A correct hostname is specifically important for DHCP of the internal network to work properly. A correct time is important for various tasks, specifically synchronization.
+
a. __Check hostname__. You need a correct static hostname.
+
@ -230,7 +230,7 @@ NAME UUID TYPE DEVICE
enp1 47df4730-171e-3bfe-b5d9-4238137e0f70 ethernet enp1
enp2 7627fc10-f1bf-3220-99e2-3bd369837439 ethernet enp2
----
b. Set the DNS serach path for the internal interface
b. Set the DNS search path for the internal interface
+
If enp2 it the internal interface, set dns search and deactivate IPv6 that is not used internally
+

View file

@ -23,7 +23,7 @@ image::virtualization/vm-management-cockpit-001.png[Cockpit Virtual Machines Ove
If there is no tab "Virtual Machines" the corresponding Cockpit module, cockpit-machines, is not installed yet. Consult the guide xref:virtualization/installation#_finishing_cockpit_machines_configuration[Adding Virtualization Support] for information how to install and prepare the module.
The virtual machines _overview page_ lists in the central area all virtual machines installed along with their current state. In the example above there are 3 virtual machines, 2 of them running. The most frequently executed action, shutdown rsp. launch, is directly accessible as a button. Additional commonly needed functions are offered in a drop-down menu to the right of it. It even offers a (simple) migration to another machine.
The virtual machines _overview page_ lists in the central area all virtual machines installed along with their current state. In the example above there are 3 virtual machines, 2 of them running. The most frequently executed action, shutdown resp. launch, is directly accessible as a button. Additional commonly needed functions are offered in a drop-down menu to the right of it. It even offers a (simple) migration to another machine.
=== Manage a virtual machines basic host runtime environment
@ -216,13 +216,13 @@ In the network section of the VMs detail page there is just one interface with 3
image::virtualization/vm-management-cockpit-033.png[Cockpit edit libvirt virtual interface]
The form shows the definition of the current internal network. Just modify the _Interface type_ from "Virtual network" to "Direct attachement" and _Source_ from "default" to "enp1s0", the host physical interface. Save your selection and reboot. Assuming DHCP works, the virtual machine has a perfectly working connection to the public network, including name resolution and default firewall configuration. Otherwise you have to define a static network configuration.
The form shows the definition of the current internal network. Just modify the _Interface type_ from "Virtual network" to "Direct attachment" and _Source_ from "default" to "enp1s0", the host physical interface. Save your selection and reboot. Assuming DHCP works, the virtual machine has a perfectly working connection to the public network, including name resolution and default firewall configuration. Otherwise you have to define a static network configuration.
Even if you need a public interface in addition to the existing internal interface you may prefer to edit the existing interface and later add a new internal interface. That way you follow the common practice of always setting up the public interface as the "first" one, i.e. enp1s0 or eth0.
==== Delete an interface
As an example, the virtual maschine is equipped with two interfaces, a public (enp1s0) and an internal (enp7s0).
As an example, the virtual machine is equipped with two interfaces, a public (enp1s0) and an internal (enp7s0).
image::virtualization/vm-management-cockpit-034.png[Cockpit delete a libvirt virtual interface]

View file

@ -6,9 +6,9 @@ a. On the server, create a configuration file and edit
----
[…]# vi /etc/ssh/sshd_config.d/60-local.conf
# Local custimization: disable password login except for
# one (optionally add some more) user as a fallback option.
PasswordAuthentication no
# Local customization: disable password login except for
# one (optionally add some more) user as a fallback option.
PasswordAuthentication no
Match User hostmin
PasswordAuthentication yes