<commit_before>---
title: "Upgrading macOS via Self Service"
tags: [DEP, AD, JAMF]
type: post
---

Following along [from this great post by <NAME>][1] I wanted to write a followup to how I’m deploying macOS Sierra in my environment. I've followed a lot of the steps that Rich has outlined but it's probably easier to describe the full set of steps I'm taking rather than describing the differences. 

Firstly I'm downloading the most recent version of the macOS Sierra installer from the App Store then running it through `[createOSXinstallPkg][2]` using the following command:

```sudo ./createOSXinstallPkg --plist /path/to/xml.plist```

The `--plist` option allows me to set all my arguments in a single file rather than having to specify them each time there's a new version of Sierra out.

**Include example plist here**

Once this pkg has been created I upload it to the JSS using Casper Admin adding it to the macOS Installers Category.

Next up is creating the Policy that will cache the pkg on all eligible Macs. I'm deciding to do this automatically so that when a user decides to upgrade, it will execute almost instantaneously.

![](/images/install_macOS/01a_cache_general.png)
![](/images/install_macOS/01b_cache_package.png)
![](/images/install_macOS/01c_cache_maintenance.png)

This Policy is scoped to a Smart Group of Macs that have an outdated version of macOS installed
![](/images/install_macOS/01d_cache_scope.png)

![](/images/install_macOS/02a_group_outdated.png)

The Install Policy has a custom trigger of `installSierra` which is executed by a script in the Update to macOS Sierra Policy (described below)
![](/images/install_macOS/03a_install_general.png)
![](/images/install_macOS/03b_install_package.png)
![](/images/install_macOS/03c_install_restart.png)
![](/images/install_macOS/03d_install_maintenance.png)
![](/images/install_macOS/03e_install_scope.png)

![](/images/install_macOS/04a_group_cache_before.png)
![](/images/install_macOS/04b_group_cache_select.png)
![](/images/install_macOS/04c_group_cache_after.png)

![](/images/install_macOS/05a_group_sierra_installed.png)

![](/images/install_macOS/06a_upgrade_general.png)
![](/images/install_macOS/06b_upgrade_scripts.png)
![](/images/install_macOS/06c_upgrade_scope_target.png)
![](/images/install_macOS/06d_upgrade_scope_exclusions.png)
![](/images/install_macOS/06e_upgrade_self_service.png)

![](/images/install_macOS/)



[1]:	https://derflounder.wordpress.com/2015/11/23/providing-os-x-upgrades-via-caspers-self-service/<commit_msg>Adjusting things<commit_after>---
title: "Upgrading macOS via Self Service"
tags: [DEP, AD, JAMF]
type: post
---

Following along [from this great post by <NAME>][1] I wanted to write a followup to how I’m deploying macOS Sierra in my environment. I've followed a lot of the steps that Rich has outlined but it's probably easier to describe the full set of steps I'm taking rather than describing the differences. 

Firstly I'm downloading the most recent version of the macOS Sierra installer from the App Store then running it through [createOSXinstallPkg][2] using the following command:

```
sudo ./createOSXinstallPkg --plist /path/to/xml.plist
```

The `--plist` option allows me to set all my arguments in a single file rather than having to specify them each time there's a new version of Sierra out.

```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Source</key>
    <string>/Volumes/Macintosh HD/Applications/Install macOS Sierra.app</string>
    <key>Output</key>
    <string>/Volumes/Macintosh HD/Installers/</string>
    <key>Identifier</key>
    <string>com.cultureamp.InstallmacOS.pkg</string>
</dict>
</plist>
```

Once this pkg has been created I upload it to the JSS using Casper Admin adding it to the macOS Installers Category.

Next up is creating the Policy that will cache the pkg on all eligible Macs. I'm deciding to do this automatically so that when a user decides to upgrade, it will execute almost instantaneously.

![](/images/install_macOS/01a_cache_general.png)
![](/images/install_macOS/01b_cache_package.png)
![](/images/install_macOS/01c_cache_maintenance.png)

This Policy is scoped to a Smart Group of Macs that have an outdated version of macOS installed
![](/images/install_macOS/01d_cache_scope.png)

![](/images/install_macOS/02a_group_outdated.png)
*Test Caption*

*Normal En*

The Install Policy has a custom trigger of `installSierra` which is executed by a script in the Update to macOS Sierra Policy (described below)
![](/images/install_macOS/03a_install_general.png)
![](/images/install_macOS/03b_install_package.png)
![](/images/install_macOS/03c_install_restart.png)
![](/images/install_macOS/03d_install_maintenance.png)
![](/images/install_macOS/03e_install_scope.png)

![](/images/install_macOS/04a_group_cache_before.png)
![](/images/install_macOS/04b_group_cache_select.png)
![](/images/install_macOS/04c_group_cache_after.png)

![](/images/install_macOS/05a_group_sierra_installed.png)

![](/images/install_macOS/06a_upgrade_general.png)
![](/images/install_macOS/06b_upgrade_scripts.png)
![](/images/install_macOS/06c_upgrade_scope_target.png)
![](/images/install_macOS/06d_upgrade_scope_exclusions.png)
![](/images/install_macOS/06e_upgrade_self_service.png)

![](/images/install_macOS/)



[1]:	https://derflounder.wordpress.com/2015/11/23/providing-os-x-upgrades-via-caspers-self-service/
[2]:	https://github.com/munki/createOSXinstallPkg
{'fraction_non_alphanumeric': 0.11616615716597735, 'fraction_numerical': 0.019420967451897142, 'mean_word_length': 5.400460299194476, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 1, '>': 23, 'https://': 3, 'lorem ipsum': 0, 'www.': 1, 'xml': 3}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5446955', 'n_tokens_mistral': 1934, 'n_tokens_neox': 1761, 'n_words': 521}