Introduction
Deployment Schedules allows IT-administrators to deploy applications in stages, based on days from a application is updated/created or on dynamic dates – like second Tuesday of the month. Microsoft Endpoint Manager provide no such feature, forcing the IT-administrator to create new Win32 instances with new versions to allow them to have an old version scoped for the production environment while testing a new version.
Endpoint Admin with Deployment Schedules will make use of Assignment Profiles enabling applications to be available for users to install and also patch when installed. To do this Endpoint Admin will make use of 2 application instances in Microsoft Endpoint Manager:
- Base application instance: present when deployed via Endpoint Admin, and is using the Assignment Profile assigned. This application instance is updated when a Deployment Schedule is complete or if Auto Update is enabled and no Deployment Schedules are assigned.
- Patch application instance(s): the application instance used for patching. Potentially non-required base application installations will be patched using this instance. This application instance is created when a schedule is started and is not deleted after a completed schedule.
Key features
- The Deployment Schedule will deploy a new version of a given application based on the Deployment Schedule configuration assigned to a given application when updated. This allows users to deploy a new version utilizing a phased roll-out.
- Each Deployment Schedule has a name, a number of phases and a trigger.
- A phase has a name, an Assignment Profile that will be assigned to the application when the phase becomes active, an offset in days and a requirement script. The requirement script allows to only install/patch the new version on devices that have the application installed already.
- The defined offset for the initial phase is derived from the trigger, the offset for the remaining phases is based off of the initial phase.
- If the requirement script radio button is toggled on, then the phase will affect only the users/devices where the requirement.ps1 script returns 1.
- The trigger for a deployment schedule will decide when and how a deployment schedule is initiated, there are 3 options:
- When a new version is uploaded: the Deployment Schedule will start whenever a newer version of that application is uploaded.
- Weekly: the Deployment Schedule will start every week on the day specified. This allows you to deploy all new application versions starting on a given day of the week.
- Monthly: the deployment schedule will start every month in a specified week day of one of the first 4 weeks at 00:00. E.g. (first Monday of the month or third Wednesday of the month).
- When a new version is uploaded: the Deployment Schedule will start whenever a newer version of that application is uploaded.
- When creating a new deployment schedule, the name and the Assignment Profile for each existing phase is required.
- An application can have only 1 deployment schedule at any given time.
- An application has to be deployed or else you can not assign a deployment schedule to it.
- You can not have a deployment schedule with less than 1 phase.
- You can not have a deployment schedule with more than 28 phases.
- The number of phases depends on the offset and on the trigger option, those 2 above are the minimum and maximum limits.
- If the trigger is set on Weekly, the maximum number of phases can not exceed 7. This is to ensure patch capability when new updates are made more than once a week.
Creating a Deployment Schedule
To create a new deployment schedule, access the Deployment Schedule page under the Applications tab in the sidebar menu.
To create a new deployment schedule press the "+ New schedule" button.
Every new deployment schedule is initialized with 3 phases as default and the trigger is set to "On new version". Here you can add a name to the deployment schedule, you can also change the number of phases, the name of the phases, and a given trigger.
Clicking on the "Set" button of the trigger, a modal will open presenting you with the 3 options as shown:
- When a new version is uploaded: the Deployment Schedule will start whenever a newer version of that application is uploaded.
- Weekly: the Deployment Schedule will start every week on the day specified. This allows you to deploy all new application versions starting on a given day of the week.
- Monthly: the deployment schedule will start every month in a specific weekday, of the first 4 weeks at 00:00. Example: every second Tuesday of the month.
NOTE: Make sure to use Assignment Profiles which is configured with required assignments, otherwise each phase will only make the path application available for the end users/devices.
After saving the Deployment Schedule, go to either Public or Private repository and select an application that is deployed already and go to its meatballs menu, there we can see 3 options for this feature:
- Assign deployment schedule: assigns a deployment schedule to the application. You can not assign a deployment schedule to an application that is not deployed (base application), or already has a deployment schedule running.
-
Clear deployment schedule: unassigns the Deployment Schedule that was assigned and allow for the option to delete the patch application instance from Microsoft Endpoint Manager.
-
Delete patch-app instance(s): deletes the patch application(s) instance(s) from Microsoft Endpoint Manager.
Deployment Schedules flow example
In this example we will assign the Deployment Schedule "Evergreen" mentioned earlier for the "FileZilla" application. By clicking the Assign deployment schedule button a new modal will appear where you can assign the schedule.
After clicking on the select button, you can see that the name of the Deployment Schedule is shown in the column "Deployment Schedule" of the application in the table.
You can also see that the application has 2 more columns regarding the deployment schedule:
-
Phase state:
- InProgress indicates that the patch application is in the progress to be pushed and/or having setting the given Assignment Profile for the given phase.
- Finished indicates that the patch application is finished being pushed and/or having setting the given Assignment Profile for the given phase.
- Current phase: specifies current phase
Now to initate the deployment schedule you need to add a newer version of "FileZilla".
Because the trigger is set to "On new version" the first phase will be initiated when a new version is registered to the repository.
When uploading the new application version you are informed that it exist already, this will trigger the Deployment Schedule for the given application matching on name.
After uploaded a newer version of "FileZilla" you will be presented with a status icon, indicative of the Deployment Schedule being in progress.
When the Deployment Schedule has started Endpoint Admin will create the app in Microsoft Endpoint Manager.
Microsoft Endpoint Manager will have the following application instances present during a Deployment Schedule:
- Patch App instance: This app instance will be created and handled throughout the Deployment Schedule. On each phase the assignment will be changed(not merged) to the Assignment Profile configured for the given phase.
- Old Patch App instance: This app instance is present during a Deployment Schedule and is replaced by the Patch App instance when the Deployment Schedule is complete.
- Base application instance: The app instance present when deployed via Endpoint Admin, and is using the Assignment Profile assigned. This application instance is updated when a Deployment Schedules is complete or if Auto Update is enabled and no Deployment Schedule is assigned.
Microsoft Endpoint Manager will have the following application instances present after a finished schedule:
FAQ
- How do i stop an Deployment Schedule on a given application when it is already in progress?
- Use the "Clear deployment schedule" from the meatballs menu. Now the Status icon will be marked with yellow "Needs approval or not updated yet" as the newest version of the application now is not deployed. To re-initiate the process assign a schedule.
- How do i replace a broken application package while a Deployment Schedule on a given application when it is already in progress?
- Clear the deployment schedule, upload fixed package and assign a schedule.
Comments
0 comments
Please sign in to leave a comment.