OneOps is an opensource cloud application lifecycle management system that works with public and private cloud infrastructure providers. This means developers can write an application once and deploy the application in a high availability mode across hybrid multi cloud environments with auto-scaling and auto-healing features. OneOps is a very good tool not just for green field applications, but also for forklifting legacy applications to the cloud with relative ease.
OneOps is Apache 2 Licensed and is very recently released by WalmartLabs. In fact, Walmart Ecommerce actually runs on a large OpenStack private cloud and managed by OneOps.
OneOps currently supports: OpenStack, Rackspace Public cloud, AWS, and Microsoft Azure.
OneOne is a complicated piece of software with lots of components. In this first post, I will go through the process of getting a minimally functioning allinone OneOps cluster on a server and connect it to Rackspace cloud, and deploy a very simple sample app on it. The goal is to help get you started with the setup and get you playing with different components and the UI.
I will try to cover the more complex features in future posts e.g. multi-cloud, auto-scaling, auto-healing, monitoring, alerting, CI integration, etc.
OneOps has setup scripts to deploy an allinone cluster on a vagrant environment. I have tweaked the scripts a little bit so you can the scripts to deploy it outside of vagrant. Here I have a server on Rackspace cloud:
- CentOs 6
- 15GB RAM (8GB should work too)
yum -y update; yum -y install vim git git clone https://github.com/sacharya/setup cd setup/vagrant VAGRANT=false bash oneops.sh
At the end of it, if your install is successful, follow the instructions at the end of the run and hit port 3000 to get to the OneOps portal. Sign up for a new user and login.
Then, follow the instructions here to create organization and add cloud.
In my case, I created a “Blog Team” as an organization and “RAX-DFW” as my cloud choosing rackspace-dfw cloud from the dropdown of clouds. You can see the management location as:
This is the step which trips most people when they are getting started with their first OneOps cluster. Normally, when a cloud is first added, the admin should also create an inductor for that cloud, its the part in OneOps that actually talks to the different clouds.
cd /opt/oneops/inductor inductor add
This step will ask a bunch of questions. Just accept the defaults except for the couple of questions below:
Queue location? /public/oneops/clouds/rackspace-dfw What is the authorization key? rackspacesecretkey
Also, make sure you can connect to the cloud vms from the oneOps cluster. Use private_ip or public_ip accordingly.
What compute attribute to use for the ip to connect (if empty defaults to private_ip)?
In case you missed anything or anything changed, you can go to /opt/oneops/inductor/clouds-available/public.oneops.clouds.rackspace-dfw/conf/inductor.properties and edit any values.
Add this line to the file so the inductor can talk to activemq over ssl:
vi /opt/oneops/inductor/clouds-available/public.oneops.clouds.rackspace-dfw/conf/vmargs -Djavax.net.ssl.trustStore=/opt/oneops/inductor/lib/client.ts
At this point, you should be able to restart the inductor and make sure its running.
inductor restart inductor status inductor tail
Add cloud services:
Now go back to the OneOps portal and add cloud services for Rackspace-dfw cloud that you created. You need tenant_id, username and apikey etc and add services like rackspace compute, loadbalancer, dns etc
For dns, if you don’t have a real registered domain, use can actually fake it with any domain name for testing. Eg.
Zone: mytestdomain.com Cloud DNS Id*: dfw authoritative_server: dns1.stabletransit.com
Deploying an app:
The UI isn’t really that friendly but follow the wizard at the top and these instructions on getting started:
1. Create assembly
2. Create platform (Choose the apache pack from the list) and commit the design
3. Create environment and deploy to the cloud.
At the end of it, you should have apache deployed to Rackspace dfw. You can verify it by going to the ip of the apache server created by OneOps.