How do I automatically differentiate machines with identical hardware?

Hey folks,

I’m struggling to understand how to group sets of nodes together and have them configured differently from other groups. While I see that I can do this via hardware, we will sometimes have nodes with identical hardware being used for different purposes - for example, we will peel nodes off from our compute cluster and reconfigure them with encrypted disks to handle personally identifiable information.

I thought that maybe tags could get this done, but based on what ack says here, that won’t currently work?

I would strongly prefer to not have people copy-pasting cloud-init scripts into the UI for a number of reasons.

From what I see that leaves the option of running cloud-init scripts at the command line. But that is a bumpy option for my internal customers, given any time they’d want to update that script in puppet, they’d have to re-base64 encode it. Workable, but not smooth - and smooth is such a great selling point for so much of MaaS, I’m trying to find a better way to do this.

If anyone has thoughts or advice on how to accomplish something like this, it’s a big piece of the puzzle for us. This is one of the only things we really need to get done on a box before we kick off puppet for the rest.


@commandertso, i don’t know that we have a clean answer for you. cloud-init scripts is how we get that done. take a look at this flowchart of the process and see if you can figure out what kind of feature we need, and where it goes in the flow:

Then maybe we can add a feature request to our list.

1 Like

Nice flow chart! Thanks.

Hey @billwear - thanks for the reply. I’m sure you guys have been super busy with 3.3.

We talked about our requirements internally, and for now we’re going to just focus on driving our deploys from the API via a script or Terraform, which seems to be how a lot of other folks approach things. Going that route, based on what I know at this point, it won’t be hard to specify cloud-init configurations for sets of machines.

Based on my original post, the feature I’d like to see would be to specify which cloud-init scripts to run when you deploy to certain pools, or with certain tags, etc. If we drive this all from scripts or Terraform, we don’t really need that - but I think it’d be really helpful for the UI flow. Tag the machine and MaaS would do the rest.

Please let me know if I’m misapprehending something important about MaaS and how it does things, and if thise doesn’t make sense.

+1 to making tags more useful as part of workflow logic.

as it stands, it looks like tags are only used in the context of setting kernel boot options. it would be really useful to do other things with them, like use them for grouping. we’re looking for a type of grouping or profile functionality. cobbler and other tools do this via profiles, which are collections of configuration snippets and an install distro that you can assign to one or more machines. in most cases, the snippets are layered on top of the base install, so they’re not things you’d want to bake into an image. being able to do grouping like this in the UI and elsewhere would be very powerful. as far as i can tell, people build these relationships or groups outside of MaaS now via wrapper scripts or terraform, but it’s been difficult to assess how folks are actually using MaaS in production to share notes. i’d really like to hear more about people’s workflows here.

@commandertso, so i think you’re saying you’d like to attach cloud-init scripts to tags, the way we can now attach kernel options to tags. no, i don’t think you’re missing anything. glad you got it working, tho.

1 Like

@rockpapergoat, would you be willing to enter a feature to this effect? it carries more weight coming from a developer.

1 Like

@bernard010, thanks! i can’t stand to do engineering doc without knowing exactly how things work.

1 Like

Awesome, you are way more than me I am a newbie to Mass.
The Mass technology is awesome. Being to deploy a 100 or even 1000 instances at a time…! Very impressive. Impressive that you are the go to for everything Maas. Thanks I have a lot to learn from your answers to other problems.
I welcome flow charts the tell the entire procedure being used.