Automating Command Execution

By Rajat Bhargava Posted April 8, 2014

I know, I know. Command execution is not run manually anymore. Commands are all scripted inside of Chef, Puppet, and the other configuration automation solutions. We also have completely lights out operations because we’ve automated everything and we don’t ever touch our production systems! Right. I can’t tell you how many times we’ve heard that from the “pundits” out there.

Now, we talk to all kinds of great organizations. Some that are completely DevOps and really pretty amazing at pushing code out to production quickly. We’ve also talked to some really large organizations that can’t really leverage DevOps completely because of the unique nature of their products and services. But in general, we’ve spoken to great organizations and they aren’t completely automated. And, while that’s a great goal, it’s not an easy one to see from here. It’s true that development and operations teams are doing things less manually on their systems. But it is also true that those tasks take a great deal of time to automate. You need to have the right scripts, tools, and networking to make all of that happen. Unfortunately, not all organizations can pull that all together easily.

So, when we added our command and script execution capabilities to JumpCloud’s core cloud based directory service functionality recently, we were excited to tackle this problem of automating tasks and jobs across an organization’s infrastructure. Think of the functionality as a cross-platform GPO like capability. Automating execution of a command or two is generally easy with a script on a server or even a couple. As soon as you want to execute that command against a larger group of servers or devices or one that is changing, then that becomes more complicated. Let’s add in that you want to actually know that the commands are fired off at the right time. Now we need to fight with cron to get it scheduled. What about ensuring that the commands are executed on time, they have success codes, and perhaps we want to review the output. Well, now, that’s a lot more code to write. Maybe you could use Chef or Puppet. You could, but that’s a lot of code to write as well because they aren’t really setup to execute commands on a certain schedule or ad hoc. And, even if you use Chef or Puppet you still need to write all of the code around reporting, auditing, and logging.

With JumpCloud, you can simply setup a command or set of commands up in our interface or through the JSON-based REST API. Schedule the task to execute when you want and then tell JumpCloud through our Groups feature which ones to execute the task on. From there, JumpCloud does the rest. The system will execute your task at your scheduled time on the servers indicated. You’ll receive a full log of who executed the command, when they were executed, on which servers, what the results were, and any output. Now, that’s automating commands. You’ll have full visibility into what happened. Also, if you want, you can share the task with your fellow admins within your company and they can use your automated command set against their group of servers if they like.

Executing a command here or there isn’t a big deal. Admins can do that in their sleep. But, when you want to create a reliable, efficient infrastructure, you need to be methodical. You need to know what is being executed, when, where, and how. JumpCloud does that for you so that you have less errors, downtime, and headaches. You spend less time fighting fires / maintaining and more time to put towards building your product or service.

Check out JumpCloud’s Automated Command Execution Functionality

It’s a core part of our cloud based directory services platform. As many organizations know, an identity provider should be three things: authentication, authorization, and device management. JumpCloud’s Directory-as-a-Service® platform covers those three items across a wide variety of protocols including LDAP, SAML, RADIUS, REST, and native device user management. It only takes a few minutes to get started. And, it’s free. Let us know what you think!

Rajat Bhargava

Rajat Bhargava is co-founder and CEO of JumpCloud, the first Directory-as-a-Service (DaaS). JumpCloud securely connects and manages employees, their devices and IT applications. An MIT graduate with two decades of experience in industries including cloud, security, networking and IT, Rajat is an eight-time entrepreneur with five exits including two IPOs, three trade sales and three companies still private.

Recent Posts