rpm-ostree/fedostree/web/partials/installation.html
2014-01-20 05:37:44 -05:00

100 lines
3.8 KiB
HTML

<article>
<h1>Installation</h1>
<p>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.
</p>
<h3>Installation instructions (install preconfigured VM)</h3>
<p>If you just want to experiment with complete safety, a prebuilt
VM image is provided <a href="http://rpm-ostree.cloud.fedoraproject.org/images/">here</a>.
It's called <tt>fedostree-f20-demo.img.xz</tt>. To install, you must
first uncompress it with <tt>xz -d fedostree-f20-demo.img.xz</tt>. Then
using e.g. <tt>virt-manager</tt>, choose "Import existing disk image".
</p>
<h3>Installation instructions (inside an existing OS)</h3>
<p>First, install the ostree package, of course; make sure you have
ostree 2013.7 or newer.</p>
<pre>
yum install ostree
</pre>
<p>
Now, this bit of one time initialization will both
create <tt>/ostree</tt> for you, as well
as <tt>/ostree/deploy/fedostree</tt>.
</p>
<pre>
ostree admin os-init fedostree
</pre>
<p>This step tells OSTree how to find the repository you built on
the server. You only need to do this once.</p>
<pre>
ostree remote add --set=gpg-verify=false fedostree http://rpm-ostree.cloud.fedoraproject.org/repo
</pre>
<p>At this point, we have only initialized configuration. Let's start
by downloading the "minimal" install (just @core):</p>
<pre>
ostree pull fedostree fedostree/20/x86_64/base/minimal
</pre>
<p>This step extracts the root filesystem, and updates the bootloader
configuration:</p>
<pre>
ostree admin deploy --os=fedostree fedostree/20/x86_64/base/minimal
</pre>
<p>We need to do some initial setup before we actually boot the system.
Copy in the storage configuration:</p>
<pre>
cp /etc/fstab /ostree/deploy/fedostree/current/etc
</pre>
<p>And set a root password:</p>
<pre>
chroot /ostree/deploy/fedostree/current passwd
</pre>
<p>And there is one final (manual) step: You must copy your system's
kernel arguments from <tt>/boot/grub2/grub.cfg</tt> and add them to
<tt>/boot/loader/entries/ostree-fedora-0.conf</tt>, on the <tt>options</tt>
line. This step may be automated further in the future.
</p>
<p>
IMPORTANT NOTE: You must use <tt>selinux=0</tt> for now.
</p>
<h3>Booting the system</h3>
<p>Remember, at this point there is no impact on your installed system
except for additional disk space in the `/boot/loader` and `/ostree`
directories.</p>
<p>Reboot, and get a GRUB prompt. At the prompt, press `c`. Now, enter:</p>
<pre>
insmod blscfg
bls_import
</pre>
<p>Then press `Esc`. You should have an additional boot menu entry,
named `ostree:fedora:0`. Nagivate to it and press `Enter`.</p>
<h3>Inside the system</h3>
<p>To upgrade, run as root</p>
<pre>
ostree admin upgrade
</pre>
<p>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.</p>
<p>But with OSTree, it's possible to atomically transition between
different complete bootable filesystem trees. Let's now try the
<tt>standard-docker-io</tt> tree:</p>
<pre>
ostree pull fedostree fedostree/20/x86_64/server/docker-io
</pre>
<p>If you look at the <a href="https://github.com/cgwalters/rpm-ostree/blob/master/fedostree/products.json">products.json</a> script
you can see this tree contains <tt>@core</tt>, <tt>@standard</tt>, and finally
<tt>docker-io</tt>.
</p>
<p>Like above, let's now deploy it:</p>
<pre>
ostree admin deploy --os=fedostree fedostree/20/x86_64/server/docker-io
systemctl reboot
</pre>
</article>