Client Management Suite

 View Only

Getting the Most out of Software Delivery Sequential Tasks 

Jun 26, 2007 11:13 AM

Have you used Sequential Tasks for Software Delivery Solution? For complex rollouts with updates, patches, and add-ons you want installed on target systems, Sequential Tasks are for you. Sequential Tasks can accomplish this with a single Policy configured to roll each piece out in order, with the ability to setup dependencies to ensure no execution occurs that has not had the prerequiste software installed first.

Introduction

Sequential Software Delivery Tasks can extend the functionality of Software Delivery Solution. Understanding how it works will help in configuring it the best way possible and avoid potential problems. This document also covers the technical details of how a Sequential Task works, from creation to execution on target Altiris Agent managed systems.

Sequential Task Configuration Details

Sequential Tasks have multiple executions associated with them. Sequential Tasks are linked to Package/Programs as line items. Each execution item links to a Package and Program much the same way a Task links to a Package and Program. Consider each of these line items as 'Tasks' within the Sequential Task. The following details outline the configuration and

General Tab

The following shows the main configuration screen for Sequential Tasks under the General tab. Many of the options are the same as standard Software Delivery Tasks and will only be covered lightly here.

  1. Execution Order: To add package-programs to the list of executing items, click the blue + to the right of the screen.
  2. NOTE! Selector dialog: This dialog shows no results by default so a search can be performed. You can search by Package Name or Program Name.
  3. SHOW ALL: To show all package and programs, check either option and click 'Search' to see the complete tree under the 'Package Folder:' section.
  4. Package-Program: Note the relationship of Package to Programs. If you check a package (Blue cube icon) it will select all Programs underneath. To avoid adding unintended Programs, select items by check the Program box (green check mark clipboard icon).
  5. Select all items you wish to execute in the Sequential Task, and then click OK.
  6. Dependencies -- The ability to create dependencies on the previously run Package/Programs hinges off successful completion of the task. If a task fails but the next task is not dependent on that completing successfully, it will subsequently run, continuing the 'chain' of Programs. Creating dependencies can avoid sequential failures for those items that require a successful run of a previous execution line-item in the Sequential Task.

Advanced Tab

The Advanced tab provides the same Altiris Agent Download and Execute options a regular Software Delivery Task supplies. This overrides the settings of the Altiris Agent Configuration Policy found in the Altiris Console at Configuration > Altiris Agent > Altiris Agent Configuration > select the Policy that applies to the target computers.

Software Portal Tab

This tab controls what Sequential Tasks show up in the Software Portal. The way Sequential Tasks are used in the Portal is different than standard Software Delivery items. Note that a regular Software Delivery Task does not have the Software Portal tab. That tab is reserved for the Packages directly. Thus regular Portal entries represent a Package > Program selection, where as Sequential Tasks are tied first to the Task, which automatically inherits all Packages and Programs contained therein.

Status Tab

This tab provides a reporting interface similar to a regular Software Delivery Task. If this tab does not fulfill your reporting needs, see the Sequential Reports found under the Reports tab, under Software Management, Software Delivery, Windows.

Best Practices

This section provides practical advice and Best approaches in using Sequential Task gleaned from working on issues associated with Sequential Tasks, and seeing what various customers have done to utilize this type of task.

Managing a Sequential Task

NOTE! IMPORTANT!! Modifying the "Execution Order:" items will require the Sequential Task to be assigned a new Task Guid, and that every subtask will also receive a new Task Guid. This means any system that already ran the Sequential Task will run it again if they still reside within the Collection. Please note the following:

  • It is highly recommended you carefully plan the construction of the Sequential Task before rolling it out into production so you do not run into problems modifying the 'Execution Order:'.
  • Modifications to the actual Package/Programs associated with the Sequential Task will not cause a new Guid to be generated. The actions that cause a new Guid generations are:
    1. Changing Execution Order -- Using the up and down errors to modify the order in which Programs execute
    2. Adding additional Programs -- Adding additional Package-Programs to the execution list.
    3. Removing Programs -- Removing Package-Programs from the execution list.

