Open navigation

Munki Deployment of ezeep Print App

The ezeep print app for Mac can be deployed to your organization's environment via Munki, a software deployment tool.

Prerequisites: 

Prior knowledge of working with Munki software tool.

Configuration 

Importing ezeep Blue Print App into the Munki server

1. Import ezeep Print App.pkg:

munkiimport /Users/rwelz/Desktop/ezeep\ Print\ App.pkg

Item name: ezeep Print App

Display name: ezeep Print App

Description: enables printing over ezeep

Version: 1.0.30

Category: Printing

Developer: ThinPrint GmbH

Unattended install: False

Unattended uninstall: False

Catalogs: testing

Import this item? [y/N] y

Upload item to subdirectory path []:

No existing product icon found.

Attempt to create a product icon? [y/N] y

Attempting to extract and upload icon...

Imported icons/ezeep Print App_1.png

icons/ezeep Print App_2.png.

Copying ezeep Print App.pkg to repo...

Copied ezeep Print App.pkg to pkgs/ezeep Print App-1.0.30.pkg.

Edit pkginfo before upload? [y/N]: n

Saved pkginfo to pkgsinfo/ezeep Print App-1.0.30.

Rebuild catalogs? [y/N] y

Rebuilding catalogs at file:///Users/Shared/munki_repo...

Created icons/_icon_hashes.plist...

2. Edit the icons:

remove the wrong icon and name the icon you want to keep by removing the

• underscore und the number from the filename like in:

/Users/Shared/munki_repo/icons/ezeep Print App_1.png

/Users/Shared/munki_repo/icons/ezeep Print App_2.png

• remove

/Users/Shared/munki_repo/icons/ezeep Print App_1.png

• and rename

/Users/Shared/munki_repo/icons/ezeep Print App_2.png

to

/Users/Shared/munki_repo/icons/ezeep Print App.png

3. Then create a new catalog with:

makecatalogs

Getting list of icons...

Hashing Firefox.png...

Hashing ezeep Print App.png...

Getting list of pkgsinfo...

Getting list of pkgs...

Adding pkgsinfo/ezeep Print App-1.0.30 to testing...

Adding pkgsinfo/apps/mozilla/Firefox-88.0.1 to testing...

Created catalogs/all...

Created catalogs/testing...

Created icons/_icon_hashes.plist…

4. Add the imported ezeep Print App.pkg to the manifest:

manifestutil

Entering interactive mode... (type "help" for commands)

> add-catalog testing --manifest site_default

Catalog testing is already in manifest site_default.

> add-pkg ezeep\ Print\ App --manifest site_default

Added ezeep Print App to section managed_installs of manifest site_default.

> exit

5. Now when you open Managed Software Center.app on a Mac configured as Munki client you will see a new

update – even when it is a first install of ezeep Blue Print App

ezeep blue print app deployment with munki

Make the client auto launch ezeep Blue Print App after installation

To make ezeep Blue Print App to launch automatically when user logs in and install the printers the user is

able to use, we need to add a script to the ezep Print App pkgsvinfo file in a quoted format:

1. Create a new file and save it to the destktop with a name like munki_postinstall_script.txt

#!/bin/sh

if [ ! -d "/Library/PrivilegedHelperTools" ]

then

mkdir "/Library/PrivilegedHelperTools"

chmod 755 "/Library/PrivilegedHelperTools"

fi

if [ -f "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-

helper" ]

then

rm "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-

helper"

fi

cat << EOF > "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-

helper"

#!/bin/sh

open "/Applications/ezeep Print App.app"

rm ~/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist

EOF 

chmod 755 "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-

helper"

out=$(dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]' | grep "dir:" | sed -e

's/dir: //g')

for i in $out

do

j=$(basename "$i")

if [ ! -d "$i/Library/LaunchAgents" ]

then

mkdir "$i/Library/LaunchAgents"

chown "$j" "$i/Library/LaunchAgents"

chmod 755 "$i/Library/LaunchAgents"

fi

cat << EOF > "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.

plist"

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/Property-

List-1.0.dtd">

<plist version="1.0">

<dict>

<key>KeepAlive</key>

<false/>

<key>Label</key>

<string>com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser</string>

<key>LimitLoadToSessionType</key>

<array>

<string>Aqua</string>

<string>StandardIO</string>

</array>

<key>ProgramArguments</key>

<array>

<string>/bin/bash</string>

<string>/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-

helper</string>

</array>

<key>RunAtLoad</key>

<true/>

</dict>

</plist>

EOF

chown "$j" "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"

chmod 644 "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"

done

exit 0

2. Copy the content of this script into munki_postinstall_script.txt.

3. Let’s Munki convert the contents of this file into a special quoted format:

