Scale and infra as code (Ansible/TF)

Howdy folks,

How do you manage your LXD fleet on scale? I mean CLI is fine can be tuned nicely but if things are getting more serious We are used to different workflow than bashing around.

There is Terraform and Ansible community support, but development cadence is slow and both are missing support for VMs at the moment.

Usable web front-end is complete scifi :slight_smile:

I Wonder how YOU guys handle your LXD workloads or we have so little production workloads out there…

@stgraber From project point of view any plans to allocate some time and help out folks with what they have or prepare official provider/module for LXD?

Cheers

Tom

1 Like

I agree with you, better (official?) support for Terraform and Ansible would certainly boost adoption. I know that Canonical is pushing for Juju, but let’s be frank and acknowledge that good Terraform and Ansible support is still needed for broader adoption.

Btw, Terraform provider (GitHub - terraform-lxd/terraform-provider-lxd: LXD Resource provider for Terraform) does support VMs, but lacks native support for Projects or other newer stuff.

@matjaz Thanks for mentioning vms. I missed that somehow last time…

We don’t really have much time for us to spend on external integrations.
So far I believe I’ve spent more time helping tweak some stuff in the Ansible integration, adding support for projects and remotes than I have helping the Juju folks with theirs :slight_smile:

I’d certainly love to see the Ansible integration rewritten to use pylxd instead of shelling out to the CLI, but that’s mostly an implementation detail, from a functional point of view, it’s been working great in my experience. Note that I’m talking about the connector which lets you connect to existing instances over lxc exec and lxc file rather than through SSH.

I’ve not actually looked at those modules which let you directly create your instances through Ansible as that’s not really been something I’ve ever needed to do myself.

In general our posture has been that we’re extremely happy to assist with any needed information or missing API that those integrations may need to work properly. We’ve done some small changes here and there for terraform-lxd and answered a few questions for the Ansible and Puppet integrations. But the fact is, we’re not experts in any of those tools (or in some cases, languages) so it’s far better for someone who’s got great knowledge of Ansible, Terraform, Puppet or Juju to work on the integration themselves and reach out to us when they need help with something on the LXD side.

I use Juju https://juju.is/

Ansible and Terraform to me don’t really hold a candle to it in terms of simplicity of use and getting started writing custom VMs… and I take those and apply them to LXD, AWS, and Azure

I’ve used ansible more than TF… at a jobsite… and what struck me was that the lack of relations really hurts your ability to modularize your infra… maybe I just am stubborn but… I don’t ever care to pick up ansible or TF…

Thanks for these tips.