Unsupported content This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Creating a system package in BMC Server Automation


In order to perform an unattended installation of an operating system, you must create a system package in BMC Server Automation for each server configuration you want to install.

Overview of system packages

A system package not only contains all the instructions needed to install an operating system over the network, it can also run jobs that install software and configure a machine for a particular purpose. Consequently, you may want to create a different system package for each type of server you want to provision rather than just creating one system package for each type of operating system you want to install. For example, you might want to create a system package for a web server running Microsoft Windows 2008 and IIS. You could create another system package for a database server running Linux 8.0 and Oracle.

A system package type uses installation files for a specific operating system. Consequently, system packages for the various types of Windows, Linux, ESX, Solaris, AIX, and HP-UX operating systems are not interchangeable. Create separate system packages for servers running different operating systems.

Tip

When you define a system package, you must provide many categories of information. If you are creating multiple system packages with similar settings, you may want to create one system package and copy and paste that package to create another system package, adjusting settings as necessary.

Before you begin

To enable a successful publish of system packages for BMC Cloud Lifecycle Management, you must store them in the CSM_OS_Packages subfolder of the Depot folder in the navigation tree of the BMC Server Automation Console (Depot > CSM_OS_Packages):

depot_csmpackage.png

To create a system package

  1. In the Depot folder, right-click the folder where you want to add a new system package. From the pop-up menu, choose New > System package.
  2. Provide information for the new system package, as described in the following sections:
  3. Click Finish.
     The system package is created and opens in the content editor.
  4. Define the system package.
    • To define a system package for any type of supported Windows operating system, see Defining settings for Windows servers.
    • To define a system package for the Citrix XenServer operating system, see Defining-settings-for-Citrix-XenServers.

      Note

      When defining a system package, note the presence of the Select Property icon next to various input fields. Whenever you see this icon next to an input field, it indicates that you can insert a parameter that refers to a local property to supply the value for the field.

  5. When entering or modifying parameters for the system packages, keep in mind these guidelines for BMC Cloud Lifecycle Management (Windows or Linux operating system):
    • Under the Basic Config tab, enter ??NAME?? in the Computer name field. When the system package is selected at provisioning time, BMC Cloud Lifecycle Management supplies the hostname of the server to be provisioned or the IP address (if configured to do so).
    • In the Local Properties tab, specify the name of the PXE datastore instance for the DATASTORE variable. Use the same format convention: CSM Datastore - name of pod.
  6. When you finish defining the system package, select File > Save.

System Package Creation – General

The General panel lets you provide information that identifies the system package type.
Field Definitions

Field

Description

Name

Enter an identifying name for the system package.

Description

(optional) Enter descriptive text for the system package.

Member of

Displays the folder/group to which this system package belongs.

System Package Type

The type of system package being created. Select a type.

System Package Creation – Properties

The Properties panel provides a list of properties automatically assigned to an object. In this list you can modify the value of any properties that are defined as editable.

Modifying a property value

For any property that has a check in the Editable column, select the property and click in the Value column.

  • To set a property value back to its default value, click Reset to Default Value.
     The value of the property is reset to the value it inherits from a built-in property class. The Value Source column shows the property class from which the value is inherited.
  • Depending on the type of property you are editing, you can take different actions to set a new value, such as entering an alphanumeric string, choosing from an enumerated list, or selecting a date.
     To insert a parameter into the value, enter the value, bracketed with double question mark delimiters (for example, ??MYPARAMETER??) or click Select Property.

System Package Permissions

The Permissions panel is an access control list (ACL) granting roles access this system package.
 ACLs control access to all objects, including the sharing of objects between roles.
 Using the Permissions panel, you can add individual permissions to the system package. You can also set permissions by adding ACL templates.

Adding an authorization

An authorization grants permission to a role to perform a certain type of action on this object.
 To add an authorization to this object, click Add Entry in the Access Control List area. Then use the Add New Entry dialog to specify the role and authorization you want to add.

Adding an ACL template

An ACL template is a group of predefined authorizations granted to roles. Using an ACL template, you can add a group of authorizations to this object.

To add an ACL template to this job, click Use ACL Template in the Access Control List area. Then use the Select ACL Template dialog to specify an ACL template that you want to add to this object.

