Closed Ramshield closed 7 years ago
Hi @Ramshield appreciate your feedback, what exactly you mean by unclear ?
Do you mean that having long list of hosts ? cuz the list narrows down as you type host names, this doesn't help you ?
Hi. The long list is unclear is what I mean. It would be easier to be able to divide it into categories. I now have about 40+ hosts, which isn't even close to all of them. And I can imagine if enterprises even larger than this would use this that it would be even worse. Ofcourse I'm not sure what your target is, but it would certainly help small/medium sized companies already to divide it into categories or subdirectories. Or maybe even some sort of tree that would be very useful.
I wanna make it suitable for all situations for sure , I thought that narrowing down the list of servers as you type hostnames would help , but maybe I was wrong .
I understand your request to have servers divided in sub categories here , however is it possible to provide some screenshots to show how it is not convenient as of now (considering the type-to-search feature) ?
I'm afraid I can't provide a screenshot as this is a live environment and servers of customers, so I can't share that data. But imagine using 40+ hosts in a live environment where we switch a lot between servers, and typing it every time is a bit slow, and you need to remember the hostname in such case as well. Therefor if I can divide it in something like: CustomerA's servers CustomerB's servers Internal servers
So it is easier to scroll through, looking for a hostname. I'm familiar with most hosts, but my colleagues are not.
No worries, well I need to evaluate this change as it requires considerable modifications in different layers .
I will keep this issue open to consider in future release .
Okay, thanks for considering it, hopefully it will be implemented soon :)
Would it be possible to implement a "tagging" like feature, that the filter also checks when you type? Or maybe a switch that cycles what field the filter is registering
Hey @lankyninja wb :) , not sure if tagging fits here frankly. I was thinking of something like urwid.TreeWidget
To organize available hosts , it fits various use cases , dev/production is one example , or @Ramshield case is another .
That's perfect @anazmy! Exactly what I had in my mind!
Have you been able to make any progress in it by chance? I'd really love to start using this feature!
Been following this project for a while for a potential replacement for EzeeLogin which we currently use. It would be nicer in my opinion to just have a list of categories that you can scroll through, hitting enter would then list all the servers in that category rather than having a long expanding tree.
@Ramshield have been busy the past period, but I will pick this up soon. I know for fact that @lankyninja - thankfully - has started poking around this feature.
@ezpzhosting thanks for your interest, does my screenshot above look similar to what you are describing?
@ezpzhosting also is the shortlist as you type feature helpful, it's available now?
In functionality it looks similar but after entering one of the groups it removes the rest from view to keep the interface clean. They just use the 'All Servers' category in this video but it shows a couple of seconds of the interface we currently use: https://www.youtube.com/watch?v=PTIUR4oBJxE&feature=youtu.be&t=6s
@ezpzhosting I see, I think something similar can be doable
Good to hear @anazmy, sorry if I seem impatient, I was just curious as we're currently waiting for the feature before we can roll this further out in our environment.
@Ramshield lots of personal stuff to take care of before attending to this, sorry for the delay.
I have started work on this here https://github.com/lankyninja/Aker/tree/feature/35-add-cataegories.
Next step is to refacter references to the hosts as Host objects rather than the hostnames directly.
I'll create the documentation for usage at a later time
hey @lankyninja , ur up to something here, many thanks, keep it up.
I'm think I will be clear from the stuff I got now in my hands in 1/2 weeks and will be able to focus again on getting this done.
Proposed hostgroups structure :
{
"dbservers": {
"hosts": [
"db1.ipa.example",
"db2.ipa.example"
]
},
"linuxservers": {
"hosts": [
"aker.ipa.example",
"web1.ipa.example",
"web2.ipa.example",
"db1.ipa.example",
"db2.ipa.example"
]
}
}
Looking into building a dict of Host() object instead
@lankyninja back now and looking into your changes, some neat stuff there :+1:
sample hosts.json (Maybe we need to rename that file):
First list all hostgroups :
"hostgroups": [
"linuxservers",
"dbservers"
],
Second hostgroups to be added to every host entry, every host must be part of at least one hostgroup:
{
"name": "db1.ipa.example",
"hostname": "db1.ipa.example",
"port": "22",
"key": "~/.ssh/id_rsa",
"usergroups": [
"lnxadmins",
"dbadmins"
],
"hostgroups": [
"linuxservers",
"dbservers"
]
}
Same separation logic applies, hosts.py handles both host and hostgroup dealing from/to cache, while the IdP module - Json.py for example - communicates with the back-end.
Hi anazmy, Been searching for a SSH jump server solution till i found your project, gonna to start using your solution right away. Any idea when's this feature gonna be added ? Also in a 40+ host environment and with a large team of Sysadmins how can i manage user creation and Private keys for each without using Freeipa (in a web hosting environment) ?
Hey @Diablo2050 , you caught me working on it, I'm nearly finished with the backend stuff, working on presenting the hostgroups (categories) now to the user TUI, hopefully it will be done soon.
As for user/server management, FreeIPA is the available method right now, its centralized and has a detailed WebUI. I want to write another tool to handle user/server management in a Json setup but that's for later.
May I ask you why you're not considering FreeIPA ?
@anazmy we haven't tried it and i don't know how feasible it is in a web hosting environment, for example: we have two different Geo locations for our servers and some customers(High Availability) have one in each location in case one falls then other jumps in, i don't know the how Freeipa might impact Nginx and Apache. if you can share your insights i would be grateful.
All what you mentioned should work nice with FreeIPA, if you're looking for more info kindly join our gitter chat, you can find it in the project landing page here in github, just want to leave this area for issue tracking.
Hi @Diablo2050. I personally wrote a script for it. If you'd like, I'd be happy to share it!
@Ramshield that would be awesome thanks
@Ramshield this took long time for various reasons, it should be now implemented, please try the new code and let me know how it goes. If you're using Json approach, take a look at the new file syntax.
Thanks @anazmy, I'll give it a try soon! And no worries, I'm patient, just glad it has been implemented, thanks!!
Are you already accepting donations? :)
Hope you like it @Ramshield. And no donations for now, this just for fun so far, thanks for the offer though.
Alright, just implemented it. Took a lot longer then expected as it was quite busy.
When entering a host group, the order is 'messed up', it pretty much looks random. Are you/we able to sort it alphabetical, or the as it was before, sorted as appeared in hosts.json?
hmm, can you please open a new issue to track this point
Hi anazmy,
I've been using this project in our organization now, in 40+ hosts, including routers and switches. However it's very unclear. Could you implement some kind of category system or sub-folder which we can use in Aker overview? Thanks!