Silent IBM Spectrum Install - Mac

Hey all,

I was able to automate the Spectrum install for Windows, but now I’m struggling a bit for the Mac side of things and I’m wondering if anyone has experience getting Spectrum configured correctly on Macs through BF.

The initial silent install action script that BF generates isn’t anything crazy:

//**Begin Preparation Marker
// Download all specified files
begin prefetch block
add prefetch item name=20ECE73BEBE310C3516E10B56358BC14121EA03F sha1=20ece73bebe310c3516e10b56358bc14121ea03f size=156627440 url=SWDProtocol://127.0.0.1:52311/Uploads/20ECE73BEBE310C3516E10B56358BC14121EA03F/Tivoli%20Storage%20Manager.pkg.bfswd sha256=6a9dcf1234bec073b8d5162dd65e8d9f877ab55c174ca854ef56472efa361552
end prefetch block

// All SWD files will go into a folder in the clients __BESData folder. This folder gets cleared on every restart.
parameter “baseFolder” = “__Download/”
// Move files into subfolders and unescape file names
move “__Download/20ECE73BEBE310C3516E10B56358BC14121EA03F” “{parameter “baseFolder”}Tivoli Storage Manager.pkg”

// Log setup
parameter “mainSWDLogFolder” = "{parent folder of client folder of current site}/__Global/SWDDeployData"
folder create "{parameter “mainSWDLogFolder”}"
parameter “logFile” = “SWD_DeploymentResults.log”

//**End Preparation Marker
parameter “logFolder” = "{parameter “mainSWDLogFolder”}"
folder create “{parameter “logFolder”}”
// Run setup process
delete __createfile
delete run.sh

createfile until end
cd “{parameter “baseFolder”}”
// See comments at the beginning of this action for an explanation of the comment markers.
echo $(date +%Y_%m_%d" "%T) >> "{parameter “logFolder”}/{parameter “logFile”}"
echo Action ID: {id of active action} >> “{parameter “logFolder”}/{parameter “logFile”}”

//**Begin Command Marker
echo Command: installer -pkg “Tivoli Storage Manager.pkg” -target / >> "{parameter “logFolder”}/{parameter “logFile”}"
installer -pkg “Tivoli Storage Manager.pkg” -target / >> “{parameter “logFolder”}/{parameter “logFile”}” 2>&1
SWDExitCode=$?
//**End Command Marker

echo Return code: $SWDExitCode >> "{parameter “logFolder”}/{parameter “logFile”}"
echo >> "{parameter “logFolder”}/{parameter “logFile”}"
exit $SWDExitCode
end

move __createfile run.sh
override wait
completion=job
wait bash run.sh
//**Begin Closing Marker
// Get the return code of the previous action.
parameter “returnCode” = “{exit code of action}”

// Task will now exit.
exit {parameter “returnCode”}
//**End Closing Marker

But afterwards, you have to configure a bit more by hand to get it to function. Namely the dys.opt and dys.sys files.
We do have an fixlet that somewhat fixes this, but I believe it still requires a user to finish it out manually. This was created a while ago so…

action parameter query “TSMserver” with description “Specify the TSM backup server” and with default value "server.domain.tld"
action parameter query “TSMNodeName” with description “Specify the Node Name” and with default value "MyComputer"
action parameter query “TSMTCPPort” with description “Specify the TCP port” and with default value "1500"
action parameter query “TSMPassword” with description “Specify the TSM password” and with default value “ChangeMe”

delete "/Library/Preferences/Tivoli Storage Manager/dsm.opt"
delete “/Library/Preferences/Tivoli Storage Manager/dsm.sys”

delete __appendfile
appendfile SERVERNAME {COMPUTER NAME}
move __appendfile “/Library/Preferences/Tivoli Storage Manager/dsm.opt”

delete __createfile
createfile until END_OF_CREATE_FILE
SERVERNAME {COMPUTER NAME}
NODENAME {parameter “TSMNodeName” of action}
PASSWORDACCESS GENERATE
TCPSERVERADDRESS {parameter “TSMserver” of action}
ERRORLOGRETENTION 30 D
SCHEDLOGRETENTION 15 D
TCPPORT {parameter “TSMTCPPort” of action}
DOMAIN "/"
EXCLUDE "…/"
INCLUDE "/Users/…/
"
EXCLUDE "/Users/etcadmin/…/*"
EXCLUDE.DIR "/Users/…/Library/Caches"
EXCLUDE.DIR "/…/.Trashes"
EXCLUDE.DIR "/…/.Trash"
EXCLUDE.DIR "/…/Library/Caches"
EXCLUDE.DIR "/…/.Spotlight-V100"
END_OF_CREATE_FILE
delete "/Library/Preferences/Tivoli Storage Manager/dsm.sys"
move __createfile “/Library/Preferences/Tivoli Storage Manager/dsm.sys”

delete "{(client folder of current site as string) & “/__appendfile”}"
appendfile #!/bin/sh
appendfile /bin/sleep 2
appendfile launchctl unload -w /Library/LaunchDaemons/com.ibm.tivoli.dsmcad.plist
appendfile /usr/libexec/ApplicationFirewall/socketfilterfw --add /Library/Application\ Support/tivoli/tsm/client/ba/bin/dsmcad
appendfile /usr/libexec/ApplicationFirewall/socketfilterfw --add /Library/Application\ Support/tivoli/tsm/client/ba/bin/dsmagent
appendfile /bin/sleep 2
appendfile /Library/Application\ Support/tivoli/tsm/client/ba/bin/dsmc set password {parameter “TSMPassword” of action} {parameter “TSMPassword” of action}
appendfile /bin/sleep 2
appendfile launchctl load -w /Library/LaunchDaemons/com.ibm.tivoli.dsmcad.plist
appendfile exit 0
wait chmod 555 “{(client folder of current site as string) & “/__appendfile”}“
wait {”/bin/sh -c %22trap ‘’ 15;’” & (client folder of current site as string) & “/__appendfile’%22”}

wait “/Library/Application Support/tivoli/tsm/client/ba/bin/dsmc” incr

Has anyone had experience getting all of the settings automated so that you can push this out without needing user input? I’m still testing…