If you want the contents of the selected ACL templates to replace all entries in the access control list, check Replace ACL with selected templates. If you do not check this option, the contents of the selected ACL templates are appended to any existing entries in the access control list.

Special considerations for Linux system packages and Windows 2008 system packages

Review the following considerations For Linux system packagesand For Windows 2008 system packages.

For Linux system packages

BMC Cloud Lifecycle Management cannot use Linux system packages with customized kickstart entries, which are defined under the Kickstart Entries tab. Instead, you can use the 'Additional entries for the kickstart file' section of the Kickstart Entries tab to append new entries for the system package.

When provisioning multiple network interface cards/addresses on Linux systems, add local properties to the system package using the following formats.

Note

Exclude the first address on the first network interface card. The first network interface card is assumed to be used for network booting.

Address

Format

Primary address on a network interface card,
where <x> is the NIC number, beginning with 0

ETH<x>_MAC_ADDRESS
ETH<x>_MAC_ADDRESS_CD
ETH<x>_BOOTPROTO
ETH<x>_IPADDR
ETH<x>_NETMASK
ETH<x>_GATEWAY

For supplemental IP addresses on a network interface card,
where <y> is the IP address, beginning with 1

ETH<x>_<Y>_IPADDR
ETH<x>_<Y>_NETMASK
ETH<x>_<Y>_GATEWAY

The following example is for kickstart purposes and is added to the Additional entries for the kickstart file section. It assumes that you are provisioning for a Linux system package with more than one network interface and that the first network interface card has just one address and does not need to be covered. It also assumes that the second network interface card has two addresses on it.

echo "DEVICE=eth1" > /etc/sysconfig/network-scripts/ifcfg-eth1
echo "HWADDR=??ETH1_MAC_ADDRESS_CD??" >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo "BOOTPROTO=??ETH1_BOOTPROTO??" >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo "IPADDR=??ETH1_IPADDR??" >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo "NETMASK=??ETH1_NETMASK??" >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo "GATEWAY=??ETH1_GATEWAY??" >> /etc/sysconfig/network-scripts/ifcfg-eth1

echo "DEVICE=eth1:0" > /etc/sysconfig/network-scripts/ifcfg-eth1:0
echo "HWADDR=??ETH1_1_MAC_ADDRESS??" >> /etc/sysconfig/network-scripts/ifcfg-eth1:0
echo "BOOTPROTO=??ETH1_BOOTPROTO??" >> /etc/sysconfig/network-scripts/ifcfg-eth1:0
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth1:0
echo "IPADDR=??ETH1_1_IPADDR??" >> /etc/sysconfig/network-scripts/ifcfg-eth1:0
echo "NETMASK=??ETH1_1_NETMASK??" >> /etc/sysconfig/network-scripts/ifcfg-eth1:0
echo "GATEWAY=??ETH1_1_GATEWAY??" >> /etc/sysconfig/network-scripts/ifcfg-eth1:0

For Windows 2008 system packages

BMC Cloud Lifecycle Management cannot use Windows system packages with customized unattended entries, which are defined under the Unattended Entries tab. Instead, you can use the 'Additional Unattend Entries' section of the Unattended Entries to replace existing or add new entries for the system package.

Follow these steps to add the XML entries to the system package:

  1. Under Additional Unattend Entries, click the Plus sign.
  2. In the top-left panel, expand the Specialize listing, and select the Microsoft-Windows-TCPIP node.
  3. Display the node by specifying a static IP address (which the system ignores).
  4. In the Add/Replace XML Component section, paste the following XML code:

    <component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" language="neutral" name="Microsoft-Windows-TCPIP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS">WINDOWS_UNATTEND </component>

After you create the system package

After you create a system package, add a Network Shell (NSH) script called "CSM_Delayed_Reboot" to the Depot subfolder CSM_Scripts.

The script should look similar to the following example:

Type 1 (Execute the script separately against each target host.)

Script:
{{sleep 60))
((nexec $1 reboot}}

Parameter: hostname, default value TARGET.NAME

Where to go from here

Creating-a-BMC-Server-Automation-Deploy-Job-or-an-application-component-template

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*