Download IBM Cloud Manager Download Trial Quick Start Guide

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Parallel port wikipedia , lookup

Airborne Networking wikipedia , lookup

Distributed firewall wikipedia , lookup

Industry Standard Architecture wikipedia , lookup

Lag wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Zero-configuration networking wikipedia , lookup

History of CP/CMS wikipedia , lookup

Transcript
IBM Cloud Manager
with OpenStack 4.1
Download Trial
Quick Start Guide
Cloud Solutions Team:
Cloud Solutions Beta – [email protected]
Introduction ..............................................................................................................................................................................3
Requirements ...........................................................................................................................................................................3
Phase 1: Install the Chef Deployment Server ...............................................................................................................4
Install in Silent Mode: .......................................................................................................................................................4
Phase 2: Deploy OpenStack ................................................................................................................................................6
OpenStack Network Configuration .............................................................................................................................7
Enable OpenStack Heat Security:.................................................................................................................................7
Enable OpenStack Heat SoftwareConfig: ..................................................................................................................8
Configure and test OpenStack: ..........................................................................................................................................8
Appendix A ................................................................................................................................................................................9
Sample env.json file: .........................................................................................................................................................9
Sample topo.json file: .................................................................................................................................................... 15
Appendix B ............................................................................................................................................................................. 16
Introduction
IBM Cloud Manager with OpenStack is a robust Infrastructure as a Service software offering that simplifies
management of your virtualized environment. It helps you convert virtualized environments to a cloud quickly and
easily.
IBM Cloud Manager with OpenStack v4.1 feature highlights:
 Support for the latest OpenStack community release (Icehouse)
 Full access to the OpenStack APIs across all core projects
 Chef deployment for rapid installation and configuration
The goal of this document is to provide a simple, example installation of IBM Cloud Manager with OpenStack on a
deployment server. Using this deployment server, the user can provision OpenStack on two nodes: The single
controller node (Node1) and the compute node (Node2). With these quick-start instructions and sample json files
provided in the Appendix, users are able to set up a simple, managed OpenStack environment for evaluation.
Cloud Manager with OpenStack setup consists of two phases:
 Phase 1: Install the Chef deployment server
 Phase 2: Deploy OpenStack
Requirements



A physical or virtual system to run the deployment server
o IBM Cloud Manager with OpenStack base installation image: Cloud_Manager_4_1_Linux_x86.tar.gz
o IBM Cloud Manager with OpenStack fixpack: cmwo_fixpack_4.1.0.1.tar.gz
o A network connection on the management network
OpenStack systems
o Minimal deployment: One RHEL 6.5 64-bit x86
o Controller + compute deployment: Two RHEL 6.5 64-bit x86
o Each system must have two network adapters. One for the data network and one for the management
network
o Fully qualified domain name (FQDN name.domain format required)
o Must all have the same password
o A properly configured RHEL yum repository
o See Appendix B for detailed system requirements.
The deployment server and OpenStack systems must be able to resolve all hostnames in the environment
o To get the hostname of each system run:
> hostname -f
Take the results from the hostname –f command and ensure that every system in the environment is able
to ping that hostname.
o A properly configured DNS server is the ideal solution for hostname resolution.
o If a DNS server is not available, then a properly configured /etc/hosts is an alternative. The following
example shows an /etc/hosts configuration to use on all systems in the environment:
127.0.0.1
localhost.localdomain
localhost
192.168.2.2 delpoyment-server.ibm.com
deployment-server
192.168.2.3 openstack-controller.ibm.com openstack-controller
192.168.2.4 openstack-compute.ibm.com
openstack-compute
Reserve IP addresses for virtual instances (See network config for details)
o

Phase 1: Install the Chef Deployment Server
Running the IBM Cloud Manager with OpenStack installation process
sets up the system as the deployment server. The installation process
completes the following tasks:




