This article is for programmers and administrators who have used Tivoli Provisioning Manager, but are new to open source sandboxes. It will show how the bundle of software that makes up an open source sandbox—as well as the tools used to build and test an application in an open source sandbox—can be deployed quickly to an environment using Tivoli Provisioning Manager. By completing this article, you will learn about the following:
- Open source
- Open source sandboxes
- How to build an open source sandbox
- How to deploy an open source sandbox
Part 2 of this series will show how Tivoli Provisioning Manager reports can be used to track sandbox deployments.
The following tools are needed to follow along with this article:
- Java™ Single Sign-On
- Alfresco
- Ruby on Rails
- Nulldb
- Amanda
- MySQL
- Trial version of Windows® XP
- Trial version of Windows 2003
- Trial version of IBM Tivoli Provisioning Manager
See the Resources section at the end of this article for links to download these technologies.
Just what is open source software? The source code in open source software is available to the general public for use and or modification either free of charge or for a very modest annual fee. Open source software is generally developed collaboratively and shared with a community. The source code in closed source (also called proprietary) software is not available to the public. Table 1 shows the differences between open source and closed source content management software.
Table 1. Differences between open source and closed source CMS
| Software type | Provider | Product | Cost | Famous client |
|---|---|---|---|---|
| Closed source | Microsoft | Sharepoint | Market | Department of Defense |
| Open source | Alfresco | Alfresco | Modest annual fee | Toyota |
| Open source | Drupal | Drupal | Free | White House |
A sandbox is a protected, limited environment where applications, especially those from new vendors or that were downloaded from the Internet for the first time, are allowed to "play" without risking damage to a company's other systems. How and what sandboxes are used for can vary widely between companies. At some companies, only a handful of DBAs and system administrators ever touch a sandbox, and when they do it's only to test software patches or new hardware. At other companies, many of the end users from non-IT departments also make use of the sandbox not only to test patches and hardware, but also to carry out proof of concept on new applications. A sandbox environment generally has at least the following two elements:
- Secure environment
- Sandbox user access and authentication need to be controlled, especially if sensitive or confidential data is going to be available in the sandbox. In addition, your company's servers and mission-critical applications need to be protected from the testing that takes place within the sandbox.
- Limited portion of production environment
- Most companies usually do not have the resources to copy entire production environments into their sandboxes. So it is critical for the sandbox users to decide which portion of the production environment is needed and which portion is not needed in the sandbox. For example, if the sandbox is going to be used for a proof of concept of a manufacturing software package, there would probably be no reason to include payroll and human resource data in the sandbox.
But many companies have found the next two elements significantly increase the usefulness of their sandboxes:
- Collaboration among sandbox users
- Do multiple departments share the same sandbox, but do not always share what they are doing in the sandbox? Content management systems (CMS) offer a way to get all of the sandbox users on the same page. A CMS allows users to collaborate by storing important information, such as database refresh dates and the emails of all sandbox users, in a centralized document repository. Some CMS software packages allow for the creation of virtual teams and automatically notify users of any new or changing information of interest.
- Backup of important data
- Have any of your sandbox users ever been surprised by an unexpected database refresh before they finished their testing? Did they lose valuable test data that needed to be re-input? Most companies are adept at backing up their production environments, but less time and effort is put into backing up sandboxes. Companies often do not have the resources to do full backups of sandboxes and especially not on an incremental basis that captures all changes. A practical alternative is to do partial backups on a periodic basis that save off important data that was agreed up on by the sandbox users.
There are three types of sandboxes for companies to choose from:
- A traditional sandbox completely built from closed source software. These are the most expensive to build and maintain. If your company is committed to commercial software, this option is probably the way to go. But you will have to pay more.
- An open source sandbox built with a mixture of closed source and open source software. The cost for these is middle of the road. For companies just getting their hands wet with open source software, this approach makes a lot of sense. Open source software has come a long way. Large multi-national companies, such as Toyota, are now using open source software, such as Alfresco, in their sandboxes. So can your company.
- An open source sandbox completely built from open source software. These are the most affordable. They are also the most flexible. Changing from one set of open source software to another set of open source software does not incur the financial penalties of changing from one set of commercial software to another set of commercial software.
Table 2 shows examples of three common sandbox setups:
Table 2. Three command sandbox setups
| Element | Traditional sandbox | Open source sandbox (some close source, some open software) | Open source sandbox (all open source software) |
|---|---|---|---|
| Security | Active Directory | Josso | Josso |
| Collaboration | Sharepoint | Alfresco | Alfresco |
| Backup | Veritas | Amanda | Amanda |
| Database | SQL Server | MySQL | MySQL |
| File System | Windows7 | Windows | Linux® |
Now that we have reviewed some of the basics about sandboxes, we are ready to build our own open source sandbox that will use some closed source and some open source software.
Now we are ready to build an open source sandbox that will be called Sandbox1 and has two parts: sandbox client/server and sandbox distribution set.
The sandbox client/server consists of the following elements:
- Tivoli Provisioning Manager server that is called vm5winxp and runs Windows XP
- First Tivoli Provisioning Manager client/agent that is called vm2win2003 and runs Windows 2003
- Second Tivoli Provisioning Manager client/agent that is called vm3win2003 and runs Windows 2003
The sandbox distribution set consists of the following elements:
- Josso for security
- Alfresco for collaboration
- Amanda for backup
- MySQL for the database
- Ruby on Rails as the tool to build an application
Let's get started:
- Download a trial version of Windows XP for the Tivoli Provisioning Manager Server operating system. Windows XP works well with the Tivoli Provisioning Manager server.
- Download trial version of Windows 2003 for the Tivoli Provisioning Manager Client/Agent operating system. Windows 2003 works well with the Tivoli Provisioning Manager client/agent and all of the open source software that is in our distribution set.
- Create a secure environment with Josso. Josso is a Java-based platform-neutral user
authentication and authorization tool. In the Get Products and Trials Section there is a Josso download link. After you install it you should get a home page like that shown in Figure 1.
Figure 1. Josso home page
- Help the sandbox users collaborate with Alfresco. Alfresco is the most popular open source enterprise content management system. We installed the document management, web content management, and collaboration components.
- Backup important data using Amanda. Amanda is the most popular open source backup and recovery system.
- Download Ruby on Rails. Ruby on Rails is a popular open source web framework.
- Download MySQL for the database. MySQL is the most popular open source database. Figure 2 shows the MySQL Workbench from Sandbox1.
Figure 2. MySQL workbench
- Install Tivoli Provisioning Manager. Tivoli Provisioning Manager is an industry leading provisioning tool. We will use it to deploy the sandbox. Figure 3 shows the Tivoli Provisioning Manager home page from our sandbox.
Figure 3. Tivoli Provisioning Manager home page
Our open source sandbox is now complete and we are ready to move it. Next, you'll see how Tivoli Provisioning Manager can be used to deploy our sandbox.
Deploy your open source sandbox with Tivoli Provisioning Manager
The open software that makes up our sandbox has been installed and now needs to be deployed. Let's go through each of the eight steps used to deploy our open source sandbox, Sandbox1:
- Determine how Sandbox1 will be organized
- Log on as admin
- Register machines
- Create new package
- Create new bundle
- Create new export
- Create new distribution
- Create new schedule
Let's look at each step in more depth:
Determine how Sandbox1 will be organized
There are three suggested ways for organizing software distributions: by operating system, by application, or by any other characteristic. We chose to organize by OS and then within the OS by application.
The Tivoli Provisioning Manager client/agent is installed on two Windows 2003 servers. The Tivoli Provisioning Manager server is installed on a Windows XP server (see Figure 4).
Figure 4. Organization of Sandbox1 with applications beneath the OS
After you have installed Tivoli Provisioning Manager, you will want to log on with full rights, using the default administrative user ID and Password: admin/password.
Under the initial set up, no machines are in the machines registered list on the Tivoli Provisioning Manager server. After the two clients vm2win2003 and vm3win2003 are installed, the two machines will be checked into the Tivoli Provisioning Manager server vm5winxp. See Figure 5 for the Machine Management screen.
Figure 5. Machine Management screen
A package defines what is to be pushed to the target machine. In our case, the package is the software that makes up the open source sandbox. The next step is to create a package called Sandbox Package. Go to the Package Management Screen. There are several tabs to fill out. Enter the following general package information on the General tab (see Figure 6):
- Name: Sandbox Package
- Version: 1.0
- Details: Sandbox Package 1.0
- Icon Path: Packages/2003/Sandbox1/download-server.ico
- Max Install Time(Min): 0
- Do not select the Package Reboot checkbox
- Do not select the Client Reboot checkbox
- Do not select the Mandatory checkbox
- Select the Silent checkbox
- Do not select the Enable Deferral Options
Figure 6. General tab of Package Management screen
Then click the Install tab (see Figure 7) and enter the following information that tells the package how to install the open source software on the target machine:
- Select Directory Download as the Package Type
- Do not select the Secure checkbox
- Installation Directory: /tpmx/packages/2003/sandbox1
- Enter nothing for Installation Command
- Do not select Include MST/ISS File checkbox
- Do not select Remove Directory After Install checkbox
- Do not select Enable Process Tracking checkbox
- Enter nothing for Windows RegKey
- Enter nothing for Stamp File
- Select Package for Stamp Mode
- Stamp File Date: 0
- Do not select Require Purchase Order
- Enter nothing for Part Number
Figure 7. Install tab of Package Management screen
Then click the Target tab (see Figure 8) and enter the following information that provides more details about the target machine:
- Temp. Space Required(MB): 0
- Target Space Required (MB): 0
- Target Directory: C:\Sandbox\
- Enter nothing for Prerequired Program
- Enter nothing for Preinstall Program
- Enter nothing for Postinstall Program
- Do not select Enable Network Speed Detection
- Network Speed Allowed: 28.8 Kbps (Modem)
Figure 8. Target tab of Machine Management screen
Then click the Platform tab (see Figure 9) and enter the following information:
- Select Windows 2003 for Target Platforms
Figure 9. Platform tab of Machine Management screen
The last step is to fill out the Upload tab. The sandbox package is now created (see Figure 10).
Figure 10. New sandbox package
A bundle defines the criteria by which machines get packages. Now we are going to create a bundle called Sandbox1 Bundle. The first thing is to create stamp file called readme.txt and move it to c:\Sandbox1\readme.txt. Go to the Bundle Management screen (see Figure 11) and enter the following information on the Bundle tab:
- Name: Sandbox1 Bundle
- Description: Sandbox1 Bundle
- Stamp File: c:\Sandbox1\readme.txt
- Do not select the Selectable checkbox
- Select Windows 2003 for the Supported OS
Figure 11 - Bundle tab of Bundle Management screen
Then click the Packages tab (see Figure 12) and enter the following information:
- Do not select Agent for Software Distribution checkbox
- Select Sandbox Package checkbox
Figure 12. Package tab of Bundle Management screen
The Search tab can be ignored. Sandbox Bundle 1 is now complete (see Figure 13).
Figure 13. Sandbox1 Bundle is complete
The export says these packages and bundles are available to be downloaded via the client. Now we are going to create an export called Sandbox1 Export. Go to the Export Management screen and enter the following information on the Export tab (see Figure 14):
- Name: Sandbox1 Export
- Description: Sandbox1 Export
Figure 14. Export tab of Export Management screen
Then click the Packages tab (see Figure 15) and enter the following information:
- Do not select Agent for Software Distribution checkbox
- Select Sandbox Package checkbox
Figure 15. Packages tab of Export Management screen
Then click the Bundles tab (see Figure 16) and enter the following, which provides more information about the bundles in the export:
- Select Sandbox Bundle checkbox
Figure 16. Bundles tab of Export Management screen
The Search tab can be ignored, because we did not search for packages or bundles in our export. The Export is now complete.
A distribution, or distro for short, provides rules by which certain machines will get packages. The rules can be static or dynamic. Now we are going to create a distribution called Sandbox1 Distro. Go to the Distribution Management screen and enter the following information on the General tab (see Figure 17):
- Name: Sandbox1 Distro
- Description: Sandbox1 Distribution
Figure 17. General tab of Distribution Management screen
Then click the Selectable Targets tab (see Figure 18) and enter the following information:
- Select vm2win2003 checkbox.
- Select vm3win2003 checkbox.
- Do not select vm5winxo checkbox.
Figure 18. Selectable Targets tab of Distribution Management screen
The Selectable Search, Dynamic Targets, and Invalid Targets tabs can be ignored. The distribution is finished (see Figure 19).
Figure 19. Sandbox1 Distro is complete
There are two ways to distribute software to the target—push from the server to the client or pull from the client. Our schedule will push the Sandbox1 Bundle from the server to the client every night between 8 pm. and 10 pm. Go to the Schedule Management screen and enter the following information on the General tab about the schedule (see Figure 20).
- Name: Sandbox1 Scheduled Refresh
- Description: Sandbox1 Refresh
- Select the Enable checkbox
- Distribution Name: Sandbox1 Distro
- Do not select the Enable Deferral Option checkbox
- Daily Start Time: 20 00
- Daily End Time: 23 00
- Start Date: 2010-11-07
- End Date: 2010-11-14
Figure 20. General tab of Schedule Management screen
Then click the Package Tab and enter the following information:
- Check Query Bundles
- radio button
- Package/Bundle Name
- Sandbox1 Bundle
Figure 21 shows the Package Tab of Schedule Management Screen.
Figure 21. Package Tab of Schedule Management screen
The schedule is added (see Figure 22).
Figure 22. Sandbox1 Scheduled Refresh is complete
All eight of the deployment steps are now complete. Sandbox1 is deployed.
You've built and deployed an open source sandbox. Your important business partners now have a safe environment where they can quickly and affordably run pilot tests to evaluate new applications and web services. Their important data is periodically backed up, and they are able to collaborate easily. In today's market, the ability to select new applications in a timely and cost-effective manner can give your company an advantage on your competition. It can also make your sandbox more popular with your internal customers.
Part 2 of this series will show how Tivoli Provisioning Manager reports can be used to track sandbox deployments.
Learn
-
What is Open Source: Open source software is an attractive option for companies wishing to maximize their IT dollars. To find out more about open source software read this article from ONLamp.com.
-
Read sandbox (software development from Wikipedia for more information about how sandboxes are used in application and Web services testing.
-
Find out more about commercial and open source content management systems from Wikipedia.
-
Alfresco: Learn about the open source content management software Alfresco.
-
Josso: Learn more about the open source Java Single Sign software.
-
amanda: Learn more about the open source backup and recovery software.
-
Ruby on Rails is becoming a very popular web application framework. To learn more about the basics try these screencasts or take a look at these tutorials.
-
Learn more about the Ruby on Rails plug-in nulldb that allows you to simulate a database while testing Ruby on Rails applications.
-
MySQL is the most populate open source database. For more information try these podcasts and tutorials.
-
For more information about Tivoli Provisioning Manager try the Global Tivoli User Community video gallery.
-
Open source: Visit the developerWorks Open source zone for extensive how-to information, tools, and project updates to help you develop with open source technologies, and use them with IBM products.
-
developerWorks technical events and webcasts: Stay current with developerWorks technical events and webcasts.
-
Podcasts: Tune in and catch up with IBM technical experts.
Get products and technologies
-
Try the Alfresco CMS.
-
Download the open source Java Single Sign software Josso.
-
Download Ruby on Rails.
-
Download Amanda
-
Download MySQL.
-
Download a trial version of Windows XP.
-
Download a trial version of Windows 2003.
-
Download a trial version of IBM Tivoli Provisioning Manager.
Discuss





