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

[RFE] Add categories or tree-like view in TUI #35

Closed
Ramshield opened this issue May 8, 2017 · 35 comments
Closed

[RFE] Add categories or tree-like view in TUI #35

Ramshield opened this issue May 8, 2017 · 35 comments

Comments

@Ramshield
Copy link

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!

@anazmy
Copy link
Contributor

anazmy commented May 8, 2017

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 ?

@Ramshield
Copy link
Author

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.

@anazmy
Copy link
Contributor

anazmy commented May 8, 2017

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) ?

@Ramshield
Copy link
Author

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.

@anazmy
Copy link
Contributor

anazmy commented May 10, 2017

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 .

@Ramshield
Copy link
Author

Okay, thanks for considering it, hopefully it will be implemented soon :)

@faux-eccles
Copy link
Contributor

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

@anazmy
Copy link
Contributor

anazmy commented May 12, 2017

Hey @lankyninja wb :) , not sure if tagging fits here frankly. I was thinking of something like urwid.TreeWidget
image

To organize available hosts , it fits various use cases , dev/production is one example , or @Ramshield case is another .

@anazmy anazmy changed the title Categories? [RFE] Add categories or tree-like view in TUI May 15, 2017
@Ramshield
Copy link
Author

That's perfect @anazmy! Exactly what I had in my mind!

@Ramshield
Copy link
Author

Have you been able to make any progress in it by chance?
I'd really love to start using this feature!

@ezpzhosting
Copy link

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.

@anazmy
Copy link
Contributor

anazmy commented Jun 23, 2017

@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.

@anazmy
Copy link
Contributor

anazmy commented Jun 23, 2017

@ezpzhosting thanks for your interest, does my screenshot above look similar to what you are describing?

@anazmy
Copy link
Contributor

anazmy commented Jun 23, 2017

@ezpzhosting also is the shortlist as you type feature helpful, it's available now?

@ezpzhosting
Copy link

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

@anazmy
Copy link
Contributor

anazmy commented Jun 23, 2017

@ezpzhosting I see, I think something similar can be doable

@Ramshield
Copy link
Author

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.

@anazmy
Copy link
Contributor

anazmy commented Jul 7, 2017

@Ramshield lots of personal stuff to take care of before attending to this, sorry for the delay.

@faux-eccles
Copy link
Contributor

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

faux-eccles pushed a commit to faux-eccles/Aker that referenced this issue Jul 10, 2017
…gory-grouping' into feature/35-add-cataegories
@anazmy
Copy link
Contributor

anazmy commented Jul 19, 2017

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.

@anazmy
Copy link
Contributor

anazmy commented Aug 7, 2017

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

@anazmy
Copy link
Contributor

anazmy commented Aug 9, 2017

@lankyninja back now and looking into your changes, some neat stuff there 👍

@anazmy
Copy link
Contributor

anazmy commented Aug 9, 2017

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"
			]
		}

@anazmy
Copy link
Contributor

anazmy commented Aug 9, 2017

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.

@Diablo2050
Copy link

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) ?

@anazmy
Copy link
Contributor

anazmy commented Aug 25, 2017

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 ?

@Diablo2050
Copy link

@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.

@anazmy
Copy link
Contributor

anazmy commented Aug 25, 2017

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.

@Ramshield
Copy link
Author

Hi @Diablo2050. I personally wrote a script for it. If you'd like, I'd be happy to share it!

@Diablo2050
Copy link

@Ramshield that would be awesome thanks

anazmy added a commit that referenced this issue Sep 10, 2017
anazmy added a commit that referenced this issue Sep 10, 2017
anazmy added a commit that referenced this issue Sep 12, 2017
anazmy added a commit that referenced this issue Sep 15, 2017
anazmy added a commit that referenced this issue Sep 15, 2017
Apply Hostgroups/Categories view, issue #35
@anazmy
Copy link
Contributor

anazmy commented Sep 15, 2017

@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.

@anazmy anazmy closed this as completed Sep 15, 2017
@Ramshield
Copy link
Author

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? :)

@anazmy
Copy link
Contributor

anazmy commented Sep 15, 2017

Hope you like it @Ramshield. And no donations for now, this just for fun so far, thanks for the offer though.

@Ramshield
Copy link
Author

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?

@anazmy
Copy link
Contributor

anazmy commented Nov 20, 2017

hmm, can you please open a new issue to track this point

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

5 participants