On Tue, Jun 7, 2016 at 6:01 AM, Mahesh Kss <mahesh....@gmail.com> wrote:

>
> Hi all,
>
>
> Need some of your thoughts for the below mentioned exercise. I am planning
> to do it using Django. But I am not sure where i can place the python
> script which monitors the network for connected hosts.
>
> Kindly share your thoughts and questions. I need to complete this as soon
> as possible(max 2weeks from now).
>
>
> Scanning tool:
> > Create a python script to extract and maintain list of all host names
> connected to a network. There should be a mechanism to determine newly
> added host in network (by maintaining new and old host list).
> (You may use virtual machines as client systems preferably Linux systems).
> > This list of hosts should be moved to database.
> > There should be an admin user across the network to access systems
> remotely.
> > There should be a provision in python script to reset password for newly
> added hosts.
> > The python script should then scan all the discovered systems in network
> for the following information:
> system name, operating system details, CPU details, RAM details, hard disk
> details.
> On each system, list of all major softwares found along with installation
> directory, version, license expiry date, etc.
> > All the extracted information should be stored in database.
> > There should be a mechanism to delete unreachable host names from host
> list and database.
> > Create a python web interface to display this information from DB nicely
> using graphs, charts, etc.
>
>
Not to disillusion you, but IMHO writing such an application within two
weeks is highly, highly improbable. Since you have a tight deadline, I'm
assuming this is either for a customer, or for a class assignment. Either
way, the timeline is too aggressive to be feasible for a production-ready
application (or really even a working alpha application).

You might want to consider integrating with an existing monitoring system
(such as Nagios, monit, etc.) or perhaps a configuration management system
such as Ansible, SaltStack, Puppet, or Chef for communicating with the
hosts and handling discovery. It's unlikely that you'll reinvent the wheel
and come up with something better than any of those purpose-built packages
that have been in development for years. Unless of course you are doing
this for your own learning purposes (but I think not given the timeline).

Django actually has a very small part to play in this entire application.
You'll probably need Celery to process the commands for adding/removing
hosts from the backend and other management tasks.

If it were me, and since you have all Linux hosts, I would start with
Ansible (and Cobbler for the DB integration). I have limited experience
with it (I'm still researching it for my own purposes), but it should be
able to handle all of the requirements except for the last couple, which
Django should be able to handle (probably in combination with Celery).

http://docs.ansible.com/ansible/developing_api.html
http://docs.ansible.com/ansible/intro_dynamic_inventory.html
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

-James

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2Be%2BciU6KDfXSkYX99ATFDDm%3DWf%2BPifnH-3vSgkw7fBoQd7SgQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to