90 lines
3.2 KiB
HTML
90 lines
3.2 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).</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>
|