Installs and configures the chef-server
Creates a yum repository on the local server with the IBM
OpenStack files
Uploads the OpenStack cookbooks, roles, data bags and
sample environments to the chef-server
Installs an IBM extension to the Chef knife command that
enables IBM OpenStack topology deployments
IBM Cloud Manager with OpenStack can be installed on Linux using a console, a graphical user interface, or a silent
installation. For more information, see the IBM Cloud Manager with OpenStack collection in IBM Knowledge Center.
The IBM Cloud Manager with OpenStack trial edition can be found at:
http://www.ibm.com/developerworks/servicemanagement/cvm/sce/downloads.html
IBM Cloud Manager with OpenStack FixPacks are available for download at:
http://www-933.ibm.com/support/fixcentral/
Visit this page and enter IBM Cloud Manager with OpenStack as your product to get the latest fixpacks. In this document
we outline the use of FixPack 1 (4.1.0.1) but others may be available at the time of installation.
Once the download is complete, place the packages in a directory with sufficient filesystem space. This is where the
Chef deployment server will be installed. Issue the command below to untar the installer file:
tar xvf Cloud_Manager_4_1_Linux_x86.tar.gz
This download unpacks the following files:
/testcmwo/install/x86-64/linux/cmwo410_xlinux_install_pkg_01.tar.gz
/testcmwo/install/x86-64/linux/cmwo410_xlinux_install_pkg_02.tar.gz
/testcmwo/install/x86-64/linux/cmwo410_xlinux_install_pkg_03.tar.gz
/testcmwo/install/x86-64/linux/cmwo410_xlinux_install.bin
Install in Silent Mode:
1)
Make sure that both the cmwo410_xlinux_install.bin and cmwo410_xlinux_install_pkg_01.tar.gz,
cmwo410_xlinux_install_pkg_02.tar.gz, and cmwo410_xlinux_install_pkg_03.tar.gz files are in the same
directory.
2)
Issue the following commands with root:



3)
chmod +x ./cmwo410_xlinux_install.bin
echo LICENSE_ACCEPTED=true > ./installer.rsp
./cmwo410_xlinux_install.bin –i silent –f ./installer.rsp
You will be guided through a set of console installation screens. At the completion of the installation, you can
view the installation logs in /opt/ibm/cmwo/_installation/Logs/.
4)
To install the fixpack, issue the following commands with root assuming the fixpack file is located in
/testcmwo :



5)
cd /testcmwo
tar xvf cmwo_fixpack_4.1.0.1.tar.gz
./install_cmwo_fixpack.sh
To verify that Chef server is up and running use the following command:

chef-server-ctl status
You should see the following:
>chef-server-ctl status
run: bookshelf: (pid 17198) 201s; run: log: (pid 17197) 201s
run: chef-expander: (pid 17145) 207s; run: log: (pid 17144) 207s
run: chef-server-webui: (pid 17357) 187s; run: log: (pid 17356) 187s
run: chef-solr: (pid 17112) 209s; run: log: (pid 17111) 209s
run: erchef: (pid 17535) 180s; run: log: (pid 17239) 199s
run: nginx: (pid 17518) 181s; run: log: (pid 17517) 181s
run: postgresql: (pid 17015) 220s; run: log: (pid 17014) 220s
run: rabbitmq: (pid 16685) 236s; run: log: (pid 16684) 236s
Phase 2: Deploy OpenStack
In this example, we will set up the following nodes:


1.
One OpenStack controller node
One OpenStack compute node
Log into the deployment server as root and use the following commands to create your deployment directory:
> mkdir your-deployment-name
> chmod 600 your-deployment-name
> cd your-deployment-name
2.
Copy the sample json files in the Appendix A and customize the contents:
env.json
 Replace $MANAGEMENT_INTERFACE with your management network interface
 Replace $DATA_INTERFACE with your data network interface
 Replace $CLOUD_NAME with a unique string to identify the CMWO server instance
 Replace $NODE1_IP_ADDRS with the IP address of Node1 (single controller)
topo.json
 Replace $CLOUD_NAME with the same unique string used in env.json
 Replace $NODE1_HOSTNAME with the FQDN of your first (single controller) node
 Replace $NODE2_HOSTNAME with the FQDN of your second (compute) node
 Replace <root_password> with the common root password of all 3 nodes in this exercise
3.
Add the new environment to Chef and then validate:


4.
Install OpenStack onto Node1 (single controller) and Node2 (compute, optional)

5.
knife environment from file env.json
knife environment list (and check that your unique cluster id has been added)
knife os manage deploy topology topo.json
Once both nodes have finished installing, log into the single controller node via the web interface:
 https://$NODE1_HOSTNAME
 User Name: admin
 Password: admin
