Coder Social home page Coder Social logo

Comments (35)

anazmy avatar anazmy commented on August 27, 2024 2

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 .

from aker.

Ramshield avatar Ramshield commented on August 27, 2024 1

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

from aker.

anazmy avatar anazmy commented on August 27, 2024 1

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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 ?

from aker.

Ramshield avatar Ramshield commented on August 27, 2024

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.

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

Ramshield avatar Ramshield commented on August 27, 2024

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.

from aker.

anazmy avatar anazmy commented on August 27, 2024

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 .

from aker.

Ramshield avatar Ramshield commented on August 27, 2024

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

from aker.

faux-eccles avatar faux-eccles commented on August 27, 2024

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

from aker.

Ramshield avatar Ramshield commented on August 27, 2024

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

from aker.

Ramshield avatar Ramshield commented on August 27, 2024

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

from aker.

ezpzhosting avatar ezpzhosting commented on August 27, 2024

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.

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

ezpzhosting avatar ezpzhosting commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

Ramshield avatar Ramshield commented on August 27, 2024

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.

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

faux-eccles avatar faux-eccles commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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.

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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.

from aker.

Diablo2050 avatar Diablo2050 commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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 ?

from aker.

Diablo2050 avatar Diablo2050 commented on August 27, 2024

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

from aker.

anazmy avatar anazmy commented on August 27, 2024

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.

from aker.

Ramshield avatar Ramshield commented on August 27, 2024

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

from aker.

Diablo2050 avatar Diablo2050 commented on August 27, 2024

@Ramshield that would be awesome thanks

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

Ramshield avatar Ramshield commented on August 27, 2024

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?

from aker.

anazmy avatar anazmy commented on August 27, 2024

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

from aker.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.