GithubHelp home page GithubHelp logo

salsoftware / legacy-sal Goto Github PK

View Code? Open in Web Editor NEW
120.0 31.0 22.0 2.07 MB

This is a legacy repo. Please find the maintained sal repo here: https://github.com/salopensource/sal

License: GNU General Public License v3.0

Python 35.38% HTML 4.85% CSS 12.97% JavaScript 46.71% Makefile 0.09%

legacy-sal's Introduction

Legacy - Sal. Please find the maintained Sal repo here

Sal is a multi-tenanted reporting dashboard for Munki with the ability to display information from Facter. It has a plugin system allowing you to easily build widgets to display your custom information from Facter or Munki's conditional items (or both!).

With Sal, you are able to allow access to reports on certain sets of machines to certain people - for example, giving a manager access to the reports on the machines in their department. Sal has a bigger brother, Sal+. Head over to salsoftware.com to get in touch.

Sal

Getting Started

First off, you're going to need to get the Server and then the Client component of Sal installed. Instructions can be found here.

Once you've got clients reporting in, you're probably going to want to customise what you see on the various screens. Here is a full list of the various options that can be set in sal/settings.py.

If you would like a demo of setting up Sal along with some of the features please watch the following presentation Graham made at the 2014 Penn State MacAdmins Conference. Slides available from here.

After re-ordering and hiding plugins from some screens, you might even want to make your own plugins. You can base your plugin off of one of the included ones, or one of mine in the repository of optional plugins. Trust me it's easy if you know python, and completely possible even if you don't. If you want more information on creating your own plugin you can follow a series of posts from my blog part 1, part 2, and part 3.

Discussion

Discussion on the use and development of Sal is available on the Google Group.

Why Sal?

It's the Internet's fault! I asked on Twitter what I should call it, and Peter Bukowinski (@pmbuko) suggested the name, based on a Monkey puppet called Sal Minella.

Thank yous

First off, thanks to Greg Neagle and the rest of the Munki Project. Munki is an amazing product, and managing OS X at any scale would be miserable without it.

Thanks to Puppet Labs for basically giving away the crown jewels for nothing.

legacy-sal's People

Contributors

cabal95 avatar clburlison avatar diwanicki avatar eahrold avatar eyemyth avatar grahamgilbert avatar henrydobson avatar kkunkel avatar lgalvez338 avatar ninjabong avatar petertait avatar sebnash avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

legacy-sal's Issues

Sal postflight fails on 10.10.1 machine

Dec 01 2014 17:02:16 -0800 Performing postflight tasks...
Dec 01 2014 17:02:22 -0800 postflight stderr: Traceback (most recent call last):
File "/usr/local/munki/postflight.d/sal-postflight", line 166, in
plist = FoundationPlist.writePlistToString(report)
File "/usr/local/munki/munkilib/FoundationPlist.py", line 113, in writePlistToString
raise NSPropertyListSerializationException(error)
munkilib.FoundationPlist.NSPropertyListSerializationException: Property list invalid for format (property lists cannot contain objects of type 'CFNull')
Dec 01 2014 17:02:22 -0800 ### Ending managedsoftwareupdate run ###

Similar to #30 but I figured I would make a new one..

You asked for https://gist.github.com/weswhet/0d2da58b4560cc4b0fcc on the other thread. The only other difference between this machine and other 10.10.1 machines is that he has puppet 3.4.0 installed. Before walking out he briefly mentioned that he may have change his user python.

Let me know if you need anything else.

Getting closer

I have my databases setup and I can access them with the necessary users via phpmyadmin and terminal.

I can also get the virtual environment running, similar to the functionality with the MWA instructions; however, I cannot seem to get it to work with the production setup described in your instructions.

Here is my sal.conf file:

<VirtualHost *:80>
   WSGIScriptAlias / /usr/local/sal_env/sal/sal.wsgi
   WSGIDaemonProcess sal user=saluser group=salgroup
   Alias /static/ /usr/local/sal_env/sal/static/
   <Directory /usr/local/sal_env/sal>
       WSGIProcessGroup sal
       WSGIApplicationGroup %{GLOBAL}
       Order deny,allow
       Allow from all
   </Directory>
