guix-devel
[Top][All Lists]
Advanced

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

Scope of "GuixOps" (was Re: [ANNOUNCE] ganeti-instance-guix)


From: Marius Bakke
Subject: Scope of "GuixOps" (was Re: [ANNOUNCE] ganeti-instance-guix)
Date: Wed, 20 Sep 2017 21:44:37 +0200
User-agent: Notmuch/0.25.1 (https://notmuchmail.org) Emacs/25.2.1 (x86_64-unknown-linux-gnu)

Ludovic Courtès <address@hidden> writes:

> Hi!
>
> [- ganeti]
>
> Marius Bakke <address@hidden> skribis:
>
>> When you want to try GuixSD, but all you have is a Ganeti cluster...
>>
>> I'm pleased to announce ganeti-instance-guix[0], a GuixSD provisioner
>> for Ganeti.  With it you can launch any GuixSD configuration file as
>> a virtual machine, optionally using a specific Guix git revision.
>
> That looks nice!

Thanks!  Longer term I intend to create a Guix-centric web frontend for
Ganeti similar to <https://grnet.github.io/ganetimgr/>.  Stay tuned!

> I wonder what we could do longer-term to simplify provisioning of GuixSD
> VMs/containers managed by other tools.  Perhaps that’s a job for
> “GuixOps”?  What’s your take on this?

For integration with common "cloud" providers (Openstack, AWS, etc), it
would be great to create a VM (or disk) image that does this on boot:

1) Resize partition to use whole disk.
2) Reconfigure/init from a configuration file URL, typically a
provider-specific method of providing metadata to VM.
3) Possibly runs `guix pull` against some similar metadata parameters.

Then Guix could conceivably be supported by other provisioning tools
that works with such systems (Terraform etc).  This would also go a
long way towards PXE booting...

I haven't really given "GuixOps" a lot of thought until now, but I
imagine a more low-level administration tool along the lines of...

$ guix machine --add htpc htpc.local
$ guix machine htpc reconfigure ~/dotfiles/guixsd/xbmc.scm
$ guix machine htpc reboot

"reconfigure" here would build the system locally and send over the
closure, so that the remote system never needs to `guix pull`.

For provisioning, maybe something like...

$ guix provision --provider pxe ceph-osd{1..21} <spec>
$ guix provision --provider ganeti guixbuilder{1..4} <spec>

<spec> would adjust hostname and IP addresses according to some
criteria and register the machines.  This is loosely inspired by xCAT
<https://xcat.org/> and would require a stateful database.

Now I'm getting carried away:

$ guix machine --edit r2d2 --ipmi address@hidden:password
$ guix machine r2d2 console (SOL)
$ guix machine r2d2 powercycle (IPMI/API)

Arguably some of this falls well outside the scope of Guix, but I do
think there is room for an all-round systems management solution.

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]