Introducing Nomad 7.0.200
Working with Nomad
Nomad 7.0 - Implementing and Using Lab Guide
Ex 1 - Nomad 7.0 - Installing the Nomad Components
Ex 2 - Nomad 7.0 - Deploying Software using Nomad
Ex 3 - Nomad 7.0 - Deploying Software Updates with Nomad
Ex 4 - Nomad 7.0 - Using Single Site Download and FanOut
Ex 5 - Nomad 7.0 - Preparing for OS Deployments
Ex 6 - Nomad 7.0 - Using Nomad for an OSD Refresh
Ex 7 - Nomad 7.0 - Using Nomad for OSD 'Bare Metal'
- Ex 1 - Nomad 7.0 - Installing the Nomad Components
Troubleshooting Nomad Content Delivery
- Nomad 7.0 - Implementing and Using Lab Guide
Using Nomad for an OSD Refresh
In this lab, you will see how Nomad integrates with the ConfigMgr OS Deployment process to enable workstations to be refreshed in remote locations that do not have a local server. In the next lab, you will extend this to support bare-metal builds using PXELite.
The key tasks involved in this process are:
- Preparing the boot image to allow content to be sourced from a local peer. This task was completed in the previous lab
- Preparing the deployment Task Sequence to use Nomad
Deploying the modified task sequence to target clients
Preparing a Task Sequence to use Nomad
In this exercise, you will use the copy of an existing Task Sequence created in the previous lab and make the modifications necessary to integrate Nomad to ensure that content is obtained from a local peer whenever available or downloaded from the Distribution Point in a bandwidth controlled manner using Nomad. Additionally, we will be adding the actions necessary to store the captured User State on a local peer and retrieve the User State after the new operating system is in place.
Set Nomad as the Download Program
To support an Alternate Content Provider in a Task Sequence, Microsoft introduced the SMSTSDownloadProgram task sequence environment variable. The SMSTSDownloadProgram task sequence environment variable contains the path to the download program's executable file. In the case of Nomad, this file will be SMSTSNomad.exe and the Nomad 6.0 OSD Tools introduced a custom task sequence action that we will use in this task to set the SMSTSDownloadProgram variable to SMSTSNomad.exe.
- Right-click the Nomad Windows 10 Ent task sequence from Software Library > Operating Systems > Task Sequences and select Edit
- Select the Capture Files and Settings group at the top of the Task Sequence
- From the Add drop down select 1E Nomad and select Set Nomad as Download Program
- Right-click the Set Nomad as Download Program task and select Move Up. The Set Nomad as Download Program task should now appear above the Capture Files and Settings group
- Click Apply to save the change
Install and Configure Nomad in Windows PE
This custom task sequence action is used specifically to install and configure Nomad in WinPE in order to support the use of pre-staged content.
- Select the Restart in Windows PE step in the Install Operating System group
- Click Add > 1E Nomad and select Install and Configure Nomad in Windows PE
- Change the SpecialNetShare value to 8240 (0x2030)
- Set the Compatibility Flags value to 538443786 (0x2018000A)
- Set the P2PEnabled value to 73 (0x49)
- Click Apply
- Select the Install and Configure Nomad in Windows PE step, click Add > 1E Nomad and select the Save Nomad Cache task
- The Operation value will be Move and the Wipe CCM Cache option will be selected
- Click Apply to save the task sequence
Install the 1E Client in the New Operating System
Once the ConfigMgr client is installed in the new operating system, we need to install the 1E Client so it can register as the ACP and retrieve the content for all the other packages, applications and software updates to be installed in the new operating system.
- In the Nomad Windows 10 Ent Task Sequence Editor select the Setup Windows and Configuration Manager task and from the Add drop-down select 1E Nomad > Install 1E Client
- With the Install 1E Client step selected, click Add > General > Restart Computer
- Choose The currently installed default operating system in the Specify what to run after restart: section. Ensure the Notify the user before restarting check box is checked. Change the Notification message to The 1E Client has been installed, change the Message display time-out (seconds) to 10 and click Apply
Restore the Nomad Cache
Once Nomad is installed, we want to restore the content that was used during the machine build into the Nomad cache of the newly built OS.
- Select the Restart Computer task and from the Add drop down select 1E Nomad > Restore Nomad Cache
- In the Properties tab, ensure Link is the operation and select Activate All Content then click Apply to save the task sequence
Working with Dynamic Packages
In this exercise, we will be adding a package to be installed using a variable. We will be manually setting the variable in the lab exercise to demonstrate the behavior, but any means of populating the variable will yield the same result – Nomad will be invoked by the task sequence engine by means of SMSTSNomad.exe being specified as the default task sequence download program.
Add the dynamic package to the Task Sequence
In this task, you will add an Install Package task to the Nomad Windows 10 Ent task sequence that will use a variable name to define the Package and Program to be executed at runtime. For the purpose of this exercise, you will also define this variable directly within the task sequence, simply to demonstrate how dynamic packages can be handled using Nomad.
- Select the Restore Nomad Cache task in the Setup Operating System group
- Click Add and select Software > Install Package
- In the Properties tab, enter Install Dynamic Packages as the name
- Select Install software packages according to dynamic variable list and enter a Base variable name of NOMADOSD. Select If installation of a software package fails, continue installing other packages in the list and click Apply
- Select the Restore Nomad Cache task again, click Add and select General > Set Task Sequence Variable
- In the Properties tab, name the task Set NOMADOSD001. Enter NOMADOSD001 as the Task Sequence Variable and set the Value to PS10001B:Install Skype
- Click on the Options tab on the task, and check the Continue on error box
- Click Apply. The task sequence should now look as image on the right. Confirm this and click OK to save the updated Task Sequence
- Return to the CM console and select Packages from the Application Management folder in the Software Library node of the ConfigMgr console
- Click on the Skype for Windows 7 package (regardless of the name of this package, it is not only for Windows 7. It is named to identify it in a lab exercise for another 1E Product)
- Right-click on the Skype for Windows 7 package, select Properties and go to the Nomad tab
- Enable Nomad for the Skype package and click OK
- Right-click on the Skype for Windows 7 package and select Pre-cache content using Nomad to launch the Nomad Pre-caching wizard
- On the Targeting page, select the Nomad OSD Pre-cache collection and click Next
- Click Apply on the Summary page
- When the job completes, click Finish on the Completion page
- Open a command prompt and change to the C:\Program Files (x86)\1E\ActiveEfficiency\Service directory
- Run the following command to force ActiveEfficiency to sync from ConfigMgr:
Now that a package has been added to the task sequence that uses a dynamic variable, we need to precache the content for that package.
- Run the following command:
Preparing to use Peer Backup Assistant
In an OS refresh or replace scenario, you will typically need to migrate user data and settings using the User State Migration Tool (USMT). In refresh scenarios, USMT will typically achieve this by saving the user state locally in the preserved _SMSTaskSequence folder and restoring it after the new OS has been installed. However, there are many scenarios, such as a replace scenario, where the user's current PC is being replaced with a new one, and it is not possible to store the saved user state on the local hard drive. In these scenarios, a ConfigMgr State Migration Point would normally be required.
Nomad includes the Peer Backup Assistant functionality, which allows a local peer to be used to temporarily store the user state from the computer being built. This removes the need for a User State Migration Point, keeping the user data local.
In this exercise, you will enable the Nomad clients as Peer Backup Assistant hosts, allowing them to store user state data that USMT has collected from their peers. You will also configure the Task Sequence to include the necessary steps to capture and restore the user state using USMT and the selected Nomad peer as the store location.
Enable Peer Backup Assistant
The Peer Backup Assistant functionality needs to be enabled on Nomad clients to enable them to become potential hosts for storing user state from other computers on the subnet. In this exercise, you will learn how to enable the Peer Backup Assistant on existing Nomad clients.
- On 1ETRNCM we earlier copied the ConfigurationItems folder to C:\Temp
- In the Configuration Manager console, open the Assets and Compliance workspace
- Under the compliance settings folder, right-click the Configuration Items node and select Import Configuration Data to start the Import Configuration Data Wizard
- On the Select Files page, click Add… and select C:\Temp\ConfigurationItems\EnableNomadPBA_CI.cab and click Open. You will be warned that the published of this file cannot be verified – click Yes to accept the risk and return to the Select Files page of the Import Configuration Data Wizard
- Click Next, review the settings on the Summary page then click Next
- When the wizard completes, click Close
- From the Assets and Compliance workspace select the Configuration Baselines node, right-click the 1E Client Configuration baseline you created earlier and select Properties
- From the 1E Client Configuration Properties dialog box, select the Evaluation Conditions tab, then click Add and select Configuration Items
- In the Add Configuration Items dialog box select the Enable Nomad PBA Configuration Item and click Add to add this to the 1E Client Configuration baseline. Click OK to return to the 1E Client Configuration Properties dialog box, then click OK to save the changes
- From the Assets and Compliance workspace select the Device Collections node
- Right-click the Lab Workstations Collection and select Client Notification > Download Computer Policy to ensure all clients get the updated configuration baseline
- Use the process you learned previously to manually re-evaluate the 1E Client Configuration on each of the workstations. Ensure that revision 5 of this baseline has been evaluated and is compliant on all workstations
\NMDS\MaximumMegaByte=5120: The MaximumMegaByte setting defines the maximum space which can be allocated by the peer machine for PBA. This is the amount of disk space you want to allow Nomad to use for PBA functionality.
\NMDS\MaxAllocRequest=5120: The MaxAllocRequest is the maximum space that any single machine can use during a PBA task. In a production environment, multiple machines might be offloading user state data onto a single machine, so this setting needs to be defined based on the maximum data expected from any single machine. In our lab, we will only be executing a single task sequence using PBA, so we have configured the setting to the same value as MaximumMegaByte.
SSPBAEnabled=1: The SSPBAEnabled setting enables PBA to work in conjunction with Single Site Download.
Configure the Task Sequence to Capture User State
In this task, you will add tasks in the Nomad Windows 10 Ent task sequence that redirect the store location to a local peer selected at runtime and then capture the user state.
- From the ConfigMgr console, right-click the Nomad Windows 10 Ent Task Sequence and select Edit
- Delete the Request User State Storage and Release User State Storage tasks in the Capture User Files and Settings task group and click Apply
- Repeat the above Step on the Restore User Files and Settings task group at the bottom of the TS
- Select the Capture User Files and Settings task group, click Add and select 1E Nomad PBA> Peer Backup Assistant: Provision Nomad PBA Data Store
- In the Properties tab, validate the Cache space (MB) is set to 100 and click Apply
- With the Capture User Files and Settings task selected, click Add and select 1E Nomad PBA> Peer Backup Assistant: Finalize Nomad PBA Data Store
- Check the Enable High Availability box
- In the Properties tab, set the following properties and click Apply
Maximum number of additional backups: 2
Synchronous backups for which to wait: 1
- The Capture Files and Settings group in the task sequence should now resemble the following:
Configure the Task Sequence to Restore User State
In this task, you will add the State Restore steps that complement the State Capture steps configured in the previous task to restore the user state from the local peer when the new OS has been installed.
- Right-click the Restore User Files and Settings task group and select Move down so the group is no longer indented within the Setup Operating System group. Click Apply. The task sequence should look like the figure below:
- With the Restore User Files and Settings task group selected, click Add and select 1E Nomad PBA > Peer Backup Assistant: Locate Existing Nomad PBA Data Store
- With the Restore User Files and Settings task selected, click Add and select 1E Nomad PBA > Peer Backup Assistant: Release Nomad PBA Data Store. Click Apply
- The Restore User Files and Settings group should now resemble the following:
- Click OK to save and close the Nomad Windows 10 Ent task sequence
Performing an OS refresh using Nomad
Now that all the preparation has been completed, the Nomad Windows 10 Ent deployment task sequence can now be used to refresh a Windows 7 client, migrating it to Windows 10 Enterprise.
Deploy the Nomad Windows 10 Ent task sequence
- In the ConfigMgr console, open the Assets and Compliance workspace and select the Device Collections node. Create a Collection named Nomad Windows 10 Refresh with Lab Workstations as the Limiting Collection and add 1ETRNW72 to the Collection
- Open the Software Library workspace, expand the Operating Systems node and select the Task Sequences node. Right-click the Nomad Windows 10 Ent task sequence and select Deploy to start the Deploy Software Wizard
- On the General page, click Browse
- You will be presented with a warning. Click OK
- Select Nomad Windows 10 Refresh as the target Collection and click OK. Click Next to continue
- On the Deployment Settings page ensure the Purpose is set to Available and click Next
- On the Scheduling page select the check box next to Schedule when this deployment will become available and keep the default setting click Next
- On the User Experience page click Next
- On the Alerts page click Next
On the Distribution Points page, select the following option
Download content locally when needed by running task sequence (default)
and click Next
- On the Summary page, review the details and click Next
- Close the wizard when it completes
Monitor the OS refresh
- Open the NomadBranch.log from C:\Windows\CCM\Logs on 1ETRNW102 to observe behavior related to obtaining content and storing User State data (the machine name will depend on which becomes the state store)
- Log on to 1ETRNW72 as 1ETRN\User
- Open the Configuration Manager Control panel applet from the desktop shortcut, go to the Actions tab, and select Machine Policy Retrieval & Evaluation Cycle and Click Run Now. Close the applet
- Start Wordpad and create a new document, then save it as an Office Open XML document on the Desktop. Create multiple docs if you are so inclined
- Open the Configuration Manager applet from the desktop, select the Cache tab, and click Configure Settings, Click delete files, and at the pop up select Delete persisted cache content. Click Yes. Click OK. This is only necessary in the lab environment, our machines have small hard drives and the cache should be cleared prior to running this task sequence
- Open Software Center from the desktop, and navigate to the Operating Systems node
- Select Nomad Windows 10 Ent and click Install
- Use F5 to refresh until it appears as it might take a few minutes for the policy to come down
- A dialog box will be displayed asking that you confirm the installation of a new operating system. Click INSTALL
- Open C:\Windows\CCM\Logs\smstslog\smsts.log and identify the point where SMSTSNomad.exe is defined as the SMSTSDownloadProgram
- In the smsts.log, observe the Provision Nomad PBA Data Store task as it executes. Note that this task runs NomadPackageLocator –NMDS_POLL, passing it the computer name and estimated storage requirement as parameters
- Switch back to NomadBranch.log, observe the NMDS process starting and a peer responding
- Identify the point where 1ETRNW72 requested an NMDS store location and 1ETRNW102 responds
- Browse to C:\ProgramData\1E\NomadBranch\NMDS on the machine the state store is on and note a 1ETRNW72 folder has been created. This contains the USMT folder, which in turn contains the .MIG file that USMT is generating from 1ETRNW72
- Return to 1ETRNW72 and observe smsts.log as the Capture User State step completes and the Finalize Nomad PBA Data Store step is executed
- Observe the corresponding activity in NomadBranch.log
- Continue to observe NomadBranch.logas the Nomad PBA Data Store High Availability is executed in the task sequence and it requests the specified number of backups from the machine the state store was created on
- Return to NomadBranch.log on 1ETRNW102 and observe as they receives this high-availability request and tries to locate an additional store on the local subnet. Nomad then queries ActiveEfficiency for other devices on adjacent subnets in the same site and is returned three options
- Nomad then forwards an NMDS_POLL on the 10.0.2.0 subnet to the first device on the returned list and receives a total of three offers, which are then confirmed and finally an acknowledgement is sent back to one of the 3 machines on the other subnet
- After the Capture Files and Settings group has completed, the computer must restart in Windows PE to continue. This requires the Win PE boot image. In the smsts.log file from X:\SMSTSLog\smsts.log, search for "Using download program". The lines following show how SMSTSNomad.exe is invoked as the download program to obtain the Win PE boot image
- Click F8 to start a cmd prompt, and type in cmtrace. Navigate to X:\SMSTSLog\smsts.log
- When the Install Nomad in Windows PE step is executed, NomadPackageLocator executes the following command line based on the values entered
- When the Save Nomad Cache is executed, it not only locates and moves the current Nomad cache folder into the reserved folder along with the log files, but also sets the cache path so any subsequent Nomad downloads are also cached in the reserved folder, C:_SMSTaskSequence\NomadBranch. This activity is recorded in the NBCacheActions.log file. The current cache folder is enumerated. You can see the software updates, applications and packages in the log snippet below
- The cache files and log files are moved to the preserved folder and the cache location is reset
Observe Nomad on a peer machines that has the content precached
We will now review Nomad activity on a peer machine that we precached the content on.
- Log on to 1ETRNW102 as 1ETRN\administrator and start Computer Manager (right-click Computer in the Start menu and select Manage)
- Expand the System Tools > Shared Folders > Sessions node. Monitor the user sessions as 1ETRNW72 connects to the Nomad Share (NomadSHR$) each time it requires content
- Select the Open Files node to see the specific files that are being downloaded (use F5 to refresh the display periodically) Open the NomadBranch.log file, and notice the content request and subsequent election
- Observe the task sequence as it progresses through the OS rebuild to the Restore Files and Settings group
- On 1ETRNW102, return to NomadBranch.log and observe as 1ETRNW72 executes the Locate Existing Nomad PBA Data Store (this is the first step in the Restore Files and Settings group in the task sequence) and the machine responds with an NMDS_Confirm message
- Once the user data has been restored observe NomadBranch.log as 1ETRNW72 executes the Release Nomad PBA Data Store step (sending an NMDS_delete) and confirm 1ETRNW102 performs the NMDS_delete
- Note on 1ETRNW102 that the content is deleted
- When the Task Sequence has completed and 1ETRNW72 boots into Windows 10, log on as 1ETRN\User and verify that the document or documents created on the desktop while in Windows 7 are back on the desktop in Windows 10
- You can review NBCacheActions.log and smsts-yyyymmdd-hhmmss.log to observe the task sequence activity from the Setup Windows and Configuration Manager client task
In this lab, you have been introduced to how Nomad is used to obtain content while a task sequence is executing. The task sequence variable, SMSTSDownloadProgram, is set to SMSTSNomad.exe, which defines it as the default download program for the task sequence.
The Save Nomad Cache step not only saves the Nomad cache in WinPE to use the reserved folder location, but also gets the content of the offline Nomad cache (in the current OS) and sets that location as the new default cache path and renames and moves the logs into that location as well.
You have also learned how the Nomad Peer Backup Assistant can be configured within a task sequence to enable user state to be stored temporarily on a local peer. The process involves
- enabling the peers for Peer Backup Assistant by modifying values in the NMDS registry key
- using the Peer Backup Assistant custom Task Sequence steps to provision a data store on a local peer and setting the OSDStateStorePath variable to that store location
- running the Capture User State task, which copies the user state to the selected peer
- completing the capture to release the connection to the data store and retain the content for 7 days
- Using High Availability and SSD to offload the USMT data to multiple machines across a defined site
Once the new operating system has been installed, the user state is restored from the same location and finally, the content is deleted from the peer data store to free up space for other peers.