/usr/local/munki/makepkginfo --postinstall_script /Users/rwelz/Desktop/munki_postinstall_

script.txt

4. Copy the relevant part of the output (between <string> and </string> and paste it into the pkgsinfo

file together with the relevant xml key:

<string>#!/bin/sh

if [ ! -d "/Library/PrivilegedHelperTools" ]

then

mkdir "/Library/PrivilegedHelperTools"

chmod 755 „/Library/PrivilegedHelperTools"

chmod 644 "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"

done

exit 0</string>

5. Paste this into the file /Users/Shared/munki_repo/pkgsinfo/ezeep Print App-1.0.30 like:

<key>receipts</key>

<array>

<dict>

<key>installed_size</key>

<integer>7</integer>

<key>packageid</key>

<string>com.thinprint.ezeep.printapp.logging</string>

<key>version</key>

<string>1.0.30</string>

</dict>

<dict>

<key>installed_size</key>

<integer>764</integer>

<key>packageid</key>

<string>com.thinprint.ezeep.printapp.printerdriver</string>

<key>version</key>

<string>1.0.2</string>

</dict>

<dict>

<key>installed_size</key>

<integer>123565</integer>

<key>packageid</key>

<string>com.ThinPrint.TPAutoConnect</string>

<key>version</key>

<string>12.2.93</string>

</dict>

<dict>

<key>installed_size</key>

<integer>74015</integer>

<key>packageid</key>

<string>com.ThinPrint.TPAutoConnect.PPDGen</string>

<key>version</key>

<string>1.0.30</string>

</dict>

<dict>

<key>installed_size</key>

<integer>99173</integer>

<key>packageid</key>

<string>com.thinprint.ezeep.printapp</string>

<key>version</key>

<string>1.0.30</string>

</dict>

</array>

<key>postinstall_script</key>

<string>#!/bin/sh

if [ ! -d "/Library/PrivilegedHelperTools" ]

then

mkdir "/Library/PrivilegedHelperTools"

chmod 755 "/Library/PrivilegedHelperTools"

fi

if [ -f "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-

helper" ]

then

rm "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-

helper"

fi

cat &lt;&lt; EOF &gt; "/Library/PrivilegedHelperTools/com.thinprint.

ezeep.ezeep-Print-App-launchOncePerUser-helper"

#!/bin/sh

open "/Applications/ezeep Print App.app"

rm ~/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist

EOF

chmod 755 "/Library/PrivilegedHelperTools/com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser-

helper"

out=$(dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]' | grep "dir:" | sed -e

's/dir: //g')

for i in $out

do

j=$(basename "$i")

if [ ! -d "$i/Library/LaunchAgents" ]

then

mkdir "$i/Library/LaunchAgents"

chown "$j" "$i/Library/LaunchAgents"

chmod 755 "$i/Library/LaunchAgents"

fi

cat &lt;&lt; EOF &gt; "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.

plist"

&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-

1.0.dtd"&gt;

&lt;plist version="1.0"&gt;

&lt;dict&gt;

&lt;key&gt;KeepAlive&lt;/key&gt;

&lt;false/&gt;

&lt;key&gt;Label&lt;/key&gt;

&lt;string&gt;com.thinprint.ezeep.ezeep-Print-App-launchOncePerUser&lt;/string&gt;

&lt;key&gt;LimitLoadToSessionType&lt;/key&gt;

&lt;array&gt;

&lt;string&gt;Aqua&lt;/string&gt;

&lt;string&gt;StandardIO&lt;/string&gt;

&lt;/array&gt;

&lt;key&gt;ProgramArguments&lt;/key&gt;

&lt;array&gt;

&lt;string&gt;/bin/bash&lt;/string&gt;

&lt;string&gt;/Library/PrivilegedHelperTools/com.thinprint.

ezeep.ezeep-Print-App-launchOncePerUser-helper&lt;/string&gt;

&lt;/array&gt;

&lt;key&gt;RunAtLoad&lt;/key&gt;

&lt;true/&gt;

&lt;/dict&gt;

&lt;/plist&gt;

EOF

chown "$j" "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"

chmod 644 "$i/Library/LaunchAgents/com.thinprint.ezeep.ezeep-Print-App-launchOnce.plist"

done

exit 0</string>

<key>unattended_install</key>

<true/>

<key>unattended_uninstall</key>

<false/>

<key>uninstall_method</key>

<string>removepackages</string>

<key>uninstallable</key>

<true/>

<key>version</key>

<string>1.0.30</string>

<key>RestartAction</key>

<string>RequireRestart</string>

</dict>

</plist>

6. Call:

/usr/local/munki/makecatalogs

to make Munki recognize the changes in the pkgsinfo file.

 

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.