</VirtualHost>

and here is the edited section of the settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'MUNKISAL',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': 'saldbuser',
        'PASSWORD': '#####',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

If you have time, some direction would be appreciated - also, is there a forum space that this would be appropriate for?

Additional Documentation on Plugins

Got a chance to watch your PSU video with your demo over Sal. One of the issues I ran into a few months back when testing Sal was the plugins and doing a git clone of say grahamgilbert/sal-plugins directly into my local sal/plugins/grahamgilbert directory.

In your demo you remove the .gitignore file from your plugins repo before pushing up to heroku. Not sure if you wanted to add that step to your docs and if so where. Another option maybe a link to the demo from youtube? The Sal demo starts at 21min 28sec. Thought I would throw this out there.

Great job on the presentation!

Sorting machine list by Latest Run orders times incorrectly

When looking at a list of machines showing Errors (although this is also true of any machine list) and then clicking on "Latest Run," the machines are sorted from most recent -> farthest.

Except that 9:31 AM is listed as more recent than 10:50 AM. See here:
screen shot 2014-03-06 at 10 58 26 am

Times in 1-9 are always listed as more recent, on the same day, than times 10+.

Missed something on setup but I do not know what

Installed in Debian/jessie

I am having some issues getting this online. I just have it running in a virtual environment on port 8000, similar to the MWA install.

I do not get any errors when starting up apache2 and the home page for Sal displays when I browse to my server on port 8000.

However when I try to add a business unit I get the following:

AttributeError at /dashboard/1/
'NoneType' object has no attribute 'filter'
Request Method: GET
Request URL: http://10.0.64.142:8000/dashboard/1/
Django Version: 1.5.3
Exception Type: AttributeError
Exception Value:
'NoneType' object has no attribute 'filter'
Exception Location: /usr/local/sal_env/sal/server/plugins/puppetstatus/puppetstatus.py in show_widget, line 43
Python Executable: /usr/local/sal_env/bin/python
Python Version: 2.7.6
Python Path:
['/usr/local/sal_env/sal',
'/usr/local/sal_env/lib/python2.7',
'/usr/local/sal_env/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/local/sal_env/lib/python2.7/lib-tk',
'/usr/local/sal_env/lib/python2.7/lib-old',
'/usr/local/sal_env/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/local/sal_env/local/lib/python2.7/site-packages',
'/usr/local/sal_env/lib/python2.7/site-packages']
Server time: Mon, 27 Jan 2014 13:48:58 -0600

TRACEBACK:

Environment:

Request Method: GET
Request URL: http://10.0.64.142:8000/dashboard/1/

Django Version: 1.5.3
Python Version: 2.7.6
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'sal',
'server',
'south',
'bootstrap_toolkit')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')

Traceback:
File "/usr/local/sal_env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response

  1.                     response = callback(request, _callback_args, *_callback_kwargs)
    
    File "/usr/local/sal_env/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  2.             return view_func(request, _args, *_kwargs)
    
    File "/usr/local/sal_env/sal/server/views.py" in bu_dashboard
  3.     (data['html'], data['width']) = plugin.plugin_object.show_widget('bu_dashboard', machines, bu.id)
    
    File "/usr/local/sal_env/sal/server/plugins/puppetstatus/puppetstatus.py" in show_widget
  4.     last_checkin = machines.filter(last_puppet_run__isnull=False).count()
    

Exception Type: AttributeError at /dashboard/1/
Exception Value: 'NoneType' object has no attribute 'filter'

Users limited to specific Business Units can still see the names of computers not in their group.

