VMware vCloud Automation Center (vCAC) 6.0 documentation and reference architecture recommends the utilization of an external instance of vPostgres when setting up a large/Medium distributed vCAC environment. However, since the release of vCAC 6.0 documentation, standalone vPostgres is EOA and no longer available as a standalone product. VMware has addressed that by allowing you to convert a vCAC 6.0 Appliance into a vPostgres Appliance for free. In fact, VMware has released a KB to demonstrate this, but that KB is highly focused on how to get replication setup for the vPostgres Appliance rather than on how to convert or use the vCAC Appliance in place of a vPostgres Appliance. KB2083563 is the article that show you how to use the vCAC Appliance in place of the vPostgres Appliance and how to setup replication for it. If you just need the simple steps of how to use the vCAC Appliance in place of the vPostgres Appliance and VMware HA is enough for your availability and you don’t require replication, then today is your lucky day as this article is going to show you how to achieve that in 3 easy steps (from now on in this article I will call the vCAC Appliance to be used as a vPostgres database vCAC vPostgres appliance):
- Download vCAC 6 Appliance & Deploy it to be used as your vCAC vPostgres Appliance.
- Login to your Web Client, right click on your Datacenter object and select “Deploy OVF Template”.
- Click on the “Local File” radio button and click “Browse”. Navigate to the location of your vCAC Appliance OVA, select it and click “Open”, then click “Next” on the Deploy OVA Template dialogue box and follow the deployment wizard as usual.
- Disabling unneeded services on the vCAC appliance
- Log into vCAC vPostgres appliance using SSH as the Root user
- Stop the vCO service: service vco-server stop
- Disable vCO Service auto start up: chkconfig vco-server off
- Stop the vCAC Service: service vcac-server stop
- Disable vCAC Service Auto start up: chkconfig vcac-server off
- Configure vPostgres to listen on all network interfaces. vCAC has been configured to rely on the embedded DB, and therefore, vPostgres has been configured to not listen for any external connects. These steps will configure vPostgres to listen on all network interfaces.
- Go back the SSH session of the vCAC vPostgres appliance that is open using the Root user
- Open the postgresql.conf file
- vim /storage/db/pgdata/postgresql.conf
- Locate the line listen_addresses
- Uncomment the line by deleting #
- Delete ‘localhost’ and add ‘*’
- Commit the changes by using the ‘Escape’ key, and then typing :wq
- Reset vPostgres vCAC Account password (As you will need to know this password to be able to connect your vCAC Appliance to this vCAC vPostgres database as an external database):
- Login to the vCAC vPostgres Appliance through SSH using root
- Switch to vcac user using: su – vcac
- Go to the psql directory using: cd /opt/vmware/vpostgres/9.2/bin
- Run ./psql
- Run the following command: Alter user vcac with password ‘YourPassword’; ALTER ROLE
- Connect your vCAC Appliance to your vCAC vPostgres appliance as an external database as you would done if you were to connect to any external vPostgres database
- Login to your vCAC Appliance by navigating to https://fqdn.of.your.vcac.appliance:5480. Enter your username and password.
- Navigate to vCAC Settings > Database
- Complete your database info as shown in the below screenshot.
This is it. Hope you find it helpful and looking for your comments and further tips in this regard. At last thanks for the following colleagues in helping this come together:
James Wirth who has helped me validate few of my assumptions.
4 responses to “Convert your vCAC Appliance to a vPostgres DB Appliance for vCAC Distributed install in 5 easy steps”
They don’t really explain what the purpose is of the replication nodes, are they active? Passive? how is this managed?
Root is unable to use psql there is no role associated with it. What user is already defined that we know the password can we use for this.
Michael, You will actually need to use the vcac user. I have updated the post to reflect that as it seems I have over looked documenting that step when I rushed to publish this post before going on vacation :).
I believe in section 4 “Reset vPostgres vCAC Account password” , sudo should be done for user postgres and not vcac i.e. it should be “su – postgres” in place of “su – vcac”… correct?