Conducting Reboots

When conducting a Reboot in the middle of a Sequential Task the Program configuration option 'After running the Altiris Agent should: Reboot' should execute the Reboot not the execution running (MSI or other Installer initiating the reboot).

This ensures that the status of the Sequential Task is properly written to the hard disk before the computer shuts down for the reboot. If the Task Synch Agent is unable to write the status down the Task Synch Agent will rerun previous steps according to the last time the Synchronization.xml file was saved.

Scripting for Conditions

By default a Sequential Task only has one type of condition. This condition is a dependency on the successful execution result of a previous task as configured in the Sequential Task. While there is some room to add different 'success' return codes to a Program and thus extend what qualifies as a successful run, this is the only condition available.

I am not a scripter, but many customers have created Programs that run a script instead of directly calling an EXE or MSI. For example, the script can conduct the following:

  1. Runs a command to see if a certain application and version is installed.
  2. If not, it runs a command to install it and repeats the steps.
  3. If yes, it installs an update to the program.
  4. This becomes one line item in the task.

Sequential Task Technical Details

As explained previously Sequential Tasks are a list of Package > Program execution line-items. The list of items to execute does not link to Tasks, but to the Package/Programs relationships.

The following steps detail how the Task is architected:

  1. A Sequential Task Guid is generated for the entire 'Task'. The task appears as such in the Altiris Agent's Client Policy XML file:
    <Policy guid="{78939175-0C4A-4A55-A164-60DC888BDDC2}" name="Synchronization Task for Sequential Software Delivery Task : Sequential Task" version="6.0.6074.0">
    <ClientPolicy agentClsid="Altiris.Synch">
    <Task guid="{28193450-be96-46f7-954b-5ea2762a28f1}" priority="1" ExeName="" /> 
    <Task guid="{c34568c9-dfc6-4e70-8fcd-11fc7440986c}" priority="2" ExeName="">
    <Dependency guid="{28193450-be96-46f7-954b-5ea2762a28f1}" returncodes="0" /> 
    </Task>
    <TaskCreatedForSWPortal ReportFinalStatusToServer="False" /> 
    <ValidPeriod after="2006-10-25 00:00:00" afterGMT="false" /> 
    <Schedule ScheduleRetry="false">
    <Schedule>
    <Trigger Type="-1" Description="As soon as possible" /> 
    </Schedule>
    </Schedule>
    </ClientPolicy>
    </Policy>
    
    
  2. Note that the Task includes two Task Guids, listed in the XML snippet as <Task guid=. Each Task is generated when the Sequential Task is created and saved. These tasks are not viewable in the console, but have standard entries in the Client Policy XML.
    NOTE! These Tasks very closely resemble standard Software Delivery Solution Tasks in the Database architecture. The Client Policy entries for the sub-tasks look like a standard Task, for example:
    <Policy guid="{C34568C9-DFC6-4E70-8FCD-11FC7440986C}" name="Software Delivery Task for program : Sequential Task Program #2" version="6.0.6074.0">
    <ClientPolicy agentClsid="Altiris.SWD">...etc...
    
    
  3. The naming convention is as follows for these subtasks: Software Delivery Task for program: <Name of the Program in the line-item within the Sequential Task>.
  4. The main Sequential Task is not executed by the standard AeXSWDAgent.dll (Altiris Agent built-in Software Delivery Agent), but is managed by the AeXTaskSynchAgent.dll (Task Synchronization subagent). The Task Synch Agent passes the Tasks to the core AeXSWDAgent.dll for execution.
  5. The Task Synch Agent keeps track of where in the Sequential execution list the client is at. This information is stored in the synchronization.xml file located at C:\Program Files\Altiris\Altiris Agent\Task Synchronization\. This file is loaded into memory by the Task Synch Agent, and changes are made at the memory level.
  6. At all status points the synchronization.xml file is written back to the hard disk (ie: Agent shutdown, end of Task within a sequence, after successful completion, etc).
  7. In the Agent UI you cannot access the Sequential Task, but only the individual Tasks within the Sequence, as shown:
  8. Note the 'Application Tasks' section. This is the hidden Task created by the Sequential Task when create and saved. In other words there is no way to kick off a Sequential Task manually.

