rpm-ostree/README.md
2013-12-22 10:59:00 -05:00

91 lines
2.8 KiB
Markdown

Using rpm-ostree
================
This tool takes a set of packages, and commits them to an OSTree
repository. At the moment, it is intended for use on build servers.
For example, this invocation:
# rpm-ostree --repo=repo --enablerepo=fedora --os=fedora --os-version=20 create my-server-packages @standard kernel ostree fedora-release lvm2 e2fsprogs btrfs-progs httpd
Will create a ref named "fedora/20/my-server-packages", containing a
complete bootable root filesystem of those packages. As you can see
from the example above, the package set is fairly minimal, we're just
adding on "httpd".
Now, if you export the repo via any plain HTTP server, clients using
OSTree can then replicate this tree, and boot it, tracking updates you
make over time.
Pulling and booting from a client machine
=========================================
First, install the ostree package, of course; make sure you have
ostree 2013.7 or newer.
# yum install ostree
Now, this bit of one time initialization will both
create `/ostree` for you, as well as `/ostree/deploy/fedora`.
# ostree admin os-init fedora
This step tells OSTree how to find the repository you built on
the server. You only need to do this once.
# ostree remote add myserver https://mycorp.example.com/repo
Now, since we did not GPG sign our repo above, we need to disable GPG
verification. Add `gpg-verify=false` in the `[remote]` section.
# nano /ostree/repo/config
This step downloads that ref into `/ostree/repo`:
# ostree pull myserver fedora/20/my-server-packages
This step extracts the root filesystem, and updates the bootloader
configuration:
# ostree admin deploy --os=fedora fedora/20/my-server-packages
We need to do some initial setup before we actually boot the system.
Copy in the storage configuration:
# cp /etc/fstab /ostree/deploy/fedora/current
And set a root password:
# chroot /ostree/deploy/fedora/current passwd
And there is one final (manual) step: You must copy your system's
kernel arguments from `/boot/grub2/grub.cfg` and add them to
`/boot/loader/entries/ostree-fedora-0.conf`, on the `options`
line. This step may be automated further in the future.
Booting the system
==================
Remember, at this point there is no impact on your installed system
except for additional disk space in the `/boot/loader` and `/ostree`
directories.
Reboot, and get a GRUB prompt. At the prompt, press `c`. Now, enter:
insmod blscfg
bls_import
Then press `Esc`. You should have an additional boot menu entry,
named `ostree:fedora:0`. Nagivate to it and press `Enter`.
Inside the system
=================
To upgrade, run as root:
# ostree admin upgrade
Note that in our demo so far, we did not install `yum` (or even
`rpm`). Getting these to work fully is the next phase of the
`yum-ostree` development.