I am currently deploying some new Linux Cumulus based network infrastructure and looking at taking up a small Ansible stack to automate the configuration of these switches.
Thinking about Juju and experimenting around, I’ve tried to add a debian jesse machine to a model [0].
I’m wondering what it would take to be able to manually add a debian jesse machine to a Juju model - is there a way we can create a Juju binary for debian?
I’m assuming ubuntu specific source repos, snapd, lxd, network manager, are a few of the things that Juju expects to have specific to an Ubuntu series e.g. netplan for bionic etc etc.
What if we had a ‘generic’ type machine agent that could only access a basic subset of Juju functionality.
A ‘generic’ machine agent might not have lxd, storage, or network capabilities, but would get the Juju agent installed and could run bash charms.
There was recently someone curious about using Juju against RHEL [1] and we had a similar discussion. I think it’s interesting but it’s very tough to have a product you’re sure of and proud of as our ability to make sure things work gets really hard as folks bring different environments into play. We’ll discuss it at the upcoming roadmap sprint but it’s hard to justify at the moment over other priorities.
I think the other thing is that ‘generic’ really isn’t, because the charms need to know how to install the software. If you installed onto RH you’d need yum/rpm while if the target was Debian you’d need apt. Not to mention that where config files exist on disk are likely to be different for system packages. (/etc/network/interfaces vs /etc/netplan vs /etc/sysconfig/network).
I suppose some fat charms that include the binaries they want to run might only care about “linux”, and some charms might be able to work on Debian if the repository looks close enough to Ubuntu. But I do think regardless if Juju was available for other *nix, then you’d have the same problems as to whether the charms were capable of supporting them.
I really like to use maas/juju for operations in my lab, hence (in my case) Dell+idrac+Ubuntu works super. But, occationally I get machines/devices into the environment, that cannot run Ubuntu. For those cases, any deployment will require two different paths, juju for the ubuntu machines, and X for the others… the risk being that the deployments will differ…
I do understand the difficulty… But it would have been nice… unified orchestration…