Izpack : a possible path to a better Workstations provisioning.

Integrating Izpack with Workstation provisioning

Adrien Sales

Existing Workstation SCCM provisionings scenari

  • Windows Install
  • Windows Upgrades (Windows 7 to 10)
  • Outlook, Office : install and upgrades
  • Web Browsers : IE, Firefox, Chrome
  • Web Browsers Upgrades
  • Runtimes, Autocad, Java, etc...

Workstation context : an increasing number of Web based applications

  • Custom Web developments
  • On premise ERP
  • Outside hosted web apps with specific browser requirements
  • SaaS cloud based applications
  • Actually no local SSO nor Cloud based identity management

Consequences

  • Technical debt. inheritance as some apps do not support all web browsers
  • Complexity for the end user to know which app to use with which browser

Knowledge stored in SCCM

  • User/Group Centric approach
  • SCCM knows which software to install, where and who for
  • Users are actually grouped and continuously managed from SCCM for software deploying planning
How to provide ready to use (and configurable) install package to SCCM so they can be easily deployed.
Who and how to build such packages.

Opportunities

  • Bring some integration between devs and Workstation maintainers
  • Generate more knowledge
  • Tune Workstation for end user
  • Bring more collaboration between teams
  • Measure debt (by code) : ie. apps that are stuck on a specific browser

Technical background

  • Java Developers
  • Continuous build/release for everything (Github/Travis CI)
  • Build everything with maven
  • Cross platform development

Packaging (from maven)

Maven already used on personal projects to package :
  • jar (of course)
  • war
  • debian packages
  • rpm packages
  • Any complex (mix of jars, images, shell, links, ...) java based application

Automatic delivery with Travis

Delivery process is the same as all others DSI projects :
  • Travis release
  • Automatic upload of the jar file on Github for each release
  • The file can be downloaded by anyone (people, scripts or bots)

Automatic delivery with Travis

Automatic delivery with Travis

How to build a crossplatform (Windows, Mac, Linux, BSDs, ... ) installer ?

Main idea

Make a cross-platform installer that would :

  • Only require a java runtime to be installed
  • Built only from code (no click, no GUI)
  • Be customizable ie. provide options during install process
  • Be runnable/scriptable for automated deployment
  • Embed resources like images, links, shortcuts in a single package

Izpack

Package once. Deploy everywhere.

Famous Solution using izpack

Core installer architecture

  • License agreement : the end user must accept
  • A core pack with common shortcuts every one needs to have (webmail, Intranet, Issue Tracker, Business Intelligence, ...)
  • Dedicated pack by app so we can create dedicated installers
  • Very reduced scope of izpack features : focus on shortcuts only

Benefits

  • Get apps shortcuts from your Desktop (full and fast text search from Start Menu : Win 7/10, KDE, Cinnamon, ...)
  • Don't have to think about which browser to open with which app : just focus on the app name

Linux KDE integration : specific app.

Linux KDE integration : common enterprise shortcuts

Linux Cinnamon integration : specific app.

Linux Cinnamon integration : common enterprise shortcuts

Linux integration : desktop shortcuts

Windows 10 integrations : all enterprise webapps shortcuts

Custom install model with "Automatic Installation Script"

Integrate with SCCM


java -jar installer.jar auto-install-profile-minimalist.xml
java -jar installer.jar auto-install-profile-financial-tools.xml
...

From command line (interactive mode)

java -jar target/webapps-shortcuts-izpack.jar -console

Demonstration : Interactive Installations

  • "End-user" mode
  • Install by clicking
  • This will used by most users on Windows, MacOSX and Linux with a running X Server.

Demonstration : Interactive Installations with a GUI

  • Install packs Agent Mairie
  • Check shortcuts on "Desktop" and "Startup menu"
  • Check files in "Programs Files\Applications Mairie" folder
  • Check "Uninstaller" folder and uninstall
  • Check "Programs Files" folder and "Desktop"

Demonstration : Unattended Installations Using Records of Previous Sessions

  • "Admin" mode : the one the SIE will use
  • Install through XML file
  • It reproduces the same installation again, applying all previous user inputs automatically. No interaction is required any longer.

Demonstration : Unattended Installations Using Records of Previous Sessions

  • Install packs Agent Mairie and SGAU with xml file
  • Check shortcuts on desktop
  • Check shortcuts on startup menu
  • Check files in "Programs Files" folder

Demonstration : Unattended Installations Using Records of Previous Sessions

  • Check PDC documentation shortcut
  • The documentation has been uploaded with Travis on Owncloud
  • The PDF is not part of the installer
  • Users always access the last documentation version
  • We don't need the SIE to re-deploy the new documentation

Other install creation softwares

First start on custom powershells (and why it failed)

  • Mount a dedicated Windows dev environment
  • Create shortcuts straight from PS
  • Need to sign powershells script to make the deployable
  • Need to put shared resources on the LAN (images, ...)
  • Not very easy to release

Hand made (by click) msi : Smart Packager Pro (LANDPARK)

  • Not free
  • No continuous build
  • Pure Windows
  • Click based
  • Not enough available human resources to maintain

Drawbacks

  • Not cross platform
  • No continuous build on Travis
  • Complex build environment to setup
  • Relies on tech we are not using on a daily basis
We are using izpack with maven as part of our continous build at la Ville de Nouméa to package our Web applications on people Desktops, integrated with SCCM, hence bringing some DevOps skills in Workstation customization process.
All that with a very short learning path and without any additional license cost.