Posted on 03-06-2014 11:05 AM
I really thought this would be easy, and i'm probably doing something wrong. I'm trying to deliver a image file (for usb boot sticks for my techs) to the desktop via Self Service. So they select my policy 'Download USB Image' from Self Service and the end result is they have usb.dmg on their desktop. I've tried using Composer to just package a file on the desktop, having it populate to the user home directories, etc. However this hasn't worked, and it seems that it's actually trying to launch this .dmg file and 'run' it or something.. which in turn kills the machine I try it on.. heh. I tried zipping the .dmg file and placing that on the desktop in the same fashion with no luck. This should be easy right?
Posted on 03-06-2014 11:48 AM
hmm, well you're trying to make a .dmg of a .dmg.
How about if you put your original in a folder and then use composer to make a .dmg package of that?
Posted on 03-06-2014 11:50 AM
I tried that, but it seems it's trying to launch the .dmg that i'm trying to copy after it copies the file.
Posted on 03-06-2014 11:50 AM
I tried that, but it seems it's trying to launch the .dmg that i'm trying to copy after it copies the file.
Posted on 03-06-2014 11:56 AM
Try using Packages instead. I just created a PKG file with a DMG inside of it and was able to deploy that to /Users/Shared without it trying to open the DMG file. Of course, this means that in order for you to move it to the current user's desktop you'd need a postinstall script to handle the move. Unless someone else has another idea. Using this method you could do something like:
#!/bin/sh
# get logged in user
loggedInUser=`/bin/ls -l /dev/console | /usr/bin/awk '{ print $3 }'`
# move the file to the desktop of logged in user
mv /tmp/<yourdmgfile> /Users/$loggedInUser/Desktop
Test, test, test! I just threw that together off the top of my head. But if you put something like that in as a postinstall script in Packages, that should do the trick. And using /tmp as your holding location would make sure the file is deleted on restart if the move failed.
Posted on 03-06-2014 11:58 AM
Thanks so much Steve, I'll give this a shot!
Posted on 03-06-2014 12:34 PM
Couldn't you also just do:
cp "file location" "~/Desktop/filename"
Since the user will be logged in already and using self service.
Posted on 03-06-2014 12:49 PM
~ is evaluated for the user running the script (in this case, root)
I'd do a package/script combo. Compose the DMG in some arbitrary location (let's say /Users/Shared/usb.dmg) and then have the script put it on the logged-in user's desktop.
#!/bin/bash
currentUser=`ls -l /dev/console | awk '{ print $3 }'`
mv /Users/Shared/usb.dmg /Users/$currentUser/Desktop/usb.dmg
Posted on 03-06-2014 12:57 PM
Ditto to the above suggestions. Drop the DMG into a spot on disk, then script copying/moving it to the logged in user's Desktop in a postinstall script. Done.
Posted on 03-06-2014 02:05 PM
What about creating a DMG with the USB.dmg in it?
Put the USB.dmg on the desktop. Build a DMG with Composer.
Right click on a existing package in composer, find in finder and dupe the package.
now name the folder above root USB. Quit composer and re-open.
look for the USB composer, drag in the DMG that is located on your desktop, and make it a DMG.
Copy it to casper admin, and make sure you Fill Existing Users Home Directories.
Posted on 03-06-2014 02:10 PM
* This might not work for you, but you can create a .dmg instead of a package (for #2), then check off fill user templates, fill existing user home directories. You won't need to create a script. But the policy will push this .dmg to all users and new users accounts.
Posted on 03-06-2014 02:13 PM
@JPDyson The $3 variable will be translated to the current user, as long as users are logging in with their domain account in Self Service.
https://jamfnation.jamfsoftware.com/article.html?id=146
#!/bin/bash
mv /Users/Shared/usb.dmg /Users/$3/Desktop/usb.dmg
Posted on 03-06-2014 02:13 PM
If you go back and look at the first two posts by the OP, he's already tried using Composer to capture the DMG file and it has failed.
Posted on 03-06-2014 02:26 PM
Yeah i've tried the dmg in a dmg etc. and for some reason I think Casper is trying to then install that usb.dmg. I appreciate all the responses
Posted on 03-06-2014 02:26 PM
I'm gonna try it as a package and see if I have better results. Thanks again for all the feedback. :)
Posted on 03-06-2014 02:41 PM
Right, but I didn't capture the package using composer, I made a manual package with composer.
If you place a DMG on your desktop and then drag it to composer it will try to create a source for it. Which you don't want.
Just uploaded a .dmg containing a .dmg to my server, configured it in self service and it dropped the DMG to my desktop.
works for me
dd
Posted on 03-06-2014 02:51 PM
Policy might be able to curl it down and drop it on the current user's Desktop?
curl -o /Users/$3/Desktop/LatestImage.DMG http://host.domain.com/LatestImage.DMG
Posted on 03-06-2014 03:10 PM
OK, if I understand you, I just did this with Composer.
Built a new DMG and put some random stuff into it.
Placed the DMG into a folder and zip'd it.
Opened Composer and dropped the zip'd file into the Sources on the left.
Built as a DMG.
Uploaded to JSS and ticked off FEU and FUT, save.
Created a policy for Self Service.
Ran the policy and it installed the zip'd filed on the desktop.
Un-zip'd and opened the folder.
Mounted the DMG.
Content inside was intact.
Only difference is that this was not an OS image, but just random data. Should work the same, no?
Posted on 03-06-2014 03:13 PM
I think the key is that I was not creating the package manually. I'm trying that now and hoping it fixes the weirdness I was experiencing.
Posted on 03-06-2014 05:42 PM
That did it. Creating it manually works fine. Thanks for the hand holding guys. :)