Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Patch Deep Dive

Jamf
October 25, 2018

A Patch Deep Dive

Presentation from JNUC 2018, the world's largest rally of Apple IT administrators.

Session:
A Patch Deep Dive

Presented by:
Duncan McCracken, Mondada Pty Ltd
Luckie Vang, Jamf

View all session slides, recordings and more at https://www.jamf.com/events/jamf-nation-user-conference/2018/.

Jamf

October 25, 2018
Tweet

More Decks by Jamf

Other Decks in Technology

Transcript

  1. © JAMF Software, LLC Duncan McCracken Co-Founder / Technical Director

    Mondada Pty Ltd Luckie Vang Test Engineer Jamf
  2. © JAMF Software, LLC A Patch Deep Dive Presentation agenda:

    About Version Control Jamf Patch History External Patch Endpoints Connecting to an External Source External Patch Source Projects
  3. © JAMF Software, LLC A Patch Deep Dive Presentation agenda:

    Structure of a Patch Definition Creating Patch Definitions Pre-supplied Patch Definitions
  4. © JAMF Software, LLC About Version Control • Where is

    the information stored? Not as simple as it seems on the surface
  5. © JAMF Software, LLC About Version Control • Default Location


    <App Bundle>.app/Contents/Info.plist • Default Key
 CFBundleShortVersionString Where is the information stored?
  6. © JAMF Software, LLC About Version Control • Except for

    when it isn’t • In the Context of Jamf: Extension Attribute Where is the information stored?
  7. © JAMF Software, LLC About Version Control • Where is

    the information stored? • Standards in version strings Not as simple as it seems on the surface
  8. © JAMF Software, LLC About Version Control • What does

    a version string look like? Standards in version strings
  9. © JAMF Software, LLC About Version Control • What does

    should a version string look like? • Major . Minor . Build [ . Revision ] Standards (or lack of) in version strings
  10. © JAMF Software, LLC About Version Control • Lack of

    standards in version strings • Where the information is stored • Comparison vs Lookup Not as simple as it seems on the surface
  11. © JAMF Software, LLC About Version Control • Comparison gives

    a Relative State • Comparison requires consistency Comparison vs Lookup
  12. © JAMF Software, LLC About Version Control • Comparison gives

    a Relative State • Comparison requires consistency • Comparison works most of the time Comparison vs Lookup
  13. © JAMF Software, LLC About Version Control • Lookup doesn't

    care about consistency Comparison vs Lookup
  14. © JAMF Software, LLC About Version Control • Lookup doesn't

    care about consistency • Lookup is reactive Comparison vs Lookup
  15. © JAMF Software, LLC About Version Control • Lookup doesn't

    care about consistency • Lookup is reactive • Lookup works all the time Comparison vs Lookup
  16. © JAMF Software, LLC Jamf Patch History • Patch Reporting

    in Jamf Pro 9.96 • Patch Management in Jamf Pro 10.0 The Road So Far…
  17. © JAMF Software, LLC Jamf Patch History • Patch Reporting

    in Jamf Pro 9.96 • Patch Management in Jamf Pro 10.0 • External Patch Sources in Jamf Pro 10.2 The Road So Far…
  18. © JAMF Software, LLC External Patch Endpoints • API -

    API communication https://www.jamf.com/jamf-nation/articles/497
  19. © JAMF Software, LLC External Patch Endpoints • API -

    API communication • /software https://www.jamf.com/jamf-nation/articles/497
  20. © JAMF Software, LLC External Patch Endpoints • API -

    API communication • /software • /software/{ids} https://www.jamf.com/jamf-nation/articles/497
  21. © JAMF Software, LLC External Patch Endpoints • API -

    API communication • /software • /software/{ids} • /patch/{id} https://www.jamf.com/jamf-nation/articles/497
  22. © JAMF Software, LLC Connecting to an External Source •

    The Java Keystore must trust the SSL Cert Things to Remember
  23. © JAMF Software, LLC Connecting to an External Source •

    The Java Keystore must trust the SSL Cert • The Endpoint must have at least one definition Things to Remember
  24. © JAMF Software, LLC Connecting to an External Source •

    The Java Keystore must trust the SSL Cert • The Endpoint must have at least one definition • Patch Definitions for 3rd-party sources can't be code-signed Things to Remember
  25. © JAMF Software, LLC External Patch Source Projects • Patch

    Server for Jamf Pro
 https://patchserver.readthedocs.io/en/latest/ Take a Look at These
  26. © JAMF Software, LLC External Patch Source Projects • Patch

    Server for Jamf Pro
 https://patchserver.readthedocs.io/en/latest/ • Kinobi Open Source
 https://kinobi.io/ Take a Look at These
  27. © JAMF Software, LLC Structure of a Patch Definition •

    Jamf Pro External Patch Source Endpoints
 https://www.jamf.com/jamf-nation/articles/497 References
  28. © JAMF Software, LLC Structure of a Patch Definition •

    Kinobi: Understanding Patch Definitions
 https://github.com/mondada/kinobi/wiki/ Understanding-Patch-Definitions References
  29. © JAMF Software, LLC Structure of a Patch Definition •

    Corresponds to the Jamf Pro Database Patch Data Structure
  30. © JAMF Software, LLC Structure of a Patch Definition •

    Corresponds to the Jamf Pro Database • Modular and extensible Patch Data Structure
  31. © JAMF Software, LLC Structure of a Patch Definition •

    Corresponds to the Jamf Pro Database • Modular and extensible • Not everything is used Patch Data Structure
  32. © JAMF Software, LLC Structure of a Patch Definition •

    Corresponds to the Jamf Pro Database • Modular and extensible • Not everything is used • Some duplication of information Patch Data Structure
  33. © JAMF Software, LLC Structure of a Patch Definition •

    Software Title • patch • components • extensionAttributes Object Types
  34. © JAMF Software, LLC Structure of a Patch Definition •

    killApps • criteria (used for multiple things) Object Types
  35. © JAMF Software, LLC Structure of a Patch Definition •

    name • publisher • appName • bundleId Software Title
  36. © JAMF Software, LLC Structure of a Patch Definition •

    lastModified • currentVersion • id Software Title
  37. © JAMF Software, LLC Structure of a Patch Definition •

    requirements • patches • extensionAttributes Software Title
  38. © JAMF Software, LLC Structure of a Patch Definition •

    version • releaseDate • standalone • minimumOperatingSystem patch
  39. © JAMF Software, LLC Structure of a Patch Definition •

    killApps • components • capabilities • dependencies patch
  40. © JAMF Software, LLC Structure of a Patch Definition •

    key • value • displayName extensionAttributes
  41. © JAMF Software, LLC Structure of a Patch Definition •

    name • operator • value • type Criteria
  42. © JAMF Software, LLC Structure of a Patch Definition •

    name • operator • value • type Criteria • and
  43. © JAMF Software, LLC Creating Patch Definitions • Validate Extension

    Attributes • Use Advanced Searches in Jamf Pro Pro Tips
  44. © JAMF Software, LLC Creating Patch Definitions • Validate Extension

    Attributes • Use Advanced Searches in Jamf Pro • Smart Groups without parenthesis Pro Tips
  45. © JAMF Software, LLC Pre-supplied Patch Definitions • Community Patch


    https://communitypatch.readthedocs.io/ If [insert annoying part] all seems too much…
  46. © JAMF Software, LLC Pre-supplied Patch Definitions • Community Patch


    https://communitypatch.readthedocs.io/ • Kinobi Subscription
 https://kinobi.io/kinobi/ If [insert annoying part] all seems too much…
  47. © JAMF Software, LLC NetSUS 5.0 • Improved UI •

    Enable / Disable Services • Additional System Management • Better Sanity Checking New Features
  48. © JAMF Software, LLC NetSUS 5.0 • File Sharing •

    Multiple NBIs • SUS Catalog Selection • And many more New Features