Customizing for VMware ESXi hosts
Customize the components that are necessary to create a cloud environment with VMware ESXi hosts by using the Chef cookbook method.
Before you begin
- openstack-nova-compute is installed before you install the IBM® local VMware driver.
- All ESXi hosts are under the same data center and not belong to any cluster.
- vMotion is enabled for each ESXi host.
- All ESXi hosts share storage.
About this task
Procedure
- Update the environment file for the controller +
n compute deployment topology (example-ibm-os-single-controller-n-compute).
- Set the following attributes to specify the connection information
for the VMware vCenter
server.
- ibm-openstack.vmware-driver.vcenter_connection.host_ip: Specifies the IP address of the VMware vCenter server.
- ibm-openstack.vmware-driver.vcenter_connection.host_username: Specifies the user name to log in to the VMware vCenter server.
- ibm-openstack.vmware-driver.vcenter_connection.secret_name:
Specifies the secret password to log in to the VMware vCenter
server. For example:The VMware vCenter server password is stored in data bags 'secrets/openstack_vmware_secret_name'. Change the password to the actual values relevant for your vCenter.
# knife data bag edit secrets openstack_vmware_secret_name --secret-file "/opt/ibm/cmwo/chef-repo/data_bags/example_data_bag_secret" { "id":"openstack_vmware_secret_name", "openstack_vmware_secret_name": "Letmein123!" } Note: In this example, “Letmein123!” is the actual password.Note: When using the knife data bag edit command, you must have the vim program installed. If not, you might receive an error. For more information, see Error when using knife data bag edit command. - ibm-openstack.vmware-driver.vcenter_connection.host_port: Specifies the
host port to connect to the VMware vCenter server
if you are using a non-default port. If you use the default port, 443, you can
ignore this attribute. If you use a non-default port, add this attribute manually with the desired
port. See the following
example:
"vmware-driver": { "vcenter_connection": { "host_ip": "172.17.8.201", "host_username": "Administrator@vsphere.local", "secret_name": "openstack_vmware_secret_name", "host_port": "444", .... }
- Set the ibm-openstack.vmware-driver.compute.services attribute to specify the compute service list. For example: [“compute0”, “compute1”].
- For each compute service, configure options in the corresponding
attributes as required. The following options use the compute0 compute
service as an example:
- ibm-openstack.vmware-driver.compute.compute0.compute_type: Specifies the type of compute resource to be managed. Valid values are cluster, cluster_resourcepool, host_resourcepool, and esxi (for VMware ESXi hosts).
- ibm-openstack.vmware-driver.compute.compute0.esx_host_name: Specifies the name of the VMware ESXi host.
- ibm-openstack.vmware-driver.compute.compute0.host: Specifies the host name of the Nova compute service.
- ibm-openstack.vmware-driver.compute.compute0.compute_monitors: Specifies the compute monitors of vCenter. The default is ['VMwareCPUMonitor'].
- ibm-openstack.vmware-driver.compute.compute0.datastore_regex: Specifies the regular expression pattern that is used to search data stores.
- ibm-openstack.telemetry.hypervisor_inspector: Specifies the Ceilometer agent inspector (which is ’vsphere’ for VMware).
- ibm-openstack.compute.vmware.host_ip: Specifies the IP address of the VMware vCenter server.
- ibm-openstack.compute.vmware.host_username: Specifies the user name to log in to the VMware vCenter server.
- ibm-openstack.compute.vmware.secret_name: Specifies the secret password to log in to the VMware vCenter server.
The following example is a sample environment file.'ibm-openstack' => { .... ’vmware-driver’ => { ’vcenter_connection’ => { ’host_ip’ => ’172.17.8.201’, ’host_username’ => ’Administrator@vsphere.local’, ’secret_name’ => ’openstack_vmware_secret_name’ }, ’compute’ => { ’services’ => [’compute0’,’compute1’], ’compute0’ => { ’compute_type’ => ’esxi’, ’datastore_regex’ => ’nfs3’, ’esx_host_name’ => ’the hostname of the esxi host’, ’host’ => ’9.111.249.50’, ’compute_monitors’ => [’VMwareCPUMonitor’] }, ’compute1’ => { ’compute_type’ => ’esxi’, ’datastore_regex’ => ’nfs3’, ’esx_host_name’ => ’the hostname of the esxi host’, ’host’ => ’9.111.249.56’, ’compute_monitors’ => [’VMwareCPUMonitor’] } }, ... }, ... 'compute' => { ... ’vmware’ => { ’host_ip’ => ’172.17.8.201’, ’host_username’ => ’Administrator@vsphere.local’, ’secret_name’ => ’openstack_vmware_secret_name’ } }, ... ’telemetry’ => { ’hypervisor_inspector’ => ’vsphere’, ’api’ => { ’auth’ => { ’memcached_servers’ => nil, ’memcache_security_strategy’ => nil, ’memcache_secret_key’ => nil, ’hash_algorithms’ => ’md5’, ’cafile’ => nil, ’insecure’ => false } }, ’service-credentials’ => { ’cafile’ => nil, ’insecure’ => false } } }, ... - Set the following attributes to specify the connection information
for the VMware vCenter
server.
- Deploy the local VMware driver with VMware nodes through
the controller +n compute topology. The following
example shows a sample topology with VMware nodes:
{ "name":"CHANGEME", "description":"CHANGEME", "environment":"CHANGEME", "secret_file":"CHANGEME", "run_sequentially":false, "nodes": [ { "fqdn":"CHANGEME", "password":"CHANGEME", "identity_file":"CHANGEME", "quit_on_error":true, "run_order_number":1, "runlist": [ "role[ibm-os-single-controller-vmware-driver]", "role[ibm-os-prs-ego-master]", "role[ibm-os-prs-controller-node]", "role[ibm-os-prs-compute-node]", "recipe[ibm-openstack-vmware-driver::ceilometer]" ] } ] }To customize your topology, change the following attributes in your .json topology file (topology_name.json):- name: Specify the name of your topology.
- Description: Enter a description for your topology.
- Environment: Specify the environment for your topology.
- nodes.fqdn: For each node, specify the fully qualified domain name (FQDN) of the node system. The deployment system must be able to SSH using the FQDN. You can also specify the public IP address, private IP address, or host name. It is recommended that the value used correspond to the management network interface for the node.
- nodes.password or nodes.identity_file: For each node, specify the SSH root user authentication for the node system. You can authenticate by using a password or an SSH identity file. Remove the unused attribute for each node.