OpenStack Network Configuration
1.
Log into Node1 as root
source /root/openrc
2.
Create an OpenStack network. In our example we use basic flat networking which provides a direct bridged
connection for each instance to the data network.
neutron net-create ext-net --provider:network_type=flat -provider:physical_network=default --router:external=True --shared
3.
Create an OpenStack subnet that provides details about the IP addressing to use on our network. The pool start and
end represent a range of addresses that the IBM Cloud Manager with OpenStack administrator must ensure are
unique. These addresses will be assigned to virtual machines that are deployed from IBM Cloud Manager with
OpenStack
neutron subnet-create ext-net --name ext-subnet --gateway <your gateway> -allocation-pool “start=xx.xx.xx.xx,end=xx.xx.xx.yy” <network CIDR>
As an example:
neutron subnet-create ext-net --name ext-subnet --gateway 192.168.2.1 -allocation-pool “start=192.168.2.10,end=192.168.2.100” 192.168.2.0/24
4.
After the neutron network configuration is complete, you can see the new “ext-net” on the OpenStack web interface:
System Panel -> Networks
Enable OpenStack Heat Security:
With IceHouse, OpenStack has moved to a new authentication model that requires more complex configuration of
keystone to support advanced Heat functions. Here is a short bash script that you can use to enable this security in your
deployment. Note that the keystone domain password used below is temp4now. Consider using a more secure
password.
#!/bin/bash
echo "Create Heat Users and Roles"
keystone role-create --name heat_stack_user
wget https://raw.githubusercontent.com/openstack/heat/master/bin/heat-keystone-setupdomain --no-check-certificate
python heat-keystone-setup-domain --stack-domain-admin-password temp4now | grep
stack_ > heat_domain.txt
sed -i "s/#stack_user_domain=<None>/\$(grep user_domain heat_domain.txt)/g"
/etc/heat/heat.conf
sed -i "s/#stack_domain_admin=<None>/\$(grep stack_domain_admin= heat_domain.txt)/g"
/etc/heat/heat.conf
sed -i "s/#stack_domain_admin_password=<None>/\$(grep stack_domain_admin_password=
heat_domain.txt)/g" /etc/heat/heat.conf
service openstack-heat-engine restart
More information about this security change can be seen in these posts:
http://hardysteven.blogspot.co.uk/2014/04/heat-auth-model-updates-part-1-trusts.html
http://hardysteven.blogspot.com/2014/04/heat-auth-model-updates-part-2-stack.html
https://github.com/openstack/heat/blob/master/bin/heat-keystone-setup-domain
Enable OpenStack Heat SoftwareConfig:
If you want to use the Heat SoftwareConfig resource types you will need to update your python-heatclient. Use the small
bash script below to update:
#!/bin/bash
echo "Enable Heat Software Config"
wget http://repos.fedorapeople.org/repos/openstack/openstack-icehouse/epel-6/pythonheatclient-0.2.9-1.el6.noarch.rpm
rpm -Uvh python-heatclient-0.2.9-1.el6.noarch.rpm
service openstack-heat-engine restart
Configure and test OpenStack:
nova keypair-add –pub-key /root/.ssh/id_rsa.pub testkey (only needs to be done once)

Start sample instances
nova boot –-image cirros –-flavor m1.small –-key-name testkey cirros-test
nova boot –-image ubuntu –-flavor m1.small –-key-name testkey ubuntu-test

