Weldr

Rethinking how we make ready-to-use operating system images.

installpkg with version check

Lorax version 36.1 added a new feature to the template’s installpkg command. This was brought about by a change to grub2 where the latest version installs the unicode.pf2 file to a different path than what is expected by the Lorax templates. This ended up causing a bit of a mess because some of the tests depend on building a new boot.iso but the new boot.iso cannot be built until the templates have been fixed to use the new path. The error wasn’t completely obvious, and wouldn’t happen until after running through most of the boot.iso build.

Read More

Project Updates for 2021

A number of things have changed since the last update on this blog. The lorax-composer project has been replaced by osbuild-composer. As of Fedora 34 lorax-composer is no longer available. The composer-cli tool has been rewritten in go, and is now available from the the weldr-client repo. In Fedora you can still install it using dnf install composer-cli and it should be 100% compatible, but with improved support for JSON output and better command documentation.

Read More

Add Files From Git Repositories

When you are building an image sometimes you need to add some configuration files, extra tools, etc. The temptation is to just copy them over from your local system and move on, but that isn’t the right answer. Unless you document where the files came from nobody looking at the image in 6 months will remember which version of them was included, where they came from, or even who created them.

Read More

User Configuration with Blueprints

The images created by lorax-composer have the root account locked and no other accounts included. This is to make sure that you cannot accidentally build and deploy an image without a password. Currently the cockpit-composer GUI does not support setting up users, but you can easily do this from the cmdline using composer-cli.

Read More

Using Composer on RHEL

Weldr aka. Composer can generate custom images suitable for deploying systems, or as images ready to upload the cloud. It works great on Fedora, but on Red Hat Enterpise Linux there’s an additional wrinkle.

Read More

Pushing composed images to vSphere

Weldr aka. Composer can generate images suitable for uploading to a VMWare ESXi or vSphere system, and running as a virtual machine there. The images have the right format, and include the necessary agents.

Read More

Pushing composed images to OpenStack

Weldr aka. Composer can generate images suitable for uploading to OpenStack cloud deployments, and starting instances there. The images have the right layout, and include cloud-init.

Read More

Pushing composed images to AWS

Weldr aka. Composer can generate images suitable for uploading to Amazon Web Services, and starting an EC2 instance. The images have the right partition layout, and include cloud-init.

Read More

What is a Dependency, Anyway

A RPM package is not just a pile of files. It’s also a pile of metadata to help with the management of those files. RPM allows the user to track files, verify them, and keep everything internally consistent through dependencies. So how do dependencies work?

Read More

Composer on the Cmdline

lorax-composer now has a command line tool, it is called composer-cli, and it can be installed from the lorax-composer repo by running yum install composer-cli. It uses the lorax-composer socket file to communicate with the API server so it must be run on the same system as lorax-composer, and by a user who has permission to access the socket. eg. root or a member of the weldr group.

Read More

Unpacking RPM: an introduction

(tl;dr version: let’s start mapping out the RPM ecosystem as a whole - from high-level abstractions and use cases down to the bits and bytes - so we can make improvements and build the software ecosystem we really want.)

Read More

Experimenting with Lorax Composer

In my previous post about Lorax Composer I said that the docker setup would be useful for keeping track of the progress of the project. It ends up that isn’t true once you start composing images. livemedia-creator and lorax-composer depend on Anaconda for actually installing packages to the images. Because Anaconda depends on system services like device-mapper, among other things, it isn’t possible to use it inside of a container. It needs a full system or a virtual machine.

Read More

File system as a requirement

The file system–a tree-like representation of file data and metadata–is a necessary component of any export from RPM data, even if the export is not to a file system. There are two reasons for this: directory permissions, and symlinks.

Read More

Other content types in BDCS

In an effort to move beyond only storing RPM content in the bdcs, I’ve been trying to extend import and export to handle JavaScript packages from npm. Npm seemed like a good first choice since there’s usually nothing to build, and since the welder-web frontend makes use of npm packages it would be a first step towards a self-hosting welder system.

Read More

Finding Weldr On IRC

The Weldr project uses IRC to communicate with each other around the world. We have team members in multiple countries and timezones and being available on a chat system is helpful. We are on the FreeNode network in the #weldr channel.

Read More