fast-vm-repo - Get fast-vm images from terminal
Tired of remembering where to look for public fast-vm images (here)? The new fast-vm-repo
scripts comes to help by providing same content as the website with public fast-vm images without need to open up the browser. Bonus feature: auto-completion in terminal for repository and image names.
GitHub repository: https://github.com/ondrejhome/fast-vm-repo/
Years long idea at the bottom of the Issues page of fast-vm
project coming to implementation - repository system for fast-vm images. In its current form providing the comfort of just getting the fast-vm image repository metadata, looking at available fast-vm images from terminal and choosing which one to import into local fast-vm.
Installation on RPM based systems
- Enable the COPR repository with fast-vm (which now also contains
fast-vm-repo
andfast-vm-public-repositories
packages). - Install the
fast-vm-repo
package which provides thefast-vm-repo
script without any repositories. - Get some repository files (
.repo
files) either by- installing package
fast-vm-public-repositories
that will install all available public repositories from all mirrors - same as using the website with public fast-vm images OR - installing your closest mirror repository package (
fast-vm-public-repositories-kr
package for South Korean mirror orfast-vm-public-repositories-cz
for mirror in Czechia) OR - or just downloading directly
.repo
file from fast-vm-repo GitHub repository into/etc/fast-vm.repos.d/
.
- installing package
Example installation on EL8 systems:
# curl -o /etc/yum.repos.d/fast-vm.repo https://copr.fedorainfracloud.org/coprs/ondrejhome/fast-vm/repo/epel-8/ondrejhome-fast-vm-epel-8.repo
# dnf install fast-vm-repo
# dnf install fast-vm-public-repositories
...
=======================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================
Installing:
fast-vm-repo noarch 0.3-1.el8 copr:copr.fedorainfracloud.org:ondrejhome:fast-vm 29 k
fast-vm-public-repositories noarch 20220222-1.el8 copr:copr.fedorainfracloud.org:ondrejhome:fast-vm 7.2 k
Installing dependencies:
fast-vm-public-repositories-cz noarch 20220222-1.el8 copr:copr.fedorainfracloud.org:ondrejhome:fast-vm 9.9 k
fast-vm-public-repositories-kr noarch 20220222-1.el8 copr:copr.fedorainfracloud.org:ondrejhome:fast-vm 9.9 k
...
Note that versioning of fast-vm-repo
and fast-vm-public-repositories
is decoupled from each other intentionally - there could be changes to list of public repositories regardless of fast-vm-repo
script.
Basic usage
Usage workflow might sound familiar to user of RPM based systems and contains following steps:
- Download the repository metadata (if not already present)
# fast-vm-repo repolist refresh [inf] Remote file: https://kr.famera.cz/fastvm-images/repository/kr_alma.xml [inf] Remote file size: 2065' [ok] Downloaded https://kr.famera.cz/fastvm-images/repository/kr_alma.xml ... [inf] Remote file: http://ftp.linux.cz/pub/linux/people/ondrej_famera/fastvm-images/repository/cz_alma.xml [inf] Remote file size: 2245' [ok] Downloaded http://ftp.linux.cz/pub/linux/people/ondrej_famera/fastvm-images/repository/cz_alma.xml ... RepoID Enabled Cached Images Repository description cz_alma yes yes 3 CZ Alma Linux images ... kr_alma yes yes 3 KR AlmaLinux images ...
- Browse list of available images.
# fast-vm-repo list === Repo: (cz_alma) CZ Alma Linux images Image|Hack| Download size |Extra Image name Size|file| XZ | ZST | file alma-8.3 6g yes| 428MB| 445MB| no alma-8.4 6g yes| 440MB| 456MB| no alma-8.5 6g yes| 483MB| 499MB| no ... === Repo: (kr_alma) KR AlmaLinux images Image|Hack| Download size |Extra Image name Size|file| XZ | ZST | file alma-8.3 6g yes| 428MB| 445MB| no alma-8.4 6g yes| 440MB| 456MB| no alma-8.5 6g yes| 483MB| 499MB| no ...
- Import image into local fast-vm (In example below the Alma Linux 8.5 XZ image is imported from Czechia mirror)
# fast-vm-repo import cz_alma alma-8.5 [ok] Calling fast-vm-image to import the image. =========> fast-vm-image [__][inf] Detected remote file with size '524128308'. [__][inf] Detected remote file with size '1707'. ...
Note that in case that you run above command on machine that hasn’t
fast-vm
installed your will receive following message. Thefast-vm-image import ...
command can be used in verbatim form on machine that has fast-vm installed.# fast-vm-repo import cz_alma alma-8.5 [inf] fast-vm-image import alma-8.5 http://ftp.linux.cz/pub/linux/people/ondrej_famera/fastvm-images/generated/6g__alma-8.5.img.xz https://raw.githubusercontent.com/OndrejHome/fast-vm-public-images/master/alma/xml/alma-8.3-current.xml https://raw.githubusercontent.com/OndrejHome/fast-vm-public-images/master/alma/hacks/6g_alma-8-hacks.sh [err] fast-vm-image command cannot be found, you probably need to install it and then you can run above command to import the image.
Advanced uses
- Disable the repositories you don’t want to use by changing
enabled=1
toenabled=0
in/etc/fast-vm.repos.d/*.repo
files - this is recommended instead of deleting the files as the updated version of package could bring such file back while existing disabled file should remain untouched by the updates. - Checking the details of the images with
fast-vm info <repo> <image_name>
- At present you can find the URLs for the resources for given image file and placeholder for description of image that is not yet populated with data. - To import the images that are available in ZST format you may add the
zst
at the end import command to use that image instead. By default the format is xz. For examplefast-vm-repo import cz_alma alma-8.5 zst
will import ZST image. Both XZ and ZST images are identical in content but while ZST is slightly larger in size, it imports several times faster than XZ and is a recommended choice if you use SSD disk for fast-vm.
Whats next?
- Documentation on how to contribute and maintain your own fast-vm image repository. This will allow same convenience of getting the public images also to users that wants to use fast-vm for their internal images that cannot be made public. One such idea is already repository of RHEL images at company I work right now.
- Ability to download all needed files for given image to local directory - for those cases where you need few images with all the needed files for offline use.
- Mirroring subcommand to allow creating fast-vm image repository mirrors - both for public or internal use
In long term (which might take some time):
- Additional metadata that will provide information about images in repository in structured way, such as which appliance functionality is required for the image, where to import the extra files, etc.
- Integrity checking of fast-vm images in repository (for proper checksums or just for missing files/wrong links).
- Generation of webpage with images information from same data as repositories.
In summary the fast-vm-repo
script brings in some “quality of life” improvements to fast-vm users that prefers to get stuff done from one place - from the terminal.