Background on managing an OSTree repository
Before you get started, it's recommended to read (at least) these two sections of the OSTree manual:
Generating OSTree commits from a CentOS base
A good first thing to try would be using the CentOS Atomic Host metadata to generate a custom host.
One time setup, where we clone the git repository, then make two OSTree repos, one for doing builds, one for export via HTTP:
# mkdir /srv/centos-atomic # cd /srv/centos-atomic # git clone https://github.com/CentOS/sig-atomic-buildscripts -b downstream # mkdir build-repo # ostree --repo=build-repo init --mode=bare-user # mkdir repo # ostree --repo=repo init --mode=archive-z2
rpm-ostree compose tree
This program takes as input a manifest file that describes the target system, and commits the result to an OSTree repository.
# rpm-ostree compose tree --repo=/srv/centos-atomic/build-repo sig-atomic-buildscripts/centos-atomic-host.json
This will download RPMs from the referenced repos, and commit the
result to the OSTree repository, using the ref named by
Once we have that commit, let's export it:
# ostree --repo=repo pull-local build-repo centos-atomic-host/7/x86_64/standard
You can tell client systems to rebase to it by combining
remote add, and
rpm-ostree rebase on the client side.