Other Considerations

The following items are for considerations when using Sequential Tasks.

  • The longer the list of applications being installed, the greater chance for errors and failure, and the harder it is to test properly. Different OS, applications installed, and hardware configurations already natural add complexity to any base Software Delivery Task, but the complexity level deepens the more items are added to the Task sequence.
  • Known Issue: Task looping amidst a reboot > The following KB details an issue where a reboot would set back the execution to a previous item already executed, which in turn would kick off the same reboot, causing a potentially unending loop of reboots and executions: https://kb.altiris.com/article.asp?article=28777&p=1. Software Delivery Solution 6.1 SP3 has this fix included, but if you are using a previous version to SP3 either apply the hotfix or upgrade to SP3.

Conclusion

If Sequential Tasks do not meet your needs, consider using the Software Delivery for Task Server Plug-in, which will be covered in another article. However Sequential Tasks are policy based and provide functionality that Task Server does not. As such the use case should be considered when deciding what mechanism would best work.

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Comments

Dec 02, 2007 05:19 AM

Sequential oOftware Delivery Tasks are good, but Feedback Article 26118 exactly describes an issue I am facing.
I need to use sequential delivery tasks but not being able to create a task that runs on a schedule until sucessful is a real problem. It either runs once on notification or it runs on a schedule forever.
I would like the job to run on a schedule until sucessful, like is possible with a (non sequential) Software Delivery Task.
Is there a an update that now resolves this or is there a workaround?
Can I add another task to my sequential delivery that is dependant on all prior tasks that will unschedule the task when complete?
Regards

Aug 30, 2007 04:09 AM

Hi Joel,
Once again I am here and please feel free to say me "leave me alone" :D but i have another question for you.
I would like to make automatically some checks in my configured sites at the Altiris deployment console like:
- Check if the group of computers is configured in Altiris deployment console
- Check if the ip is correct by DHCP
- if the colletion was created in global server and replicated
- if the packages are synchronized
- run altiris agent test package
- check if carbon copy is already installed, if not, install it.
Basically this tasks i should run automatically to go ahead with a successful deployment, so I think that this status should be kept in some files or databases on the server side. Please would you know what way can i follow to find where to launch the query for getting the proper results? ... Let me know if this is a bit confuse so I can explain it more clear.
Thanks in advance, you are being a very good help in my project :D
Jonathan D.

Aug 22, 2007 02:33 PM

Most installers have a command-line argument that suppresses a reboot. The one I can think of off the top of my head is:
REBOOT=REALLYSUPPRESS
Add this to your command line where you are passing the MSI command line switches across.
Once you've updated that, next use the 'After Execution' action of 'Reboot' (found under the Programs Tab of the individual packages).
You'll need to update the Package/Program first, then update the Sequential Task by removing and adding back the Package/Program (so no latency causes reboot issues).
Hope this helps!
Joel Smith
Altiris Support
Principle Support Engineer

Aug 20, 2007 11:09 AM

Question for all,
What would you do if you had to install a program with an InstallShield and it reboots the machine in a sequential task ?
It makes the task fail, it doesn't get into a loop or something but it fails the other tasks if they are dependent on that one and if are not depending is not worth to continue cause main installation is wrong so ... at this point I would like to ask to all ... What would you do ? Just suggestions will be definetly great accepted. Thanks so much to all.
Jonathan D.

Aug 15, 2007 02:52 PM

For technical issues please use one of the Support resources available. These sources include:

  • http://forums.altiris.com - The Altiris Forums will allow users and moderators to review and answer questions about issues or general items.

  • https://kb.altiris.com - The Knowledgebase contains many issues and their resolutions and is a good source for technical help.

  • http://www.altiris.com/Support/Offerings.aspx - For direct assistance with an Altiris Support Engineer you can use an existing Support Agreement. See this link for information on what support offerings are available.


