VMware vCenter Server + PSC Appliance 6.x deployment
Choices ?
Due the expansions of the limitations in the vSphere appliances, it now could be a worth replacing the Windows vCenter servers by appliances. Because I’m reasearching the upgrade to 6.x I need to make a decision to go for Windows or the Appliance. Too bad VMware’s Update manager is still a Windows-only product, but ok, I could live with that.
Because we have two sites I normally go for 2 single vCenter installations with their own databases, SSO, VUM etc. So they will be separate entities, no matter what happens on one of the sites, there is no relation, so the surviving one will keep working.
When digging through the new documentation and install guides there are basically a few major decisions to make. Because it’s not able to change this after deployment you have to think beforehand and
make the right decisions.
Below are a few “Major” choices for your design which I will explain later from my point of view. There are several good blog posts on the internet already.
Choice 1 : Embedded or external Platform Service Controller
Choice 2 : Internal or external Database
Choice 3 : One or more vCenters
Choice 4 : Windows, appliance or both ?
Choice 5 : New install or upgrade
Which are beautifully explained in the install guide:
http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.vsphere.install.doc%2FGUID-ACCD2814-0F0A-4786-96C0-8C9BB57A4616.html
At the moment I’m not going to explain or discuss the decisions and facts I used to choose for this setup.
As you can see I chose to setup 1 vCenter per site (like I used to do before) and made a local external PSC for each site and connected them in the same “Site”. So basically the PSC’s will replicate with each other across the sites, while the vCenters are local.
What does that PSC do actually? Well it handles vCenter Single Sign On, vSphere License Service, VMware Certifcate Authority. Those components where previously part of the vCenter Installation, by seperating them, it now is also possible to link both PSCs.
Because I join the second PSC to the same site it’s possible to use Enhanced Linked Mode out of the box. The site below will explain what it means. It’s awesome that roles/permissions etc. now can be managed from a single point.
http://pubs.vmware.com/vsphere-60/index.jsp#com.vmware.vsphere.install.doc/GUID-91EF7282-C45A-4E48-ADB0-5A4230A91FF2.html
Migrate Windows vCenter Server to vCenter Appliance?
Yes it’s possible, haven’t tried it yet, but came accross this fling which let’s you migrate a Windows vCenter server with an external SQL Database to a vCenter Appliance with Embedded vPostgres Database
https://labs.vmware.com/flings/vcs-to-vcva-converter
Design & Installation
For my testing purposes I decided to deploy 4 appliances, 2x vCenter server and 2x Platform Service Controller.
Instead of using the CD-ROM and follow the instructions (which I did already a few times), I decided to create a simple deployment script. It is possible to deploy the appliances with a pretty simple script and configuration file. Let’s dive in here:
You”ll need the installation CD and mount that to a Windows machine where you start the deployment using the deploy command which is located on the CD-ROM.
Secondly you need a few .json files which hold the configuration for the VCSA deployment.
To follow the example as in the picture I have 4 .json files, 2 for the vCenters and 2 for the PSC controllers.
Let’s start setting up the PSC Controllers and SSO Site, choose 1 to deploy first, I take PSC_Site1
The first part is the deployment information, what is the hostname where the PSC needs to be deployed too, fill in the username,password,datastore,network etc.
Next is the VCSA information, what is the root password of the appliance, does SSH need to be enabled and
After that there are some seperate configuration options for setting up the SSO domain. Because it’s the first one, the option “first-instance” is set to true, the rest looks self explanatory so fill it in like you designed it.
PSC Site 1 JSON
{ "__comments": [ "Template to deploy PSC Controller Site1." ], "deployment": { "esx.hostname":"ESX_Site1", "esx.datastore":"Datastore_Site1", "esx.username":"root", "esx.password":"VMWare!", "deployment.network":"VLAN1234", "deployment.option":"infrastructure", "appliance.name":"PSC_Site1", "appliance.thin.disk.mode":false }, "vcsa": { "system": { "root.password":"VCSA_VMWare!", "ssh.enable":true }, "sso": { "password":"SSO_VMWare!", "domain-name":"vsphere.local", "site-name":"vSphere_Test", "first-instance":true }, "networking": { "ip.family":"ipv4", "mode":"static", "ip":"192.168.1.214", "prefix":"24", "gateway":"192.168.1.254", "dns.servers":"192.168.1.203", "system.name":"SSO_Site1" } } }
Nice, now we have the configuration file for the first External SSO server in the domain. In the JSON directory on the CD are some examples for the different installations. We now need to build the second external PSC controller on a different host in a different physical site, but still need to connect it to the primary site which is created above.
PSC Site 2 JSON
{ "__comments": [ "Template to deploy PSC Controller Site2." ], "deployment": { "esx.hostname":"ESX_Site2", "esx.datastore":"Datastore_Site2", "esx.username":"root", "esx.password":"VMWare!", "deployment.network":"VLAN1234", "deployment.option":"infrastructure", "appliance.name":"PSC_Site2", "appliance.thin.disk.mode":true }, "vcsa": { "system": { "root.password":"VCSA_VMWare!", "ssh.enable":true }, "sso": { "password":"SSO_VMWare!", "domain-name":"vsphere.local", "site-name":"vSphere_Test", "replication-partner-hostname":"192.168.1.214" }, "networking": { "ip.family":"ipv4", "mode":"static", "ip":"192.168.1.215", "prefix":"24", "gateway":"192.168.1.254", "dns.servers":"192.168.1.203", "system.name":"192.168.1.215" } } }
As you can see, you configure the replication partner and site name where the second PSC needs to connect/register too.
Good, this will later on deploy the upper part of the picture and configure and SSO Domain which exists of 2 PSC Servers.
vCenter JSON
Let’s configure 2 vCenters, because the configuration is just the same, I’ll post only 1 example. I configure vCenter Site 1 here:
{ "__comments": [ "Template to deploy vCenter Server Site1." ], "deployment": { "esx.hostname":"ESX_Site1", "esx.datastore":"Datastore_Site1", "esx.username":"root", "esx.password":"VMware!", "deployment.network":"VLAN1234", "deployment.option":"management-tiny", "appliance.name":"vCenter_Site1", "appliance.thin.disk.mode":true }, "vcsa": { "system": { "root.password":"VCSA_VMware!", "ssh.enable":true, "platform.service.controller":"192.168.1.214" }, "sso": { "password":"SSO_VMware!", "domain-name":"vsphere.local", "site-name":"vSphere_Test" }, "networking": { "ip.family":"ipv4", "mode":"static", "ip":"192.168.1.216", "prefix":"24", "gateway":"192.168.1.254", "dns.servers":"192.168.1.203", "system.name":"192.168.1.216" } } }
The second vCenter configuration file is the except the relation to the PSC which connects to the “local PSC”.
“platform.service.controller”:”192.168.1.215″
So let’s wrap it up, I have 4 .json files which hold the configuration of 1 external PSC controller, which is the first of the site. Then a second PSC is deployed which is connected to the first PSC “Site”.
After that we deploy two vCenters which connect to the PSC Site within their own site.
Good that’s a start. On the Installation CD there is a file called : vcsa-deploy.exe which can be found here Z:\vcsa-cli-installer\win32\vcsa-deploy.exe
All command line options an configuration can be found here:
Now let’s create a simple deployment batch file which contains the installation.
As you can see, you start the vcsa-deploy.exe, with the json file we created, save the log file to a directory and turn off the SSL verification.
Z:\vcsa-cli-installer\win32\vcsa-deploy.exe D:\JSON\PSC_Site1.json --log D:\JSON\PSC_Heerlen_install.log --no-esx-ssl-verify --verbose Z:\vcsa-cli-installer\win32\vcsa-deploy.exe D:\JSON\PSC_Site2.json --log D:\JSON\PSC_Beek_install.log --no-esx-ssl-verify Z:\vcsa-cli-installer\win32\vcsa-deploy.exe D:\JSON\VC_Site1.json --log D:\JSON\VC_Heerlen_install.log --no-esx-ssl-verify Z:\vcsa-cli-installer\win32\vcsa-deploy.exe D:\JSON\VC_Site2.json --log D:\JSON\VC_Beek_install.log --no-esx-ssl-verify
Let’s fire it up :
Cool let’s keep it running until it ‘s finished. I experienced that after it’s finished there seem to be some background tasks, so let it run for a few more minutes to let it sync and setup correctly.
Done?
Now let’s go to the webclient: https://192.168.1.216/vsphere-client
And login with “Administrator@vsphere.local” and the password you provided in the configuration. You’ll now see your 2 vCenters connected in the same interface.
Ah pretty, now let’s see what we can do.
For example go to the “Adminstration” tab, here we can see “Global permissions, licensing etc.”What about cross vMotion to another datacenter, I read about that..let’s see:
Right click a virtual machine and select the “Migrate” option, choose the option to “Change both compute resource and storage” (because you don’t have the same shared storage on the other side, at least I don’t). Cool, now I can select other vCenters and underlying resources. Select the resource you want to move to, select the datastore, select another network if needed and click “Finish”.
Awesome that worked flawless.
I’m still doing some more testing and will update the text and pictures asap. This was a quick reference & braindump