Resetting the Photon Controller Deployer configuration
As mentioned previously, I’m spending some time these days working on the Photon Controller product. Right now, I’m just familiarizing myself with it as much as possible. As I try different things, and test various options, I find that I repeatedly need to reset the Photon Controller Deployer to allow me to start a new Photon Controller. The Deployer is simply used to roll-out Photon Controller initially. It is not needed after that initial deployment step. In case you are involved in something similar, I added the steps here. Hopefully you will find them useful.
*** Please note that at the time of writing, Photon Controller is still not GA ***
*** The steps highlighted here may change in the GA version of the product ***
The first thing to note is that you cannot deploy multiple controllers from the same management appliance; you need to remove the old deployment and create a new one. If you don’t you will hit an error similar to this:
Ok – so how do you reset it back to a vanilla configuration? First, you need to SSH to the Photon Controller Deployer appliance. You can login as user “esxcloud” with the default password “vmware”. Then you need to become superuser using “su -“, and provide the password credentials that you provided when you did the initial deployment of the deployer appliance. Now you need to run the following commands to clean up the previous configuration:
[ ~ ]# rm -rf /etc/esxcloud/deployer/deployer/sandbox_18000/
[ ~ ]# rm -rf /etc/esxcloud/cloud-store/cloud-store/sandbox_19000/
[ ~ ]# reboot
The reboot will be very quick. However if you try to deploy a new Photon Controller straight away, you will hit the same issue as I hit, namely a “t.data is null” failure during the initial Add hosts step:
Ok, this is not a very helpful error message, but it boils down to the fact that one of the containers on the Photon Controller Deployer is not running. The container in question is the “installer_ui” container. You must restart it manually. SSH back to the Deployer appliance, and run the following commands as user “esxcloud” (scroll/slide right to see the full output):
esxcloud [ ~ ]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3a002da677db esxcloud/installer_ui "/bin/sh -c 'sh /etc/" 2 days ago Exited (137) About a minute ago ui_installer dff68fdb8e92 esxcloud/cloud-store "bash /etc/esxcloud/r" 2 days ago Up About a minute cloud-store_installer 05ccbefd05e3 esxcloud/housekeeper "bash /etc/esxcloud/r" 2 days ago Up About a minute housekeeper_installer 5f8690fa305b esxcloud/deployer "bash /etc/esxcloud/r" 2 days ago Up About a minute deployer_installer e677a66bcf20 esxcloud/management-api "bash /etc/esxcloud/r" 2 days ago Up About a minute management-api_installer 37a2c29482dd esxcloud/zookeeper "bash /etc/esxcloud/r" 2 days ago Up About a minute zookeeper_installer esxcloud [ ~ ]$ docker restart 3a002da677db 3a002da677db esxcloud [ ~ ]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3a002da677db esxcloud/installer_ui "/bin/sh -c 'sh /etc/" 2 days ago Up 1 seconds ui_installer dff68fdb8e92 esxcloud/cloud-store "bash /etc/esxcloud/r" 2 days ago Up About a minute cloud-store_installer 05ccbefd05e3 esxcloud/housekeeper "bash /etc/esxcloud/r" 2 days ago Up About a minute housekeeper_installer 5f8690fa305b esxcloud/deployer "bash /etc/esxcloud/r" 2 days ago Up About a minute deployer_installer e677a66bcf20 esxcloud/management-api "bash /etc/esxcloud/r" 2 days ago Up About a minute management-api_installer 37a2c29482dd esxcloud/zookeeper "bash /etc/esxcloud/r" 2 days ago Up About a minute zookeeper_installer esxcloud [ ~ ]$
Now you should be able to start a new Photon Controller deployment.
Or (I had to do this many, many times!) deploy the installer VM, take a snapshot BEFORE the first power on (so you don’t have to remember to start the installer_ui on each boot), then just roll back to the snapshot each time you need to re-deploy/deploy another controller, this way you can deploy multiple controllers from the same appliance.