Adapting a running installation to OStree: the adventure begins (with a lot of questions)



Hello to all, first of all I'd like to congratulate ostree developers
for this amazing piece of software. I see a of of future on it and I
hope it will improve a lot the Linux usage, specially on the desktop
side.

I have a heavy duty here, which consists in updating a current
operating system based on a old version of gentoo (from around 2011)
into a updated system manageable by ostree. I cannot just format this
system, because it's deployed on thousands of machines to which I do
not have direct access. So no installation from scratch :-( Perhaps
though SSH, but not always. So I must upgrade them automatically, in
runtime and guess what? Atomically :-). But yes, the update can reboot
the machines normally.

Anyway, I know OStree may not be very mature right now, but it seems
we will be able to use it in production, as it seems to run fine on
Atomic Project.

So, I've been following the documentation provided in ostree source
code as well as its manpages.

My plan is first of all install ostree in this system. As I could not
compile it in those machines, I copied ostreee executable and
dependencies from the CentOS atomic (v2015.6) and shipped it with an
newer version of glibc (2.17, as opposite to the 2.12 from the current
system), required by the binaries. It seems to work and I could do
things like creating a bare repository, check log, etc.

I put all the libraries ostree depends on in a directory and now I run
it with a simple script:

#!/bin/bash
# FILE: /usr/bin/ostree
LD_LIBRARY_PATH=/usr/ostree/ /usr/ostree/glibc/lib/ld-2.17.so
/usr/ostree/ostree.real "$@"

So I'd like to know if you see any problems with this approach. My
idea is that, after ostree is running properly, an admin upgrade (or
deploying another branch) will update the system to a new
installation, with newer glibc (probably it will be something based on
CentOS, so I'll be able to use rpm-ostree), simple like this. Am I
being too ingenuous? Is there any thing which can prevent this
approach?

I have also changed the directories structure, putting everything into
/usr and creating the correspondent sym-links. No problems until now.

Then I need a way of putting the current tree into a repository, in a
way it can be replicated to the other machines. That's my first
problem. I see a commit command, but I don't know where it will get
the changes from. My first thought is getting it from /, but I can put
them in a separate directory (when I can chroot manually for changes).
But no idea about how to proceed.

Then there's the boot manager problem. I found almost nothing about
how to adapt the boot manager, just an overview (Booting and initramfs
technology documentation page). I'd like some help regarding this too.
Is ostree somehow used during the boot phase? I ask that because it
might prevent me from using the glibc trick above. The GRUB version
here is quit old (0.97), so I need to know if you think it's suitable
for usage with ostree. If not, I'm open to suggestions :-)

I have already as an experiment a HTTP server with a repository
containing CentOS (built by rpm-ostree compose) and this is my first
goal: update my current system to this one. Any thoughts?

I thank you in advance and do not expect you have all the answers, but
any clues will be very useful.

-- 
Sent from my mind


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]