All right, we're going to continue with the next talk.
This is Voida and he's going to talk about building
a digital inventory with Nick Suez modules, right?
So a round of applause for Voida and thank you very much.
Thank you.
Good evening, everyone.
I would like to talk about what can be achieved with Nick Suez modules
when used not for, you know, better than service,
but just as a language for expressing thanks.
So the point for today, it's clear.
I'll show what I did currently.
I don't say it's perfect, definitely not yet.
We very pleased if we can have a talk after,
you know, have a chat after the talk.
If you can ask me, and of course,
give me advice, we appreciate it.
Anyway, what did it start?
I work as a salesman at a high school.
If you don't know, well,
VNSS admin here means controlling everything that can be controlled
with buttons, right?
And, you know, there is some kind of salary,
but it's a public money salary.
So we use open source, not only because it's free as a freedom,
but of course because it's free as a beer,
so we can actually have it.
And so this is only a very small part of what we do,
all the services we manage.
And the question now is, what happens if this cool
buys another computer?
What do we do?
And well, there is kind of a lot what has to be configured.
Even though, in itself, it's pretty simple.
We have done it for the previous 100 computers.
What was the deal?
It's just a little bit of configuration for each of these very tiny parts.
For the problem is, will you remember?
And if you do just the part and leave the rest for your colleague,
well, he knows what is actually to be done.
And he won't.
That's a problem.
So what did we try to solve it?
But of course, this is part of this,
take Google sheets and put everything inside.
Which is easy, but first of all, there is no good player.
So when something is wrong, you don't know why, how, who, how long?
And, you know, it is supposed to be rectangular,
but if you ever let people use tables, you know,
whenever they have to, they need to leave something inside.
They will just pick another column, put it there.
And in the end, it's anything but machine readable.
And course references, that is saying,
you know, this machine is connected to this network switch.
It's, no, how, how do you do it?
So of course, you can use structured languages.
Those have a specifically designed for keeping machine readable content.
But it's really tedious to write by hand.
If you have 100 machines, there are almost identical,
but at the same time, one of them is special.
So you need to keep those defaults inside the data.
So that's once in a while, you can deviate its tedious to write.
And if you want data validation, you want to be sure that the real
and you assign the workstation to actually exist,
you are on your own.
There's a lot of special purpose languages for this kind of task.
Sort of functional languages that are built around data
to structure it and to validate it.
And they're very, very cool, very powerful,
if you haven't seen them yet, I recommend doing so.
But the type system often doesn't match what I need.
Especially, it's visible with several references.
Usually, I want to say that the workstation is computed to the switch.
And at the same time, I would like to see the information on the other side.
If I look at the switch details, I want to know what computers are connected there.
And doing this with such languages is pretty difficult.
Even sites keep it in the role pattern.
Which works pretty well, but it's super tedious for data validation,
because they are completely on their own.
Overall, I don't know where looping over the arrays of data
and checking constraints.
So what I do right now is writing it in the service modules.
You already probably know this thing.
If it works so well for expressing Linux service,
why not reuse it and just express our needs there?
I have a workstation.
It is a model and some place.
It has some network details.
And it's all the defaulting with all the priority resolution,
merging, you know, lib, mkforce and stuff.
They already have I know and love.
And it's possible evaluating something as if it was an XS module
as you are used to doing it.
It's possible there's a function and if you feed it in a similar file
to what I showed here, with the modules definition aside,
then it will do exactly what you expect.
Bell up.
The thing that then you can export a JSON and use from other languages.
If you look at this, we have all the power of an XS module.
So there was a mention of a switch that's called Backbone 2.
And it's port is a tan.
This is all validated.
This is actually across reference to the data expressed with the switch.
And if we then evaluate it, then of course it gets all of the stuff that's defaulted,
but overedible on demand.
And you can see there is a VLAN that was automatically inherited
because what I connected there was a computer.
So we know it's an internal VLAN.
And then if we have this, if we have all of this data collected,
well, we can easily use it inside our MixOS server configuration.
So this is a way to generate DNS records for all the switches,
all the workstation and stuff.
We also, yeah.
I'll have to do very well.
Just very quickly.
Pay in front, sort of, sort of Ansible.
You can use ingest, the JSON configuration switch with all the VLANs and stuff.
You can generate images of what the network actually looks like.
And also you can ingest it in whatever else you want.
I promise, I'll publish this very soon.
It's a pity I haven't done it yet.
But really, I promise it will be done.
I'll investigate more easy way for the cross references.
I showed, even though they work somehow,
and investigate evaluation performance.
Thank you very much.
It was a very, very quick talk.
I'll be happy to discuss all of this video later.
Thank you.