Specifically, if I have 25 machines across three Business units - A with 10 machines, B with another 10 and C with 5 machines. User 1 has access to Units A&B. From his landing page, he sees 20 machines in his "All Machines" link in his status. So far so good. However, when he clicks on "All Machines", he gets a list of 25. Granted, if he clicks on one of the 5 he doesn't have access to, he doesn't get the Machine ID page, but gets bounced back to their "home" view of Sal. Is there anyway to prevent them from seeing machines in Business Units they don't have access to at all?

Report multiple partitions/hard disk

Munki only reports the main partition free space in its reports.
Sal-postflight takes that information, add the total size and sends that to the sal server.

In our environnement we have one partition for OS and one for home directories for various reasons. It might also be interesting for some Macs which do have multiple hard disk such as Mac Minis.

Currently, in sal, the Machine model only takes into account a single hard disk.

Perhaps we could extend sal-postflight into sending back every partition information, which would allow us to display on the dashboard machines with any partition/hard drive falling below threshold.

sal-postflight

  • Get listing of partition (diskutil list and discard EFI/Apple_Boot partitions)
  • Get partition free space/total size (diskutil info diskId) also make sure partition is marked internal so we do not report USB disks for example
  • Send a list to our sal master

sal

  • Decouple the hard drive from the Machine model, create a model with PK to Machine, space left/total and name fields and property to get percentage
  • Create south migration to handle previous data
  • Modify Disk Space plugin to look for one or more HD per machine
  • Modify single machine view to display one or more HD informations.

I haven't started writing anything yet, but I wanted input on this.

Thanks a lot !

Put Business Unit on the Computer Information page.

Could we get the "Business Unit" the computer is in to be listed on the Computer Information page? When doing a search and you have multiple groups, it is harder to see which Business Group's "Accounting Computer" might be having the issue when you click through to the individual machine.

Client Configuration

Hi
Having a bit of difficulty with the client configuration, i have made the makefile but am a bit lost where to go once that has been run any help would be great

cheers
Dave

X86PlatformPlugin error, Yosemite 10.10

getting the following error on a freshly imaged Yosemite OS X 10.10 machine:

Munkireport: Running sal-script
Munkireport: 2014-10-17 13:36:12.065 system_profiler[975:6250] platformPluginDictionary: Can't get X86PlatformPlugin, return value 0

The machine report looks ok in Sal, however.

Enhancement: API to retrieve/create business units and machine groups

What would be awesome, and I have no idea how hard it would be to implement, is if we could send a request to Sal to see if a certain business unit and machine group exists and be able to retrieve the key for that group.

Also the ability to create business units and machine groups via some kind of api would be mega.

My use case would be something like during imaging of the machine, we know that this machine should be in Site 1(business unit) -> Staff_Laptops(Machine group). We might get this info from the user or AD or some other database.
So we could then make a call to Sal to retrieve the key for "Staff_Laptops" in Site1 and then create the plist on the client with that key.

If we find that either the machine group or the business unit doesn't exist we could create optionally choose to create it.

User-configurable Plugins

Add variables to plugins that can be modified via the UI, e.g. thresholds for red/amber/green widgets.

preflight not passing arguments to subprocess

Hi Graham,
I´m still using the munki-webadmin preflight script for getting new server and client manifest settings as described here:
https://code.google.com/p/munki/wiki/WPKGlikeDynamicManifestsWithoutCGI
https://code.google.com/p/munki/wiki/DynamicClientConfigurationsViaPreflightScripting

But your preflight isn´t passing arguments to scripts located at preflight.d. I changed it to:

subprocess.call([os.path.join(preflight_dir, script),
sys.argv[1]],
stdin=None)

Best,
Thomas

Puppet last_run_summary error

