Erlang Computer Systems Management CONSole
Erlang
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
static
LICENSE
README
ecom-example.hrl
ecom.erl
ecomsrv.erl
ecsmcons-example.conf
ecsmcons-example.hrl
ecsmcons.erl
ecsmcons_callback.erl
ecsmcons_ws.erl
favicon.ico

README

NOTE: This repo has been superseded by:

https://github.com/comptekki/esysman

--------------------------------------------------------

Erlang Computer Systems Management CONSole (or ECSMCons)
Version 1.8

ECSMCons is an Erlang based client/server computer systems 
management console in which a web browser (with websockets
support) is used to manage computer systems.


Features:

Server

Operations that can be performed on the client from the server:

Reboot, shutdown, restart or stop erlang service, ping, wake-on-lan,
when Faronics Deep Freeze is available: freeze, thaw and get status
copy file to client and run command on client.  When the All command
check box is selected, then only the checked workstations will have
that command done on them. Restrict access based on IP address and
username/password (both configurable in ecsmcons.conf).

Client

The client periodically sends messages to the server to indicate
whether the system is "Up" and which user is logged in.  It also
does the command processing sent from the server.


Todo list:

-Get client OS, applications and hardware inventory
-Create better comments/specs for functions
-Change config file (ecsmcons.conf) to use records
-Add configurations for mac and linux


Basic setup

Prerequisites:
1. Erlang (on server and client)
		http://erlang.org
2. YAWS
	  https://github.com/klacke/yaws
	  http://yaws.hyber.org/ 



Client/Server Setup

1. Server Setup
   a. erl file setup

   	  i. ecsmcons.hrl file set up as follow:
         (see ecsmcons-example.hrl in repo)

	  ii. ecom.hrl setup (for deepfreeze and windows 7)
         (see ecom-example.hrl in repo)

	 iii. create ecsmcons.conf
         (see ecsmcons-example.conf in repo)

   	  iv. compile ecsmcons.erl and ecom.erl, ecomsrv.erl, i.e. erlc ecsmcons.erl and erlc ecom.erl and erlc ecomsrv.erl

   b. create ecsmcons.app  if command line app_start is used see below
     (see ecmscons.app in repo)

   c. run these commands from bash shell:

	  erl -name node@host -pa /path/to/ecsmcons/ebin -r ecomsrv

	  or put ecsmcons ebin in yaws.conf

	  ebin_dir = /path/to/ecsmcons

   d.
	  use browser to access http://localhost:8080
	  
	  use browser to access https://localhost:8443

	  change ports to ports you set up in yaws.conf

   e.

	  in yaws.conf set up appmods for ecsmcons

        appmods = <ecsmcons, ecsmcons>
        appmods = <ecsmcons_ws, ecsmcons_ws>

   f. create /usr/local/var/yaws/www/static and copy ecsmcons/static files there or make soft links to the files

2. Windows setup

   a. copy ecom.beam to something like c:\erl on a windows system (erlang must also be installed on windows system)
   b. set windows system environment variable "Path" to include erlang (location of erl.exe)
   c. install erlang as a service
   	  i. per http://www.erlang.org/doc/man/erlsrv.html something like this:

	  erlsrv add "0ecom" -name ecom@host -w "C:/erl" -args "-setcookie my_cookie_string -s ecom"

   e. start service
   f. set firewall to allow erl.exe to allow traffic from server IP above

---------------------------------------------------------------------------

Versions
--------
1.8

-Fix Stop Win Service All
-Tweak websocket port in Erlang/JS code

1.7

-Add wuinstall command
-Move code back to yaws appmod
-Versions in this repo 1.6 and back are done with misultin

1.6

-Add /disableshortcuts to ninite command
-Fix Column selection by adding Column select button to right of L button
-Change select/unselect all to toggle all for checkbox buttons
-Add Select all and UnSelect all checkbox buttons

1.5

-Tweak CSS
-Change status/up/hosts areas
-Change workstations params format
-Add send ninite log to server message window
-Add check/uncheck all check boxes on row by clicking workstation status area
-Add check/uncheck all check boxes on column by clicking workstation command area

1.4

-Add select/unselect all
-Add example hrl data files
-Update README to reflect examples added

1.3

-Restructure coms to mostly work through anycmd command option (i.e., most commands work through a custom built .cmd script)
-Add ecomsrv.erl for server side

1.2

-Add STATIC -define remove CSS and JQUERY -define's
-Add hi-lite to a workstation to make it easier to see when it's "UP"
-Fix individual workstations copy and com dropdowns

1.1

-Add dates/times to console output
-Add total of users in each room
-Change css color for command buttons
-Add total users for all rooms
-Add dropdown for copy all
-Fix firewall

1.0

-Add monitoring to check if same user logged in to more than one machine
-Add stop windows service All option
-Add SERVER ecom.hrl -define option
-Add FAVICON ecmscons.hrl -define option
-Add refresh of console every n milli-seconds in ecsmcons.conf
-Add Thaw/Freeze confirm popups for Deep Freeze options
-Add numeric shortcut to rooms for easy moving between rooms (1-9 only)

pre 1.0

-Have clients send messages to server for workstation Up and who is logged in
-Change DOMAIN to BROADCAST_ADDR and use DOMAIN for client domain in ecom.hrl
-CSS tweaks
-Add UPLOADS path in ec.conf and ec.erl

-Up/DF visual tweaks
-Make ec.app
-Add app_start fun for starting application from command-line

-Change username/password from simple form to jquery and cookies
-Add logout to main page
-move some ec.hrl items to ec.conf

-Add IP firewall to console access and switch to turn off/on in ec.hrl
-Add username/password access to console and switch to turn off/on in ec.hrl
-Add SSL support
-Create handler for ec.css in misultin

-Update CSS
-Fix Add all check box for reboot and shutdown to not prompt individually

-Add copy All
-Add com dropdown box for each workstation and com all (send command to all workstations)
-Add check box to workstations and to "All" commands for executing commands on checked systems

-Put rooms in to divs for tabbed access

-Add software update options for Mozilla Firefox and Chrome
-Change format of Rooms list and update code to process
-Fix bug in Rooms javascript output