Automated JDS installation on linux

aschwanb
New Contributor

There are several scripts and tutorials on how to do an unattended install of JDS on mac machines. (e.g. http://www.johnkitzmiller.com/blog/how-to-deploy-the-jds-on-os-x-en-masse/) I'm trying to do the same on linux. Does anyone know if there is a non interactive installation option for JDS-Linux-Installer-9.81.run

The options only list:
/tmp/JDS-Linux-Installer-9.81.run --help
Makeself version 2.1.5 1) Getting help or info about /tmp/JDS-Linux-Installer-9.81.run : /tmp/JDS-Linux-Installer-9.81.run --help Print this message /tmp/JDS-Linux-Installer-9.81.run --info Print embedded info : title, default target directory, embedded script ... /tmp/JDS-Linux-Installer-9.81.run --lsm Print embedded lsm entry (or no LSM) /tmp/JDS-Linux-Installer-9.81.run --list Print the list of files in the archive /tmp/JDS-Linux-Installer-9.81.run --check Checks integrity of the archive

2) Running /tmp/JDS-Linux-Installer-9.81.run : /tmp/JDS-Linux-Installer-9.81.run [options] [--] [additional arguments to embedded script] with following options (in that order) --confirm Ask before running embedded script --noexec Do not run embedded script --keep Do not erase target directory after running the embedded script --nox11 Do not spawn an xterm --nochown Do not give the extracted files to the current user --target NewDirectory Extract in NewDirectory --tar arg1 [arg2 ...] Access the contents of the archive through the tar command -- Following arguments will be passed to the embedded script

5 REPLIES 5

cmarker
Contributor

I do not, but would love to hear if someone would have a good solution.

Upgrading the JDS's in our environment is the longest part of a version upgrade.

glopez1
New Contributor II

If you run the linux installer with --noexec, you'll see that it selfgz unpacks itself to /tmp, and the two primary install files are ./DPInstaller.sh and ./APIInstall.run (which is another selfgz unpacker that runs ./API/APIInstall.sh, as well as copies files from ./API/var/www/jds/ to the equivalent place on the webserver).

You can simply edit the scripts to remove the prompts, or - since it hasn't changed really at all in a long, long time - you can automate it in your own way.

For example, I've implemented exactly what the setup scripts do with ansible and contained it within a role "jds-server", that handles all the conf creation and editing, folder structure and SELinux labeling, as well as the ability to enroll.

To date, I simply extract the files (just the jamfds binary and /api/* - which are seemingly the only parts updated between versions) out of the automated installer and the ansible role takes care of the process.

Keep in mind however that is subject to change at any point, its always advised to look through the setup script with a diff and see if they did add additional content / extra regex to the apache configs or elsewhere when preparing to deploy a version update.

As it stands I have been able to simply update the binary / api files since 9.7 when I started, and currently at 9.82. We have 4 JDS servers running CentOS7 that this role is applied to.

Personally, i think it would be wonderful if they started to also provide us with a .tar.gz variation of the updates, or maintained ansible / puppet / chef / non-interactive install/upgrade shell scripts.

tim_burke
New Contributor II

When can I get JDS as a docker image? ;)

aschwanb
New Contributor

Thank you gtucker. That's very helpful. Have you ever tried extracting the files with your ansible workflow? That way you could just drag and drop the new jds into your files folder and run with it.

Edit: Also +1 for providing us with non-interactive install/upgrade shell scripts

maccentric
New Contributor II

@gtucker sounds awesome, any way you want to share your JDS ansible playbook?