Set up default security group
nova secgroup-add-rule default TCP 1 65535 0.0.0.0/0
nova secgroup-add-rule default UDP 1 65535 0.0.0.0/0
nova secgroup-add-rule default ICMP -1 -1 0.0.0.0/0
Appendix A
Sample env.json file:
{
"name": "$CLOUD_NAME-env",
"description": "Example environment for the IBM OpenStack single controller + n compute topology",
"cookbook_versions": {
"apache2": "~> 1.9.6",
"apt": "~> 2.3.8",
"aws": "~> 1.0.0",
"build-essential": "~> 1.4.2",
"chef_handler": "~> 1.1.5",
"database": "~> 2.0.0",
"erlang": "~> 1.4.2",
"homebrew": "~> 1.5.4",
"iptables": "~> 0.13.2",
"logrotate": "~> 1.5.0",
"mysql": "~> 4.1.2",
"ntp": "~> 1.5.4",
"openssl": "~> 1.1.0",
"pacman": "~> 1.0.4",
"postgresql": "~> 3.3.4",
"python": "~> 1.4.6",
"rabbitmq": "~> 3.0.4",
"selinux": "~> 0.8.0",
"windows": "~> 1.30.0",
"xfs": "~> 1.1.0",
"yum": "~> 3.1.4",
"yum-epel": "~> 0.3.4",
"yum-erlang_solutions": "~> 0.1.4",
"openstack-block-storage": "~> 9.2.2",
"openstack-common": "~> 9.2.2",
"openstack-compute": "~> 9.2.2",
"openstack-dashboard": "~> 9.0.3",
"openstack-identity": "~> 9.2.0",
"openstack-image": "~> 9.0.3",
"openstack-network": "~> 9.0.8",
"openstack-ops-database": "~> 9.0.1",
"openstack-ops-messaging": "~> 9.0.1",
"openstack-orchestration": "~> 9.1.4",
"openstack-telemetry": "~> 9.1.0",
"db2": "~> 0.2.2",
"ibm-openstack-appliance-migration": "~> 0.1.23",
"ibm-openstack-common": "~> 9.5.4",
"ibm-openstack-iaas-gateway": "~> 0.1.4",
"ibm-openstack-iptables": "~> 9.2.1",
"ibm-openstack-powervc-driver": "~> 9.2.0",
"ibm-openstack-prs": "~> 0.1.5",
"ibm-openstack-roles": "~> 9.0.1",
"ibm-openstack-simple-token": "~> 9.0.0",
"ibm-openstack-yum-server": "~> 9.0.1",
"ibm-openstack-zvm-driver": "~> 0.1.0",
"ibm-sce": "~> 0.1.9",
"qpid": "~> 0.3.0"
},
"json_class": "Chef::Environment",
"chef_type": "environment",
"default_attributes": {
"selinux": {
"state": "nothing"
},
"ibm-openstack": {
"iptables": {
"status": "enabled",
"use_default_rules": true,
"include_ssh_default_rule": true,
"custom_rules": null
},
"zvm-driver": {
"xcat": {
"server": "0.0.0.0",
"username": "",
"zhcp_nodename": "",
"master": "",
"mgt_ip": "0.0.0.0",
"mgt_mask": "255.255.255.0"
},
"diskpool": "",
"diskpool_type": "",
"zvm_host": "",
"host": "",
"user_profile": "",
"scsi_pool": "",
"fcp_list": "",
"zhcp_fcp_list": "",
"external_vswitch_mappings": "",
"config_drive": {
"inject_password": "False"
}
}
},
"openstack": {
"endpoints": {
"network-openvswitch": {
"bind_interface": "$MANAGEMENT_INTERFACE"
},
"compute-vnc-bind": {
"bind_interface": "$MANAGEMENT_INTERFACE"
}
},
"compute": {
"debug": false,
"verbose": true,
"state_path": "/var/lib/nova",
"driver": "libvirt.LibvirtDriver",
"libvirt": {
"virt_type": "kvm"
}
},
"network": {
"verbose": false,
"debug": false,
"openvswitch": {
"bridge_mappings": "default:br-ex",
"bridge_mapping_interface": "br-ex:$DATA_INTERFACE"
}
},
"block-storage": {
"debug": false,
"verbose": true,
"volume": {
"create_volume_group": true,
"volume_group_size": 40,
"iscsi_ip_address": "127.0.0.1"
}
},
"telemetry": {
"debug": false,
"verbose": true
}
}
},
"override_attributes": {
"ntp": {
"servers": [
"0.pool.ntp.org",
"1.pool.ntp.org",
"2.pool.ntp.org",
"3.pool.ntp.org"
]
},
"ibm-openstack-yum-server": {
"yumpriorities_enabled": false
},
"ibm-openstack": {
"password-obfuscate": true,
"prs": {
"ego": {
"master_list": [
"prs.master.node"
]
}
},
"powervc-driver": {
"powervc": {
"admin_user": "root",
"auth_url": "https://powervc_host/powervc/openstack/identity/v3",
"qpid": {
"host": "powervc_host"
}
},
"db_create": false
},
"iaas-gateway": {
"listen_port": 9973,
"logging": {
"enabled": true,
"debug": false
}
},
"app-migration": {
"sce32": "sce32appliance",
"nic": "eth0",
"secret": {
"appliance32_passwords_data_bag": "appliance32_passwords"
}
}
},
"openstack": {
"release": "icehouse",
"region": "RegionOne",
"yum": {
"rdo_enabled": false
},
"developer_mode": true,
"db": {
"service_type": "mysql",
"server_role": "ibm-os-database-server-node"
},
"mq": {
"service_type": "qpid",
"server_role": "ibm-os-messaging-server-node",
"user": "qpidclient",
"image": {
"notification_topic": "notifications"
},
"qpid": {
"protocol": "ssl"
}
},
"endpoints": {
"host": "$NODE1_IP_ADDR",
"bind-host": "$NODE1_IP_ADDR",
"mq": {
"host": "$NODE1_IP_ADDR",
"port": "5671"
}
},
"identity": {
"verbose": false,
"debug": false
},
"image": {
"verbose": false,
"debug": false,
"notification_driver": "messaging",
"filesystem_store_datadir": "/var/lib/glance/images",
"image_upload": true,
"upload_images": [
"cirros",
"ubuntu"
],
"upload_image": {
"ubuntu": "http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64disk1.img",
"cirros": "http://download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img"
}
},
"network": {
"core_plugin": "neutron.plugins.ml2.plugin.Ml2Plugin",
"use_namespaces": false,
"allow_overlapping_ips": true,
"rpc_thread_pool_size": 128,
"rpc_conn_pool_size": 60,
"rpc_response_timeout": 600,
"service_plugins": [
"neutron.services.l3_router.l3_router_plugin.L3RouterPlugin"
],
"dhcp": {
"ovs_use_veth": false
},
"quota": {
"driver": "neutron.db.quota_db.DbQuotaDriver",
"items": "network,subnet,port",
"default": -1,
"network": 10,
"subnet": 10,
"port": 50,
"security_group": 10,
"security_group_rule": 100
},
"ml2": {
"type_drivers": "local,flat,vlan,gre",
"tenant_network_types": "vlan",
"mechanism_drivers": "openvswitch",
"flat_networks": "default",
"network_vlan_ranges": "default:1:4094",
"tunnel_id_ranges": "1:1000"
},
"openvswitch": {
"tenant_network_type": "vlan",
"network_vlan_ranges": "default:1:4094",
"enable_tunneling": "True",
"tunnel_type": "gre",
"tunnel_id_ranges": "1:1000"
}
},
"compute": {
"enabled_apis": "osapi_compute",
"rpc_backend": "nova.openstack.common.rpc.impl_qpid",
"rpc_thread_pool_size": 2048,
"rpc_conn_pool_size": 60,
"rpc_response_timeout": 960,
"vif_plugging_is_fatal": false,
"network": {
"service_type": "neutron",
"plugins": [
"openvswitch"
],
"neutron": {
"service_neutron_metadata_proxy": false,
"libvirt_vif_driver": "nova.virt.libvirt.vif.LibvirtGenericVIFDriver",
"linuxnet_interface_driver": "nova.network.linux_net.LinuxOVSInterfaceDriver",
"dns_server": [
]
}
},
"scheduler": {
"default_filters": [
"RetryFilter",
"AvailabilityZoneFilter",
"RamFilter",
"ComputeFilter",
"ComputeCapabilitiesFilter",
"ImagePropertiesFilter"
]
},
"misc_nova": [
"api_rate_limit=false",
"flat_injected=true",
"use_ipv6=true"
],
"config": {
"force_config_drive": "always",
"notification_drivers": [
"nova.openstack.common.notifier.rpc_notifier"
],
"instance_usage_audit": "True",
"instance_usage_audit_period": "hour",
"notify_on_state_change": "vm_and_task_state",
"allow_resize_to_same_host": true,
"quota_driver": "nova.quota.DbQuotaDriver",
"quota_cores": 200,
"quota_instances": 100,
"quota_ram": 102400,
"quota_floating_ips": 100,
"quota_fixed_ips": -1,
"quota_security_groups": 10,
"quota_security_group_rules": 20,
"quota_metadata_items": 128,
"quota_injected_files": 5,
"quota_injected_file_path_bytes": 255,
"quota_injected_file_content_bytes": 10240,
"quota_key_pairs": 100
}
},
"dashboard": {
"secret_key_path": "/var/lib/openstack-dashboard/.secret_key_store",
"wsgi_socket_prefix": "/var/run/wsgi"
},
"orchestration": {
"debug": false,
"verbose": true
}
},
"ibm-sce": {
"os": {
"user": "sce",
"group": "sce"
},
"config": {
"prop": {
"silent": "1"
}
},
"user": {
"input": {
"authentication": {
"username": "admin",
"name": "Administrator"
}
},
"install": {
"folder": "/opt/ibm"
},
"prop": {
"folder": "/var/opt/ibm"
},
"shortcuts": "/root"
},
"choose": {
"license": {
"type": {
"boolean": "0"
}
}
},
"license": {
"path": ""
},
"service": {
"enabled": false
},
"package": {
"fixpack": {
"file": null
},
"update": {
"jre": {
"file": null
}
}
}
},
"mysql": {
"allow_remote_root": true,
"server_root_password": "openstack1"
}
}
}
Sample topo.json file:
{
"name":"topo-$CLOUD_NAME",
"description":"topo-$CLOUD_NAME",
"environment":"$CLOUD_NAME-env",
"run_sequentially":false,
"nodes": [
{
"fqdn":"$NODE1_HOSTNAME",
"password":"<root_password>",
"quit_on_error":true,
"run_order_number":1,
"runlist": [
"role[ibm-os-allinone-kvm]"
]
},
{
"fqdn":"$NODE2_HOSTNAME",
"password":"<root_password>",
"quit_on_error":true,
"run_order_number":2,
"runlist": [
"role[ibm-os-compute-node-kvm]"
]
}
]
}
Appendix B
IBM Cloud Manager with OpenStack hardware prerequisites:
Component
Minimum hardware requirements