SAL report fails on server when puppet has not applied a config/not run on the machine. Received this error when running SAL in debug mode:
Traceback:
File "/usr/local/sal_env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response

  1.                     response = callback(request, _callback_args, *_callback_kwargs)
    
    File "/usr/local/sal_env/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
  2.     return view_func(_args, *_kwargs)
    
    File "/usr/local/sal_env/sal/server/views.py" in checkin
  3.         machine.puppet_errors = puppet[&#39;events&#39;][&#39;failure&#39;]
    
    Exception Type: KeyError at /checkin
    Exception Value: 'events'

Due to unexpected state of last_run_summary.yaml file, example:

version:
config:
puppet: "3.4.2"
time:
last_run: 1394827952

https://groups.google.com/d/topic/sal-discuss/CpMyDe80_xk/discussion

Ubuntu 14 install fails with compiler error

Working on a test install of Sal on Ubuntu, and following along the guide I get to here and end with warnings and a compiler error. Verified issue on both my testbed and a fresh install of 14.04 LTS.

 (sal_env)saluser@netsus:/usr/local/sal_env$ pip install -r sal/setup/requirement s.txt
Downloading/unpacking Django==1.5.3 (from -r sal/setup/requirements.txt (line 1) )
  Downloading Django-1.5.3.tar.gz (8.0MB): 8.0MB downloaded
  Running setup.py egg_info for package Django

    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Downloading/unpacking South==0.8.2 (from -r sal/setup/requirements.txt (line 2))
  Downloading South-0.8.2.tar.gz (95kB): 95kB downloaded
  Running setup.py egg_info for package South

Downloading/unpacking Yapsy==1.10.223 (from -r sal/setup/requirements.txt (line 3))
  Downloading Yapsy-1.10.223.tar.gz (146kB): 146kB downloaded
  Running setup.py egg_info for package Yapsy

    no previously-included directories found matching 'src2/package/doc/_build'
    no previously-included directories found matching 'src3/package/doc/_build'
Downloading/unpacking django-bootstrap3==4.11.0 (from -r sal/setup/requirements.txt (line 4))
  Downloading django-bootstrap3-4.11.0.tar.gz
  Running setup.py egg_info for package django-bootstrap3

    warning: no files found matching '*.png' under directory 'bootstrap3'
    warning: no files found matching '*.gif' under directory 'bootstrap3'
    warning: no files found matching '*js' under directory 'bootstrap3'
    warning: no files found matching '*jpg' under directory 'bootstrap3'
    warning: no files found matching '*jpeg' under directory 'bootstrap3'
    warning: no files found matching '*svg' under directory 'bootstrap3'
    warning: no files found matching '*.png' under directory 'demo'
    warning: no files found matching '*.gif' under directory 'demo'
    warning: no files found matching '*js' under directory 'demo'
    warning: no files found matching '*jpg' under directory 'demo'
    warning: no files found matching '*jpeg' under directory 'demo'
    warning: no files found matching '*svg' under directory 'demo'
Downloading/unpacking docutils==0.11 (from -r sal/setup/requirements.txt (line 5))
  Downloading docutils-0.11.tar.gz (1.6MB): 1.6MB downloaded
  Running setup.py egg_info for package docutils

    warning: no files found matching 'MANIFEST'
    warning: no files found matching '*' under directory 'extras'
    warning: no previously-included files matching '.cvsignore' found under directory '*'
    warning: no previously-included files matching '*.pyc' found under directory '*'
    warning: no previously-included files matching '*~' found under directory '*'
    warning: no previously-included files matching '.DS_Store' found under directory '*'
Downloading/unpacking requests==2.5.0 (from -r sal/setup/requirements.txt (line 6))
  Downloading requests-2.5.0.tar.gz (443kB): 443kB downloaded
  Running setup.py egg_info for package requests

Requirement already satisfied (use --upgrade to upgrade): wsgiref==0.1.2 in /usr/lib/python2.7 (from -r sal/setup/requirements.txt (line 7))
Downloading/unpacking python-dateutil==2.2 (from -r sal/setup/requirements.txt (line 8))
  Downloading python-dateutil-2.2.tar.gz (259kB): 259kB downloaded
  Running setup.py egg_info for package python-dateutil

Downloading/unpacking pytz==2014.3 (from -r sal/setup/requirements.txt (line 9))
  Downloading pytz-2014.3.tar.bz2 (158kB): 158kB downloaded
  Running setup.py egg_info for package pytz

Downloading/unpacking pyOpenSSL==0.14 (from -r sal/setup/requirements.txt (line 10))
  Downloading pyOpenSSL-0.14.tar.gz (128kB): 128kB downloaded
  Running setup.py egg_info for package pyOpenSSL

    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    no previously-included directories found matching 'doc/_build'
Downloading/unpacking ndg-httpsclient==0.3.2 (from -r sal/setup/requirements.txt (line 11))
  Downloading ndg_httpsclient-0.3.2.tar.gz
  Running setup.py egg_info for package ndg-httpsclient

Downloading/unpacking pyasn1==0.1.7 (from -r sal/setup/requirements.txt (line 12))
  Downloading pyasn1-0.1.7.tar.gz (68kB): 68kB downloaded
  Running setup.py egg_info for package pyasn1

Downloading/unpacking urllib3==1.10 (from -r sal/setup/requirements.txt (line 13))
  Downloading urllib3-1.10.tar.gz (128kB): 128kB downloaded
  Running setup.py egg_info for package urllib3

    warning: no previously-included files matching '*' found under directory 'docs/_build'
Downloading/unpacking six (from python-dateutil==2.2->-r sal/setup/requirements.txt (line 8))
  Downloading six-1.9.0.tar.gz
  Running setup.py egg_info for package six

    no previously-included directories found matching 'documentation/_build'
Downloading/unpacking cryptography>=0.2.1 (from pyOpenSSL==0.14->-r sal/setup/requirements.txt (line 10))
  Downloading cryptography-0.9.1.tar.gz (302kB): 302kB downloaded
  Running setup.py egg_info for package cryptography

    no previously-included directories found matching 'docs/_build'
    warning: no previously-included files matching '*' found under directory 'vectors'
Downloading/unpacking idna (from cryptography>=0.2.1->pyOpenSSL==0.14->-r sal/setup/requirements.txt (line 10))
  Downloading idna-2.0.tar.gz (135kB): 135kB downloaded
  Running setup.py egg_info for package idna

    warning: no previously-included files matching '*.pyc' found under directory 'tools'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
Requirement already satisfied (use --upgrade to upgrade): setuptools in ./lib/python2.7/site-packages (from cryptography>=0.2.1->pyOpenSSL==0.14->-r sal/setup/requirements.txt (line 10))
Downloading/unpacking enum34 (from cryptography>=0.2.1->pyOpenSSL==0.14->-r sal/setup/requirements.txt (line 10))
  Downloading enum34-1.0.4.tar.gz
  Running setup.py egg_info for package enum34

Downloading/unpacking ipaddress (from cryptography>=0.2.1->pyOpenSSL==0.14->-r sal/setup/requirements.txt (line 10))
  Downloading ipaddress-1.0.7.tar.gz
  Running setup.py egg_info for package ipaddress

Downloading/unpacking cffi>=0.8 (from cryptography>=0.2.1->pyOpenSSL==0.14->-r sal/setup/requirements.txt (line 10))
  Downloading cffi-1.1.1.tar.gz (326kB): 326kB downloaded
  Running setup.py egg_info for package cffi
    unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
    unable to execute 'x86_64-linux-gnu-gcc': No such file or directory

        No working compiler found, or bogus compiler options
        passed to the compiler from Python's distutils module.
        See the error messages above.
        (If they are about -mno-fused-madd and you are on OS/X 10.8,
        see http://stackoverflow.com/questions/22313407/ .)
    Complete output from command python setup.py egg_info:
    unable to execute 'x86_64-linux-gnu-gcc': No such file or directory

unable to execute 'x86_64-linux-gnu-gcc': No such file or directory



    No working compiler found, or bogus compiler options

    passed to the compiler from Python's distutils module.

    See the error messages above.

    (If they are about -mno-fused-madd and you are on OS/X 10.8,

    see http://stackoverflow.com/questions/22313407/ .)

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /usr/local/sal_env/build/cffi
Traceback (most recent call last):
  File "/usr/local/sal_env/bin/pip", line 9, in <module>
    load_entry_point('pip==1.4.1', 'console_scripts', 'pip')()
  File "/usr/local/sal_env/local/lib/python2.7/site-packages/pip/__init__.py", line 148, in main
    return command.main(args[1:], options)
  File "/usr/local/sal_env/local/lib/python2.7/site-packages/pip/basecommand.py", line 171, in main
    log_fp = open_logfile(log_fn, 'w')
  File "/usr/local/sal_env/local/lib/python2.7/site-packages/pip/basecommand.py", line 200, in open_logfile
    os.makedirs(dirname)
  File "/usr/local/sal_env/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/home/saluser/.pip'

postflight fails for some machines

I just freshly imaged a machine. I am running MWA with Sal (with the appropriate lines added to postflight for sal-submit)

A full Munki run:

   postflight stderr: Traceback (most recent call last):
  File "/usr/local/munki/sal-submit", line 158, in <module>
    plist = FoundationPlist.writePlistToString(report)
  File "/usr/local/munki/munkilib/FoundationPlist.py", line 113, in writePlistToString
    raise NSPropertyListSerializationException(error)
munkilib.FoundationPlist.NSPropertyListSerializationException: Property list invalid for format (property lists cannot contain objects of type 'CFNull')
Done.

A Munki run with Apple SUS only:

postflight stderr: Traceback (most recent call last):
  File "/usr/local/munki/sal-submit", line 113, in <module>
    report['MachineInfo']['SystemProfile'] = system_profile
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC/objc/_convenience.py", line 168, in __getitem__objectForKey_
    return container_unwrap(res, KeyError, key)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC/objc/_convenience.py", line 634, in container_unwrap
    raise exc_type(*exc_args)
KeyError: 'MachineInfo'
Done.

This machine was reporting to Sal before imaging so I am not sure how or where to narrow down the test case. I haven't found any common theme on machines returning this error. (Only found a handful of machines returning the first error).

operating system list

hi, I have a problem with the list of operating system. It look like if i have 3 10.8.5 computer it will be a list of 3 operating system, with the number one for each item. Right now I have 235 computer, so I have 235 lines in the plugin operating system. We are going to have around 1200 computer in this lists!

I saw this on the front page. Thanks

capture decran 2014-01-27 a 11 39 48

Old version, should point to the one that is current possibly?

I'm getting quite a few support requests from people still using this repo. As it hasn't been updated in so long, I would suggest that this is taken down with a link to the maintained version? This version has some critical security flaws in the version of Django it uses if nothing else.

Docker Installation on Ubuntu?

Hello I am still new to Docker and Linux setups so I apologize in advance if this is the wrong place or a bad question .
I followed the directions to set up Sal using Docker on my Ubuntu 14.04 server. The setup seemed to go well and I am able to access the sal site and create business units. It also successfully get data from the machines I set up with the sal scripts. However I am having trouble finding the settings.py file and location of the actual sal resources. I was hoping to add the optional plugins and the directory does not exist where it says it should even though I followed the directions exactly. Did I miss something during my install or am I not looking in the wrong place?

I do not have a sal_env folder. Only a sal_data folder. This is supposedly where the files should be located. I feel like I am missing something very obvious. Looked all over the place and cannot find any answers so I thought I would ask here. Thanks and sorry if this is a stupid question.

Sal on Docker: timezone incorrect

When running via Docker, the host's timezone is not respected, even when creating the container using -e TZ=Region/City in the docker run command.

More specifically, the reporting times displayed within the web interface are incorrect. The containers themselves report the correct time, as evidenced here:

ladmin@vmus001:~$ sudo docker run --rm grahamgilbert/postgres date
Thu Apr 9 02:49:54 UTC 2015

ladmin@vmus001:~$ sudo docker run --rm -e TZ=Asia/Tokyo grahamgilbert/postgres date
Thu Apr 9 11:49:57 JST 2015

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.