We've recently upgraded our OpenDeploy environment (both base and receivers) from 5.6 and 5.5 to 6.02 (with SP1 and the latest patch). These are all Solaris machines.With our older 5.x environment, we had a number of deployment configurations that included dnr calls on the target. Rather than calling a script that resided on the target machine, we put the command in-line, such as:<script cmd="/bin/echo ---------- `date` ---------- >> /tmp/doit2.txt" as="root" where="" async="no" >these have been working in production for a number of years.After our upgrade, all of our old configurations continue to work. HOWEVER, when I try to construct a new configuration from scratch using the GUI Deployment Configuration Composer, I'm not able to make any dnr commands work on the targets, in-line or as calls to scripts.So right now:5.x configuration: can make in-line command work on source or target.6.02 configuration: can make in-line command work on source, but not target.Both 5.x and 6.02 configurations can execute a script on the source.Neither 5.x or 6.02 configurations can execute a script on the target.There are a pile of possibilities as to why this is happening.Most likely, I just don't understand the correct syntax for 6.02 to execute a dnr on the target. I thought using the Configuration Composer would help ensure I got it right.There's the possibility that the OpenDeploy receiver installation isn't correctly configured and doesn't have the proper rights to execute scripts. It was a straightforward (upgrade) installation and the product is running as root, so it seems that it should have all the rights to execute the scripts.I also suppose it could be a bug and it just doesn't work?Here are some listings of my configurations I've been testing with. All of them perform the filelist-based deployments of content just fine - it's the dnr portion I'm having fits with.1) Based on 5.x configuration and successfully executes the echo command on the target:<?xml version="1.0" encoding="ISO-8859-1" ?><deploymentConfiguration > <logRules maxBytes="10mb" level="verbose" > </logRules> <localNode host="146.197.1.71" /> <replicationFarmSet > <replicationFarm name="DNRTEST" > <nodeRef useNode="CAMB2ED1" > <targetRules area="" > <transferRules doDeletes="no" dontDo="no" preserveAcls="no" svrTryCount="" svrTryInterval="" svrTryDisableOverwrite="no" rmReadOnly="no" > </transferRules> <comparisonRules dateDifferent="yes" revert="no" ignoreAcls="no" ignoreModes="yes" ignoreUser="yes" ignoreGroup="yes" > </comparisonRules> <permissionRules amask="" omask="" directory="775" file="644" group="jrun" user="jrun" changeAccess="" setAccess="" > </permissionRules> </targetRules> </nodeRef> </replicationFarm> </replicationFarmSet> <definition name="DNRDEF" > <source > <sourceFilesystem area="/app_content/chris" filelist="/app_content/chris/filelist.txt" > <pathSpecification > <path name="." > </path> </pathSpecification> </sourceFilesystem> </source> <target useReplicationFarm="DNRTEST" > <targetFilesystem area="/nike/opt/OpenDeployNG/tmp" > </targetFilesystem> </target> </definition> <deployment transactional="no" > <execDeploymentTask useDefinition="DNRDEF" downRev="" > <deployNRun > <dnrDeployment location="target" when="after" state="always" > <script cmd="/bin/echo ---------- `date` ---------- >> /tmp/doit2.txt" as="root" where="" async="no" > </script> </dnrDeployment> </deployNRun> </execDeploymentTask> </deployment></deploymentConfiguration>If I edit in a call to a script on the target within the '<script cmd' portion of the deployNRun above, it won't execute. This looks like this:<script cmd="\home\jrun\dnr_test.sh" as="jrun" where="" async="no" />The contents of the dnr_test.sh script are:#!/bin/bash/bin/echo `date` >> /tmp/doit3.txtso I've fully qualified both the call to the script and to the echo command.If I then change the location to 'source', it will run the script on the source.2) Here's a 6.02 configuration that I generated using the Configuration Composer. It does not execute the echo command on the target:<?xml version="1.0" encoding="ISO-8859-1" ?><deploymentConfiguration > <logRules maxBytes="10mb" level="verbose" /> <localNode host="146.197.1.71" timeout="" blockMaxWaitTime="1800" blockCheckInterval="30" /> <replicationFarmSet > <replicationFarm name="DNRTEST" quorum="" > <nodeRef useNode="CAMB2ED1" > <targetRules area="" > <transferRules doDeletes="no" dontDo="no" preserveAcls="no" followLinks="no" svrTryCount="" svrTryInterval="" svrTryDisableOverwrite="no" rmReadOnly="no" compression="no" compressionLevel="" applySourceFileTime="yes" checksumVerify="no" byteIncremental="no" /> <comparisonRules dateDifferent="yes" revert="no" ignoreAcls="yes" ignoreModes="yes" ignoreUser="yes" ignoreGroup="yes" checksumCompare="no" /> <permissionRules amask="" omask="" directory="775" file="644" group="jrun" user="jrun" changeAccess="" setAccess="" /> </targetRules> </nodeRef> </replicationFarm> </replicationFarmSet> <definition name="DNRDEF" > <source > <fileSystem name="CHRISFILES" > <filelist area="/app_content/chris" filePath="/app_content/chris/filelist.txt" name="" targetFollowLinks="no" deleteAfterComplete="no" > <pathSpecification > <path name="." /> </pathSpecification> </filelist> </fileSystem> </source> <target useReplicationFarm="DNRTEST" > <targetFilesystem area="/nike/opt/OpenDeployNG/tmp" /> <replicationFarmLink > <internal name="DNRTEST" /> </replicationFarmLink> </target> </definition> <deployment transactional="no" > <execDeploymentTask useDefinition="DNRDEF" /> <dnrDeploymentJob location="target" when="after" state="always" > <script cmd="/bin/echo ------ `date` ---- >> /tmp/doit3.txt" as="root" where="" async="no" /> </dnrDeploymentJob> </deployment></deploymentConfiguration>when I swap in the call to drn_test.sh on the target, it doesn't work either.if I change the location to source rather than target, both the in-line echo and call to the script work.Ideas? I'm working with Support on this also, but I'm hoping some of the great minds on DevNet will have the answer or a suggestion on how to test.Better yet, a couple of examples of working dnr calls using 6.02 would be helpful.Thanks,Wally BoxNike, Inc
<script cmd="/bin/echo ---------- `date` ---------- >> /tmp/doit2.txt" as="root" where="" async="no" >
<?xml version="1.0" encoding="ISO-8859-1" ?><deploymentConfiguration > <logRules maxBytes="10mb" level="verbose" > </logRules> <localNode host="146.197.1.71" /> <replicationFarmSet > <replicationFarm name="DNRTEST" > <nodeRef useNode="CAMB2ED1" > <targetRules area="" > <transferRules doDeletes="no" dontDo="no" preserveAcls="no" svrTryCount="" svrTryInterval="" svrTryDisableOverwrite="no" rmReadOnly="no" > </transferRules> <comparisonRules dateDifferent="yes" revert="no" ignoreAcls="no" ignoreModes="yes" ignoreUser="yes" ignoreGroup="yes" > </comparisonRules> <permissionRules amask="" omask="" directory="775" file="644" group="jrun" user="jrun" changeAccess="" setAccess="" > </permissionRules> </targetRules> </nodeRef> </replicationFarm> </replicationFarmSet> <definition name="DNRDEF" > <source > <sourceFilesystem area="/app_content/chris" filelist="/app_content/chris/filelist.txt" > <pathSpecification > <path name="." > </path> </pathSpecification> </sourceFilesystem> </source> <target useReplicationFarm="DNRTEST" > <targetFilesystem area="/nike/opt/OpenDeployNG/tmp" > </targetFilesystem> </target> </definition> <deployment transactional="no" > <execDeploymentTask useDefinition="DNRDEF" downRev="" > <deployNRun > <dnrDeployment location="target" when="after" state="always" > <script cmd="/bin/echo ---------- `date` ---------- >> /tmp/doit2.txt" as="root" where="" async="no" > </script> </dnrDeployment> </deployNRun> </execDeploymentTask> </deployment></deploymentConfiguration>
<script cmd="\home\jrun\dnr_test.sh" as="jrun" where="" async="no" />
#!/bin/bash/bin/echo `date` >> /tmp/doit3.txt
<?xml version="1.0" encoding="ISO-8859-1" ?><deploymentConfiguration > <logRules maxBytes="10mb" level="verbose" /> <localNode host="146.197.1.71" timeout="" blockMaxWaitTime="1800" blockCheckInterval="30" /> <replicationFarmSet > <replicationFarm name="DNRTEST" quorum="" > <nodeRef useNode="CAMB2ED1" > <targetRules area="" > <transferRules doDeletes="no" dontDo="no" preserveAcls="no" followLinks="no" svrTryCount="" svrTryInterval="" svrTryDisableOverwrite="no" rmReadOnly="no" compression="no" compressionLevel="" applySourceFileTime="yes" checksumVerify="no" byteIncremental="no" /> <comparisonRules dateDifferent="yes" revert="no" ignoreAcls="yes" ignoreModes="yes" ignoreUser="yes" ignoreGroup="yes" checksumCompare="no" /> <permissionRules amask="" omask="" directory="775" file="644" group="jrun" user="jrun" changeAccess="" setAccess="" /> </targetRules> </nodeRef> </replicationFarm> </replicationFarmSet> <definition name="DNRDEF" > <source > <fileSystem name="CHRISFILES" > <filelist area="/app_content/chris" filePath="/app_content/chris/filelist.txt" name="" targetFollowLinks="no" deleteAfterComplete="no" > <pathSpecification > <path name="." /> </pathSpecification> </filelist> </fileSystem> </source> <target useReplicationFarm="DNRTEST" > <targetFilesystem area="/nike/opt/OpenDeployNG/tmp" /> <replicationFarmLink > <internal name="DNRTEST" /> </replicationFarmLink> </target> </definition> <deployment transactional="no" > <execDeploymentTask useDefinition="DNRDEF" /> <dnrDeploymentJob location="target" when="after" state="always" > <script cmd="/bin/echo ------ `date` ---- >> /tmp/doit3.txt" as="root" where="" async="no" /> </dnrDeploymentJob> </deployment></deploymentConfiguration>
Rather than calling a script that resided on the target machine, we put the command in-line, such as:<script cmd="/bin/echo ---------- `date` ---------- >> /tmp/doit2.txt" as="root" where="" async="no" >these have been working in production for a number of years.After our upgrade, all of our old configurations continue to work. HOWEVER, when I try to construct a new configuration from scratch using the GUI Deployment Configuration Composer, I'm not able to make any dnr commands work on the targets, in-line or as calls to scripts.
<!-- ... -->
<script cmd="/bin/echo ===== `date` ==== >> /tmp/doit2.txt" .../>
So right now:5.x configuration: can make in-line command work on source or target.6.02 configuration: can make in-line command work on source, but not target.Both 5.x and 6.02 configurations can execute a script on the source.Neither 5.x or 6.02 configurations can execute a script on the target.