Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build integration with https://github.com/purpleidea/mgmt/ #12

Open
purpleidea opened this issue Mar 25, 2019 · 2 comments
Open

Comments

@purpleidea
Copy link

Hi @joelrebel and @ncode !

I'm the main developer of https://github.com/purpleidea/mgmt/ and I wasn't sure how best to contact you, so I hope this is okay. If not, feel free to ignore/close/delete.

I came across your project, and I think it would be fantastic if we could integrate the automation of such BMC's with a tool like mgmt. In mgmt we have a concept of resources and a special language that let's you declare what you'd like to automate.

If you are interested, I think it could provide some compelling live demos and integrations. Unfortunately I cannot test directly because I do not have the appropriate hardware. Give me a shout if you'd like to discuss more. Here, or in #mgmtconfig on Freenode IRC. I'm purpleidea.

Thanks for reading!

@joelrebel
Copy link
Member

Hey @purpleidea !

This is an interesting proposal :)

Before starting the bmcbutler tool, I did take a look at mgmt, although at that point it seemed easier to build a smaller tool that would just focus on BMCs.

I do like the idea of mgmt being a more mature configuration management tool in terms of features and scalability, some of which might or might not really matter to manage BMCs, but overall it does make sense to have mgmt support to work with these devices and we let adoption drive the decision of which tool fits the job better.

As for integration/testing without access to BMCs, this is something that has been a concern,
and we do have plans to create a mock service for each of BMC models/vendors that bmclib supports - some of them have already been mocked by @ncode for tests, but we'd like to be able to spawn a mock web/ssh service per vendor/model on demand that can aid testing and integration, and now we have a good reason to put effort into this.

I'd be happy to do some test integration with mgmt for bmclib, there are quite a few things to discus about and we'll get in touch with you guys on the freenode channel.

Thanks for getting in touch :)

@purpleidea
Copy link
Author

Before starting the bmcbutler tool, I did take a look at mgmt, although at that point it seemed easier to build a smaller tool that would just focus on BMCs.

Mgmt is still a new project, but we're getting more and more useful with each added thing. Nobody else has the right core architecture to integrate bmc automation, which we think we could do very well. The use case is as follows:

  • you buy a server, you add the mac address of the bmc into mgmt. Mgmt detects your server, boots it up, runs kickstart, installs linux, etc...

As for integration/testing ...

I couldn't agree more. Having a "virtual" device that we can run our unit tests against would be invaluable. [1] When you've got something you can test, I can show you how to drop it into our test suite.

I'd be happy to do some test integration with mgmt for bmclib, there are quite a few things to discus about and we'll get in touch with you guys on the freenode channel.

Awesome! I'm happy to show you the resource API and how to get going. There are some docs here: https://github.com/purpleidea/mgmt/blob/master/docs/resource-guide.md The biggest AHA moment comes when you use the power of the Watch API that effectively gives you a mainloop per resource. Existing resources are in here: https://github.com/purpleidea/mgmt/tree/master/engine/resources NOTE a few of the early resources need a bit of code polish, but there are a bunch of good examples in there too.

I'm in channel fairly often, so just ping and hang out for a reply.

Thanks for building this!
James

[1] I'm working on an unrelated resource, and we're looking at building something similar for unit testing of that resource as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants