Installation

It is recommended currently to only use fedostree inside a non-essential, disposable virtual machine (or a similar physical machine). While OSTree is carefully engineered to be safe, there is the fact that at the moment the binaries are not GPG signed nor is TLS not provided on the current server.

Installation instructions (inside an existing OS)

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/fedostree.

	ostree admin os-init fedostree
  

This step tells OSTree how to find the repository you built on the server. You only need to do this once.

	ostree remote add --set=gpg-verify=false fedostree http://rpm-ostree.cloud.fedoraproject.org/repo

At this point, we have only initialized configuration. Let's start by downloading the "minimal" install (just @core):

	ostree pull fedostree fedostree/20/x86_64/base/minimal

This step extracts the root filesystem, and updates the bootloader configuration:

	ostree admin deploy --os=fedostree fedostree/20/x86_64/base/minimal

We need to do some initial setup before we actually boot the system. Copy in the storage configuration:

	cp /etc/fstab /ostree/deploy/fedostree/current/etc

And set a root password:

	chroot /ostree/deploy/fedostree/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.

IMPORTANT NOTE: You must use selinux=0 for now.

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.

But with OSTree, it's possible to atomically transition between different complete bootable filesystem trees. Let's now try the standard-docker-io tree:

	ostree pull fedostree fedostree/20/x86_64/server/docker-io

If you look at the products.json script you can see this tree contains @core, @standard, and finally docker-io.

Like above, let's now deploy it:

	ostree admin deploy --os=fedostree fedostree/20/x86_64/server/docker-io
	systemctl reboot