Parent page: Altium Infrastructure Server
One of the many challenges faced in the enterprise environment is managing the myriad of applications installed on all of the workstations owned by that organization. This process becomes more complex when those applications must be configured to suit the specific requirements of the organization, for example adding in optional extensions or specialized interfaces.
Providing an elegant solution to the challenge of managing your company-wide installation of Altium solutions, the Altium Infrastructure Server provides a dedicated Network Installation Service. This service, allows an organization to perform installations, or updates to Altium products, over their local network. The main goals of the Network Installation Service are:
- To improve speed of updates - people will download data inside of the local network.
- To remove dependency on Internet access for update functionality - it could work in isolated networks, without access to global internet.
- To provide the ability to control versions and updates in a centralized way.
- To support performing push installations, using Microsoft's Active Directory Group Policy.
Typically you would acquire the products and extensions that you need from Altium's Cloud Repository into your local Altium Infrastructure Server, then craft a deployment package for installation across your network. Subsequent updates can be configured automatically, or handcrafted manually for ultimate control over what gets installed on your designer's machines.
Accessing the Network Installation Service
Related page: Browser-based Access & Management
Your interface to the Network Installation Service is the INSTALLATIONS page of the Infrastructure Server's browser-based interface. Access this page by choosing the INSTALLATIONS entry from the ADMIN menu.
Accessing the INSTALLATIONS page of the Altium Infrastructure Server's browser-based interface - your connection to the Network Installation Service. You must be signed-in as an
administrator for your Infrastructure Server, in order to access and interact with the NIS.
Before taking a closer look at the NIS interface, and indeed how to use the service, there are a couple of important settings to configure first. The Network Installation Service allows you to essentially copy product and extension installers from the Altium Cloud Repository - either acquired to your local Altium Infrastructure Server, or downloaded directly. For this to be possible, and also to enjoy the fruits of automatic updating, you must supply your credentials for access to this Cloud Repository. Since the Altium Cloud Repository is the same entity from where you typically access Altium software installers (i.e. from the Altium Downloads page of the Altium Website), this simply means providing your AltiumLive credentials. Do this on the Settings - General - AlitumLive Credentials page of the Infrastructure Server's browser-based interface. Access this page by choosing the SETTINGS entry from the ADMIN menu, then clicking on the AltiumLive Credentials entry, in the navigation tree on the left.
Enter your AltiumLive credentials as part of the general settings for the Infrastructure Server. These are required to be able to acquire Altium products and extensions from
Altium's secure storage in the cloud (the Altium Cloud Repository, if you will). Hover over the image to see an example of these fields filled in. Remember to click the Save button
to effect the changes made to this page.
The second setting involves specifying the checking interval when using the Automatic Updates feature. This determines the frequency - how often - the Altium Cloud Repository is checked for later versions of specified products and extensions. Set the interval time, in minutes, on the Settings - Network Installation page of the Infrastructure Server's browser-based interface. The default is 120 minutes (so checking for updates every couple of hours).
For products and extensions that are configured for automatic updating, specify the interval by which the software should check for these updates.
Working with the NIS Interface
The following sections take a detailed look at the various consituent tabs of the NIS interface, ordered in terms of logical flow when using the service.
Products & Extensions Tab
The Products & Extensions tab is your view into the set of available Altium product and extension installers - available to you based on your provided AltiumLive credentials (refer back to the previous section). These are stored in Altium's Cloud Repository.
There are two categories of installers that can be downloaded from the Altium Cloud Repository:
- Products - includes all products available to your organization under your current licenses, such as Altium Designer.
- Extensions - extensions 'plug in' to a product to extend its functionality.
Use the two regions of the tab to select a required Product and any Extensions.
The Products & Extensions tab of the NIS interface is where you choose the product, and relevant extensions, that you wish to acquire (or download). Hover over the image to
see an example product selected ready for acquisition.
As well as being able to acquire and store products and extensions inside your local Altium Infrastructure Server, you can also use the NIS interface to download products and extensions outside of the Infrastructure Server. This ability is included so that you can easily copy an installation package onto a portable drive, or optical disk, for those situations where you need to transfer packages between NIS installations (from an open network to a closed network, for example). To distinguish between acquisition into your local Altium Infrastructure Server, and download onto a hard drive, the following buttons are presented:
- - acquire and store a product and any extension(s) within your local Altium Infrastructure Server.
- - create a package that can be downloaded directly onto the hard drive.
Once you have selected the product and any extension(s) as required, click the appropriate button to proceed with the acquisition or download. There will be a couple of notification dialogs - just click OK to continue through. Progress can be viewed on the Tasks tab of the interface.
When acquiring into your local Altium Infrastructure Server, after the acquisition has completed the product and extensions involved, and that have been acquired, will appear highlighted in the lists using green text.
Acquired product and extensions (and relevant versions thereof) are highlighted through the use of green text.
The Tasks tab presents an Operations Log reflecting a task that is currently running, or has been run. These include:
- Acquiring - acquiring a product and any extensions from the Altium Cloud Repository into your own local Altium Infrastructure Server.
- Packaging - zipping up a product and any extensions ready for download to your local hard drive.
- Import - importing an offline installation package (into your local Altium Infrastructure Server).
Check here to see the status of running/completed tasks. Expand a task to see a detailed list of tasks involved.
The Tasks tab of the NIS interface is where you can view a task that is currently running, or tasks that have been run - an operational log as it were. Hover over the image to
see the task run to completion. Notice that in our underlying example, whereby a single product was chosen for acquisition, all extensions related to that version of product, and
that are installed by default when that product itself is installed, are also acquired.
If you are creating an installation package for downloading to your local hard drive, the installation package is not saved directly to your hard drive. Instead, it is simply prepared and stored in your local Altium Infrastructure Server. You then need to click the Download Package control. The package will be delivered as a ZIP file - downloaded to the default downloads location specified for your Web Browser.
An example of an installation package that has been prepared (having used the Download button on the Products & Extensions tab) and then subsequently downloaded
to the local hard drive.
Server Storage Tab
The Server Storage tab lists what products and extensions are available in your local Altium Infrastructure Server - those that you have previously acquired using the Products & Extensions tab of the interface. A deployment package can only include products and extensions that are listed in this tab.
The Server Storage tab of the NIS interface reflects all products and extensions that are currently available in your local Altium Infrastructure Server. These are then used to
fashion and generate a deployment package.
You can of course add to this bucket at any stage by acquiring more products and extensions (from the Products & Extensions tab). But you also have the ability to import an installation package (from your hard drive, or an optical drive for example). To do so, simply click the button, then browse to the required file(s) in the subsequent Open dialog. Typically, this would be the ZIP file containing a previously downloaded installation package - a single file to select, and all required components of the installation will be extracted and imported accordingly.
Products and extensions can be imported from an offline installation.
With the products and extensions resident in your local Altium Infrastructure Server, you are now free to build one or more deployment packages, for use in the wider company. This can be initiated from the Server Storage tab by selecting the required product and extension(s) and clicking the button. This actually takes you to the Deployment Packages tab of the interface, and configuration is performed in the subsequently-presented Deployment Package dialog. This is detailed more closely in the following Deployment Packages Tab section.
You can generate a deployment package directly from a selected product and any extensions in the Server Storage tab of the interface. Roll over the image to see that you will
be taken to the Deployment Packages tab of the interface, and the Deployment Package dialog presented, with which to refine the package as required.
Deployment Packages Tab
The Deployment Packages tab of the NIS interface is where you create and configure a Deployment Package, which stipulates how to install the chosen product and extensions. Once created, an associated Windows Installer Package file (*.msi) can be downloaded, and used to install the software on a target client machine, or on all client machines throughout the company.
The Deployment Packages tab of the NIS interface - command central for fashioning deployment packages that can then be downloaded and used within your organization.
To add a new deployment package, simply click the button. The Deployment Package dialog will appear, in which to configure the package (see Configuring a Deployment Package).
For each defined deployment package, the following is presented:
- Name - a meaningful name for the package, perhaps identifying the product (and version) it will be used to install.
- Description - a more detailed description of what the package provides, and for whom.
- Created By - the local Infrastructure Server user who has created the package.
- Created At - the date and time at which the package was created.
- Edit - click the icon to access the Deployment Package dialog, in which to make modifications to the package as required.
- Download - click the icon to download an associated Windows Installer Package file (*.msi) to your hard drive. This file will be named after the entry in the Name field (i.e. <DeploymentPackageName>.msi). Download is to the default location specified for your Web Browser.
- Remove - click the icon to delete the package from the list.
Configuring a Deployment Package
Within your local Altium Infrastructure Server, a deployment package is essentially a list of required product and extension installers, along with configuration information on how the software is to be installed. When you click to download a deployment package from your Infrastructure Server, a Windows Installer Package file (*.msi) is created. The Installer is a small executable that, when run, sources the actual product and extension installation files that it needs from your local Altium Infrastructure Server, and installs in accordance with the options specified in the referenced deployment package. The files that it will source from the Infrastructure Server are determined by the product and extensions defined in the deployment package. The product and extensions are configured by you in the Deployment Package dialog, with that detail then saved into the deployment package.
A deployment package is fully configured using the Deployment Package dialog.
Use the Deployment Package dialog to configure the package as required, providing the following information (as applicable):
- Package Name - use this field to define a meaningful name for the package.
- Description - use this field to provide a more detailed description of the package, perhaps stating its purpose.
- User Name & Password - local Altium Infrastructure Server log in credentials required to access the Infrastructure Server during installation to retrieve the required files. These must be defined.
- Show Progress - enable this option if you'd like to have the Installer reflect the progress of the installation. In this case, an Installer dialog will present, showing the progress for Download, followed by the progress for Install. If this option is disabled, the software will effectively be installed in a silent manner, with no installation dialog appearing.
- Installation path - use this field to specify the directory on the user's machine, in which the software is to be installed (e.g. [ProgramFilesFolder]\Altium\AD<VersionNumber>).
- Documents path - use this path to specify the path to the documents folder on the user's machine (e.g. [CommonAppDataFolder]\Documents\Altium\AD<VersionNumber>).
- Private License Server (optional) - use this field to enter the TCP/IP address of the Private License Server.
- License Activation code(s) (optional) - use this field to enter the activation code(s) for preferred license(s) to be used with this product installation.
- Preferences (optional) - use this field to constrain the user to use a specific set of preferences with their installation. The drop-down lists all existing Altium Designer Preferences Item-Revisions in your local Altium Infrastructure Server. Choose one of these if suitable. Alternatively, you can use a file-based preferences file (*.DxpPrf). To do so, simply click the button, and browse to the file in the subsequent Open dialog that appears. The chosen file is uploaded/released into the initial revision of a newly-created Altium Designer Preferences Item, in your Altium Infrastructure Server, and this is then selected back in the Preferences field. To remove this restriction, simply click the associated button.
- Use latest versions of products - enable this option if you want to force the Installer to use the latest versions of the product and extensions.
- Products - this list will include all products that have been acquired, and are currently available in your local Altium Infrastructure Server. Enable the product (and version) that you want installed by this package.
- Installation Features - a product can have a variety of options that can be configured during install, known as Installation Features. In this region, you are configuring the on/off state that those features present with during installation. Note that the on/off state of such features can be changed by the user during installation, and they can also be installed/uninstalled from within the installation at a later time, if required.
- Extensions - this list will include all extensions that have been acquired, and are currently available in your local Altium Infrastructure Server. Enable the extension(s) (and version) that you want installed by this package.
Whether creating a brand new package, or editing an existing one, once the package is define as required, simply click the OK button to create/update it - a newly-defined package will appear listed alongside all other defined packages, back on the main Deployment Packages tab.
To help ensure that the collection of product and extension installers that you have stored in your local Altium Infrastructure Server are always up to date, you can configure them to either be updated manually, or automatically. The advantage of Manual Updates is that you have control over when the latest version of each product/extension is acquired. Of course, the downside is that you must keep an eye on things and manually acquire them. The advantage of Automatic Updates is that you do not have to remember to check for updates, but all latest versions will automatically be acquired.
The Updates tab of the NIS interface presents a convenient area in which to configure how you want your products and extensions - in your local Altium Infrastructure Server - to be updated.
The Updates tab of the NIS interface - command central for controlling how the products and extensions in your local Altium Infrastructure Server get updated, when later versions of those
products and extensions become available in the Altium Cloud Repository.
The tab lists all of the products and extensions that are currently in your local Altium Infrastructure Server, by name. It doesn't list the version of each you currently have, but rather the latest version of that entity, as available in the Altium Cloud Repository (check the listing back on the Products & Extensions tab to see this).
For each entity, the following update options are available:
- Acquire Manual Update - if the version of the product/extension in your local Altium Infrastructure Server is already the latest, there is nothing to update, and so the icon will be displayed. If the version you have is not the latest, the icon will be displayed. Click on this to acquire the latest version of the product/extension. There will be a couple of dialogs - click OK to proceed. Activity of the acquisition can be viewed on the Tasks tab of the interface.
- Automatic Update - enable this option to include the product/extension as part of automatic updates. Checking for available updates will be performed in accordance with the update checking interval, defined on the Settings - Network Installation page of the Infrastructure Server's browser-based interface. If an update is available for the product/extension, enabling this option will not perform the update immediately - you must wait for the defined checking interval to elapse. Once the update is performed, only the latest version will be acquired.
Various controls are available to manually update multiple entities, or enable automatic updating for multiple entities, simultaneously:
- To update multiple entities manually, simply enable the checkbox to their left, then click the button.
- To enable the Automatic Update option for multiple entities, simply enable the checkbox to their left, then click the button.
- To disable the Automatic Update option for multiple entities, simply enable the checkbox to their left, then click the button.
Installation on a Client Machine
Installation of software on a client machine is a streamlined process, and simply involves:
- An Infrastructure Server Administrator downloading the required Deployment Package (from the Deployment Packages tab of the NIS interface), to obtain the Windows Installer Package file (<DeploymentPackageName>.msi).
- Copying the MSI file to the target client machine.
- Double-clicking on the MSI file. The software will be installed, in accordance with the options defined in the deployment package, with the relevant product and extensions sourced from your local Altium Infrastructure Server. If the deployment package included the option to show installation progress, an Installer dialog will present, showing progress for Download and then Install phases. If this was not enabled, then the software will be installed in a silent manner. Installation will be to the Installation and Document paths specified in the deployment package.
Centralized Deployment on Multiple Client Machines
The Network Installation Service also supports managing Altium product installations in a centralized way. With the help of the NIS, it is possible to run the installation of a product such as Altium Designer remotely, on multiple computers at a time, via Microsoft Active Directory. Installation is performed via the Group Policy Software Installation Extension. The Group Policy Software Installation Extension allows administrators to use the Group Policy Object Editor to centrally manage the installation of software on all client computers in an organization. This is accomplished either by assigning applications to users or computers, or by publishing applications for users.
The following components are necessary to deploy software using the Group Policy Software Installation Extension:
- Group Policy.
- Windows 2000 Server, Windows Server 2003, Windows Server 2008/2012 R2, Windows Server 2016 Standard Edition, or later domain controllers.
- A network that uses Active Directory directory service-based domains.
- Target computers that run a professional or enterprise edition of Windows, including: Windows 2000 Professional, Windows XP Professional, Windows 7 Professional (or better), Windows 8/8.1 Pro (or better), Windows 10 Professional (or better).
The recommended approach for centralized installation management of an Altium product can be divided into initial installation, and installation updates.
For initial installation:
- Sign-in to your local Altium Infrastructure Server, as an Administrator, through the Infrastructure Server's browser-based interface.
- From the Product & Extensions tab of the NIS interface, acquire the required version of the product, and any extension(s), into your local Altium Infrastructure Server.
- Prepare the required deployment package (on the Deployment Packages tab of the NIS interface).
- Download the deployment package, to obtain the required Windows Installer Package file (<DeploymentPackageName>.msi)
- Configure the Group Policy which will run that MSI file on the desired client computers.
- Push the installation to the desired computers/users using the Group Policy Software Installation Extension feature of Active Directory.
Once this process is complete, users will have a pre-configured installation of the software, in accordance with the configured options in the original deployment package.
Updates can be installed using the following approaches:
- Update the Altium software via the in-application update engine.
- Push an update using the Group Policy Software Installation Extension feature of Active Directory. If this approach is used, the simplest way is to edit the original deployment package (using the Deployment Package dialog) and choose the required new versions in the Products and Extensions lists. You can ensure that the latest version of a product will be used by the Installer by enabling the Use latest versions of products option. Save the modified deployment package and download a fresh (and updated) MSI file, which can then be used to deploy the update.
Once you have prepared the deployment package, you can then configure the Group Policy Object (GPO) on your Domain controller. The subsequent steps were followed to test this on a Windows Server 2012 R2:
- Log into the Altium Infrastructure Server (through its browser interface) and download the deployment package (
<DeploymentPackageName>.msi) from the Deployment Packages tab of the Infrastructure Server's NIS interface.
- Copy the MSI file to a suitable file share location, such as
\\YourServername\Sysvol\DomainName. This location should be shared to all of the computers that you want the software deployed on.
- Create a new organizational unit in Active Directory, using the following steps:
- Open Active Directory Users and Computers, then in the console tree, right click on your domain and select New » Organization Unit.
- Enter the name of the Organizational Unit, then add all client computers that the software is to be installed on.
- Open Group Policy Management - from the Control Panel open Administrative Tools, then open Group Policy Management.
- In the Group Policy Management interface, go to the existing policies. To do this, open Domains, then YourDomain, then Group Policy Objects. This is where your GPO's are stored.
- Create a new GPO. To do this, right click on the folder Your organizational units you have created and select New. Type in a name for your GPO.
- Once you have created your new GPO, it will show up in the Your organizational units you have created folder. Click on the new GPO. In the right pane at the bottom, there is a box that says Security Filtering. Enable it, and clear the Authenticated Users entry.
- If you want this program deployed on specific computers, add each of the specific computer's names. Otherwise, to deploy to all computers in the domain, add the group, Domain Computers.
- Locate the Your organizational units you have created folder in the navigation pane and right-click on it. Select the command Link an existing GPO, then click on your new GPO, then click OK.
- The next step is to add your MSI file. To do this:
- Locate the GPO in the Your organization unit folder, and right-click on it. Select the Edit command and a new window will open.
- Navigate to Computer Configuration, then Policies, then Software Settings, then Software Installations. Right click inside the empty pane on the right, and select New » Package.
- In the new window that opens, navigate to the domain share that you created earlier (
\\YourServerName\FolderName - not the physical folder on the server,
C:\FakePath\FolderName), and select your MSI file.
- Click the Assigned bubble and then click OK.
- The last step is to close all of the open windows/dialogs on the server and reboot all of your workstations. When they start, they will install the deployed application before the computer allows a user to logon. That means it will sit there and say Please wait... for quite a while as the program is installed.
The Windows Installer is wrapped up as part of a special deployment utility, called NISDeploy.exe. You may briefly see mention of the NISDeploy MSI Wrapper when the MSI file is launched to install its associated software (as determined by the deployment package from which it was downloaded/generated), and again when the installation completes. NISDeploy is a specialized tool that automates the deployment package download and launching. Having a dedicated tool allows you to adjust the package settings, without needing to reconfigure the Group Policy. NISDeploy is controled via parameters, with the following parameters supported:
||Infrastructure Server address (in format
||Infrastructure Server user name, that will be used for downloading deployment package and running the installation. It is recommended to use same password as in package properties.
||Infrastructure Server user password. Similar to -user.
||Name of deployment package, which will be downloaded and installed.
||Path where product will be installed.
||Path where document and samples will be installed.
||Launch installation without modal windows and additional dialog. Only progress will be shown. Is used for silent installation in automatic mode.
||Installer will ignore deployment package and install latest available version for product mentioned in package. Rarely used parameter for cases when we need just latest available version of product, for example for testing purposes.
||Install all product features. Similar to -lastversion, overrides package settings and forces to install all possible features of product (all exporters, extensions, etc). Rarely used in regular life.
||Path where installer logs will be place. Need to be used only for debugging purposes.
Below is an example of a batch file to run NISDeploy:
"C:\Program Files (x86)\Altium\Altium Infrastructure Server\NIS\bin\NISDeploy.exe" -server localhost:9780 -user admin -password admin -profile "AD Latest" -programs "%PROGRAMFILES(X86)%\Altium\AD-Latest" -documents "%PUBLIC%\Documents\Altium\AD-Latest\Documents" -autoinstall