The standard number to speak with an Altiris Support Representative (provided a Support Agreement is secured) is 801.226.8500 Option 2.
For a support number outside of the US regions please see the corresponding www.altiris.com site for details.
Thanks,
Joel Smith
Altiris Support
Principle Support Engineer

Aug 15, 2007 07:38 AM

Hi Joel,
I tried to make some tests with some tasks and at the end of the proccess the status tab says that the sequential task has finished 'success'. If I make and advanced resume of the tasks involved in the sequential task all of them say that are 'success' also but changes are not reflected in the target machine (copying a file in a specific path for example even depending on other tasks). At this point I am thinking that I am losing something, could be the version of the altiris console?. I am working with Version No: 6.0.6074 (SP 3). Is there something wrong on that? Do I need to install anything in the target machine? Sorry for all this questions but I am a bit lost in space i think. I appreciate your help.
Thanks and Best Regards,
Jonathan.

Aug 14, 2007 10:54 AM

H Joel,
Thanks so much for the documentation, there are some new tips that will be good for understand it propertly since in two weeks I will have to take it to production. I hope that works good :D
Will let you know the progress.
Thanks again and Best Regards.
Jonathan
Senior Analyst Programmer

Aug 13, 2007 02:51 PM

Jonathan,
The best place for best practices information, including on Sequential Task, is the following knowledgebase article in the Altiris KB:
https://kb.altiris.com/article.asp?article=28955&p=1
Read the section under Sequential Software Delivery for specific details. While there are not specific samples here, there are recommendations that should assist in how the Task should be setup, etc...
Regards,
Joel Smith
Altiris Support
Principle Support Engineer

Aug 13, 2007 05:20 AM

Hi Joel,
I am seeing that you are kind of expert in this field and I will have to make any kind of documentation about sequential task in Altiris deployment console and my question is:
Is there any kind of extended documentation with samples about what can be make and what can not be make?
Thanks in advance and Best Regards,
Jonathan D.

Jul 05, 2007 10:46 AM

You can change the time the reboot countdown takes. It's found under the following location:

  1. Browse in the Altiris Console under Configuration (if 6.5 View > Configuration) > Altiris Agent > Altiris Agent Configuration > Selecdt the policy that matches the category for the target systems (usually All Desktop Computers (excluding package servers).

  2. Click the 'Interaction' tab.

  3. The option is titled 'Software delivery task notification prior to running... > Notify in advance: *_*

  4. The dropdown has predefined values up to 60 minutes.


NOTE! Despite the grammar being used here this is the option for the reboot countdown. Also note that this also controls the countdown for the warning window when a task is about to execute.
Joel Smith
Altiris Support
Principle Support Engineer

Jul 03, 2007 02:23 PM

Sequential Tasks in Software Delivery are nice until you get to the reboot option. While it is nice that you can defer the reboot via task options, the actual dialog box that allows a user to reboot only appears for 60 seconds and I cannot see any place to configure that! So if the user walks away from his PC for longer than 1 minute when the task runs which is set to reboot, they have no opportunity to reboot, so they are hosed if they had any open documents or programs. That, to me, makes me want to set the reboot in the execution and not the task itself.

Jun 27, 2007 02:05 PM

Thanks for the comment. Sequential Tasks are great for creating bundles of software for deployment, and as long as you're aware of how editing the Task recreates the Guids, they can be adjusted and added to as new requirements or upgraded versions are added.
Regards,
Joel Smith
Altiris Support
Principle Support Engineer

Jun 26, 2007 01:26 PM

Sequential Software Delivery works great for products that have many patches.
I have a product in my environment called Qfiniti and it is 4 core products and each has about 4 patches. This was how we did the install.
Worked Great.
The company has since put out more patches. I went back in and added the new patches and it was a snap.
Thanks - Tom Fronza

Related Entries and Links

No Related Resource entered.