Install Stackato (CloudFoundry) on HPCloud

I recently published an article to get CloudFoundry running by way of Stackato on a local machine using VirtualBox. As soon as you have something ready to share with the world (testers, executives, investors, etc.), you’ll want something more public. Fortunately, it’s easy to run Stackato on HPCloud.com. I’m following the steps outlined here: https://docs.stackato.com/admin/server/hpcs.html.
Configuration of HPCloud.com
For the security groups, I created two separate groups, one for SSH and another for web. I do this to allow for separation of access and web service functions in the future (using a Bastian host for example).
Launch an Instance
My settings for the instance are straight forward and shown below. I’m using a medium size instance and a I check both the web and remote security groups that I created above. If you haven’t already added a key pair for secure remote access, do that before creating the instance. If you forget to do this, the default password for the stackato user is ‘stackato’, at least until you complete the setup of the first admin user.
And the security group assignments.
I follow the instructions as provided to associate a floating IP address with the new instance and create a DNS entry for easy access to my new stackato installation. In my case I didn’t move DNS management to hpcloud.com. Instead I just added A and CNAME records where it was already being managed.
Role and name management
When I installed Stackato on VirtualBox previously, I had to rename the node to use wildcard DNS. In this case I need to rename it to use the domain name for which I created the A and CNAME records above.
For my scenario I ran the following two commands:
kato role remove mdns kato node rename stackato.danielwatrous.com |
You may see some errors about it being unable to resolve the default node name. You can safely ignore these. Restarting all the affected roles can take a few minutes.
Stackato uses HTTPS by default. However, if you are using the default certificate, you may have to bypass some security warnings in your browser.
Pushing code
You should be all set to push an app to the newly deployed Stackato instance. Let’s push a simple PHP app. Two files are required to push this using the stackato command line client. First is the PHP file, index.php. Next is the manifest yaml file. The manifest is required so that CloudFoundry can identify the correct buildpack to prepare the instance.
index.php
<?php phpinfo(); ?> |
And a very basic manifest.yml file.
applications: - name: test-php framework: php |
The console session to deploy this simple app is shown below:
F:\cf-php-test>stackato target stackato.danielwatrous.com Host redirects to: 'https://api.stackato.danielwatrous.com' Successfully targeted to [https://api.stackato.danielwatrous.com] Target: https://api.stackato.danielwatrous.com Organization: <none> Space: <none> F:\cf-php-test>stackato login watrous Attempting login to [https://api.stackato.danielwatrous.com] Password: ******** Successfully logged into [https://api.stackato.danielwatrous.com] Choosing the one available organization: "DanielWatrous.com" Choosing the one available space: "Explore" Target: https://api.stackato.danielwatrous.com Organization: DanielWatrous.com Space: Explore No license installed. Using 4G of 4G. F:\cf-php-test>stackato push Would you like to deploy from the current directory ? [Yn]: Using manifest file "manifest.yml" Application Deployed URL [test-php.stackato.danielwatrous.com]: Application Url: https://test-php.stackato.danielwatrous.com Enter Memory Reservation [256]: 20 Enter Disk Reservation [2048]: 1024 Creating Application [test-php] as [https://api.stackato.danielwatrous.com -> DanielWatrous.com -> Explore -> test-php] ... OK Map https://test-php.stackato.danielwatrous.com ... OK Create services to bind to 'test-php' ? [yN]: Uploading Application [test-php] ... Checking for bad links ... OK Copying to temp space ... OK Checking for available resources ... OK Processing resources ... OK Packing application ... OK Uploading (231) ... OK Push Status: OK Starting Application [test-php] ... stackato[dea_ng]: Staging application stackato[fence]: Created Docker container stackato[fence]: Prepared Docker container stackato[cloud_controller_ng]: Updated app 'test-php' -- {"console"=>true, "state"=>"STARTED"} staging: -----> Downloaded app package (4.0M) staging: **************************************************************************** staging: * Using the legacy buildpack to stage a 'php' framework application. staging: * staging: * Note that the legacy buildpack is a migration tool to provide backwards staging: * compatibility while moving from Stackato 2.x to Stackato 3.0. It is not staging: * updated with new features beyond what Stackato 2.10.6 supplied. staging: * staging: * Please use a non-legacy buildpack for any new code developed for Stackato! staging: **************************************************************************** staging: staging: end of staging staging: -----> Uploading droplet (4.0M) stackato[dea_ng]: Uploading droplet stackato[dea_ng]: Completed uploading droplet stackato[fence]: Destroyed Docker container stackato[fence.0]: Created Docker container stackato[fence.0]: Prepared Docker container stackato[dea_ng.0]: Launching web process: /home/stackato/startup app[stderr.0]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.39. Set the 'ServerName' directive globally to suppress this message stackato[dea_ng.0]: Instance is ready OK http://test-php.stackato.danielwatrous.com/ deployed F:\cf-php-test> |
At which point I can load my PHP test app, which is just phpinfo().
[…] easiest way to follow along with this tutorial is to deploy stackato somewhere like hpcloud.com. The resulting host will have the docker image you need to follow along […]
[…] CloudFoundry on HPCloud.com Install CloudFoundry in VirtualBox […]