IBM Cloud Manager with
OpenStack deployment server




OpenStack controller
Recommended hardware requirements
0.5 CPUs
Free disk space: 4 GB for /opt/ibm/cmwo
Free disk space: 4.5 GB of temporary space
while installing, 2 GB for the chef server and
running the product.
16 GB physical memory (using 7.8 GB with
system idle)
 2 CPUs
 25 GB free disk space
 16 GB physical memory
 4 CPUs
 16 GB physical memory
 6 GB free disk space for installed code
4 CPUs
16 GB physical memory
6 GB free disk space for installed code and
empty databases
Standalone DB2®
4 GB for DB2 and empty databases
Compute nodes
For specific requirements, see information about
the applicable virtualization environment from the
latest product administrator guide.
and empty databases (4 GB for DB2 and
databases)
4 GB for DB2 and empty databases
Supported IBM Cloud Manager with OpenStack operating systems:
Operating system
Versions
Notes
Red Hat Enterprise Linux
Version 6.4 and 6.5 (64-bit)

With latest fix pack
Supported IBM Cloud Manager with OpenStack databases:
Database
Versions
Notes
DB2® (Installed by default)
10.5

With service pack 3
MySQL
5.1.x

For Red Hat Enterprise Linux versions 6.4 and 6.5 on x86 systems
Supported IBM Cloud Manager with OpenStack web browsers:
Browser
Versions
Notes
Internet Explorer
9.0 or 10.0



With latest fix pack
Minimum resolution of 1024x768 (or greater)
Internet Explorer 9 or 10 compatibility view is not supported
Firefox ESR
18, 24


With latest fix pack
Minimum resolution of 1024x768 (or greater)
Chrome
24, 30

With latest fix pack
Safari
6

With latest fix pack
© Copyright IBM Corporation 2014
IBM Corporation
New Orchard Road
Armonk, NY 10504
Produced in the United States of America
July 2014
IBM, the IBM logo, and ibm.com are trademarks of International Business Machines Corp.,
registered in many jurisdictions worldwide. Other product and service names might be trademarks
of IBM or other companies. A current list of IBM trademarks is available on the web at “Copyright
and trademark information” at ibm.com/legal/copytrade.shtml
This document is current as of the initial date of publication and may be changed by IBM at any
time. Not all offerings are available in every country in which IBM operates.
THE INFORMATION IN THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT ANY WARRANTY,
EXPRESS OR IMPLIED, INCLUDING WITHOUT ANY WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND ANY WARRANTY OR CONDITION OF NON-INFRINGEMENT.
IBM products are warranted according to the terms and conditions of the agreements under which
they are provided.