A nice and easy one, but one that i must admit have fallen foul to a couple of times.
If your worried your going to break something then take a snapshot of the applicance prior to all this.
1. Start the appliance up and press the space bar to freeze the GRUB menu. You need to be fairly quick on this bit (usually takes me a couple of times)
2. Press e to enable edit mode.
3. Append rw init=/bin/bash to the end of the line
4. Press F10 to reboot. The appliance will now boot up to a shell
5. Type passwd to change the root password. Type it twice and press Enter to confirm.
6. Reboot the appliance using the power options from the VMRC or vSphere client menu, or type reboot (which ever takes your fancy).
And your done…. (if you took a snapshot do your tests then dont forget to remove it)
Sometimes we have a requirement to increase the size of the drives on the vCSA Appliance due to a need for extra space for logs or we have just increased the infrastructure and need to increase the DB sizing etc. To help identify the VMDK’S to there respective mount points I have listed below the there standard sizes.
||/ and Boot
|| / and Boot
||VCSA’s RPM packages
||Stats Events and Tasks
For example if we need to increase the storage for the logs volume, vCSA 6.5 will allow us to do this via a hot addition (so no downtime). We just need first increase the size of VMDK5 from say 10GB to 15GB using either the vSphere Web Client or PowerCLI. Once this is complete we need to do a resize on the volume, as we like PowerCLI we will do it using some of the CIS cmdlets by doing the following:
Connect-CisServer -Server 192.168.1.5 -User firstname.lastname@example.org -Password VMware123!
$diskResize = Get-CisService -Name 'com.vmware.appliance.system.storage'
(I will be doing a post later to go over some of the checks we can do on the vCSA using the CIS cmdlets)
Deploying vCSA in 6.5 normally means that you need to run through the manual process using your web browser. However there is another method, vcsa-deploy.exe if you like the idea of having it scripted as a re-usable configured deployment.
I though i would give this a try using the following script i have put together for the recent 6.5u1 vCSA release.
The vcsa-cli-installer\templates folder hosts all the templates that can be selected and you can tailor your modified .json file by adding/removing attributes as required (however don’t forget the options depend on the template you will be using)
“deployment.network”: “VM Network”,
“datastore”: “ESXi host datastore, or a specific datastore in a datastore cluster.>”
The script below will deploy a vCSA to esxi host 192.168.1.5, the deployment used will be an install (you could script migrate/upgrade) and use the database tiny option (as we are managing 10 or less hosts), it has been told all the relevant IP details to configure and the datastore it will be placed on.
Don’t forget the memory requirements, even a tiny vCSA required 10GB of RAM.
You of course need to be connected by a connect-viserver to the ESXi node to run
# Convert JSON file to PowerShell object
$configconfig = "D:\VMware-VCSA-all-6.5.0-8024368\vcsa-cli-installer\templates\install\embedded_vCSA_on_ESXi.json"
$deploy = "D:\VMware-VCSA-all-6.5.0-8024368\vcsa-cli-installer\win32\vcsa-deploy.exe install --accept-eula --acknowledge-ceip "
$UpdatedConfig = "D:\VMware-VCSA-all-6.5.0-8024368\config.json"
$config = (Get-Content -Raw $configconfig) | ConvertFrom-Json
# vCSA system information
$config."new.vcsa".sso.password = "VMw@re123"
$config."new.vcsa".sso."site-name" = "Default-Site"
# ESXi Host Information
$config."new.vcsa".network.mode = "static"
$config."new.vcsa".network.ip = "192.168.1.25"
$config."new.vcsa".network.prefix = "24"
$config."new.vcsa".network.gateway = "192.168.1.1"
$config | ConvertTo-Json | Set-Content -Path "$UpdatedConfig"
iex "$deploy $UpdatedConfig"