[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.
signature.asc
Description: PGP signature