Archive

Category Archives for "Systems"

A Quick Introduction to Consul

For reasons that (hopefully) will become clear in the relatively near future, I decided I needed to take a look at Consul, a distributed service discovery tool and key value store. I know Consul’s description sounds like a mouthful of buzzwords, but it’s pretty accurate. This post provides a quick introduction to Consul, in which I’ll break down what Consul does and how it works (at a high level). I’ll then build on this introduction in later posts.

There’s a lot to Consul, so let’s start by breaking down the description of Consul, which I provided as “a distributed service discovery tool and key value store”. What does this mean, exactly?

  • Consul is distributed. This means it runs as a cluster of systems so that there is no single point of failure. Consul uses a gossip protocol (known as Serf) to manage cluster membership, failure detection, and general orchestration. Managing cluster state via Serf is only part of the picture, though; the cluster must also manage consistency via a consensus protocol known as Raft. (Raft is the same consensus protocol used by etcd, for example.)
  • Consul is also a service discovery tool. Applications can register with Continue reading

Using Vagrant with CoreOS, etcd, fleet, and Docker

As a follow-up to my recent #vBrownBag session on “Docker and Friends,” I wanted to provide a quick and relatively easy way for VMware administrators to experiment with some of the technologies I demonstrated. Since not everyone has their own OpenStack cloud running in their basement, Vagrant seemed like a reasonable solution. So, in this post, I’ll show you how to use Vagrant to experiment with some of the technologies I demonstrated in the #vBrownBag session.

If you’d like to follow along on your own, I’ve uploaded the necessary files to the GitHub repo I created for the #vBrownBag session. Just have a look in the coreos-vagrant folder in that repository.

What You’ll Need

  • Vagrant (I tested with Vagrant 1.7.2)
  • VMware Fusion (I used Fusion 6.0.5 on OS X 10.9.5)
  • the VMware plugin for Vagrant
  • the CoreOS Vagrant box for the vmware_fusion provider (more on that in a moment)
  • the necessary supporting files (more on that in a moment as well)

I’m not going to cover installing Fusion, Vagrant, or the VMware provider for Vagrant, as those steps are reasonably well-documented by the respective vendors. I will, though, talk about getting the CoreOS box Continue reading

Using ansible and dynamic Amazon EC2 inventory management on #AWS

Screenshot_2015-02-03_13.00.10Brandon Chavis, an AWS Partner Solutions Architect, has a great post over on the AWS blog titled "Getting Started with Ansible and Dynamic Amazon EC2 Inventory Management" today.

From the post:

Today, the options for configuration and orchestration management seem nearly endless, making it daunting to find a tool that works well for you and your organization. Here at AWS, we think Ansible, an APN Technology Partner, provides a good option for configuration management due to its simplicity, agentless architecture, and ability to interact easily with your ever-changing, scaling, and dynamic AWS architecture.

Instead of having to push an agent to every new instance you launch via userdata, roll an agent into an AMI, or engage in similarly management-intensive deployments of your config management software, the Ansible framework allows administrators to run commands against Amazon Elastic Compute Cloud (Amazon EC2) instances as soon as they are available, all over SSH. This document intends to examine ways that your Amazon EC2 inventory can be managed with minimal effort, despite your constantly changing fleet of instances.

Read the full post here.

 

First Git, now Vagrant

When I shared the story behind migrating the blog to Jekyll and GitHub, I mentioned that one of the reasons for the migration was to embrace Git as a part of my regular workflow. I’d been recommending to folks that they learn and use Git, and now I needed to “walk the walk” as well as “talk the talk.” This post describes another step in my effort to “walk the walk.”

As the title of the post implies, this step involves the well-known tool Vagrant. (If you are unclear what Vagrant is or what it does, please read my quick introduction to Vagrant.) In the same presentation where I was recommending to folks to learn tools like Git, I was also recommending that they learn (and use, where applicable) tools like Vagrant. Once again, though, I was talking a good game but not backing it up with my actions. So, I’ve resolved to expand my use of Vagrant, sharing with all of my readers and followers along the way. And, because I believe that VMware Fusion is the most robust virtualization solution for Mac OS X, I’ll be using Vagrant with VMware Fusion.

So what will Continue reading

Thanks Michael!

3 years ago, Michael DeHaan started the Ansible open source project. Michael has worked tirelessly and done a great job leading the Ansible vision of simple IT automation, and his efforts led to some amazing achievements.  Ansible is now a mature open source project and vibrant community, with over 900 contributors (a new contributor almost every day!), thousands of users and millions of downloads.  Ansible was recently named a Top 10 Open Source project for 2014, alongside projects like Hadoop, Docker, and OpenStack.

As of today, Michael will be transitioning from his daily operational involvement with Ansible, Inc. to an advisory capacity supporting the community and the Ansible team as needed.  You can read more about Michael’s thoughts on the transition here.

As for Ansible, we are grateful for Michael’s vision and efforts and look forward to his continued contributions. He and the Ansible community have set a new standard for simple, agentless automation, and we will continue to build great things on that strong foundation.

Thinking Out Loud: Does Docker on Windows Matter?

Nigel Poulton recently posted an article titled “ESXi vs. Hyper-V - Could Docker Support Be Significant,” in which he contemplates whether Microsoft’s announcement of Docker support on Windows will be a factor in the hypervisor battle between ESXi and Hyper-V. His post got me thinking—which is a good thing, I’d say—and I wanted to share my thoughts on the topic here.

Naturally, it’s worth pointing out that I work for VMware, although I do work in a business unit that makes a multi-hypervisor product (NSX).

Nigel makes a few key points in his article:

  • Open source is “where it’s at today”
  • Everyone “is crazy with container fever”
  • VMware “ditched” Linux in the transition to ESXi
  • Microsoft’s support for Docker means Microsoft might “ship a hypervisor platform (Windows Server/Hyper-V) that does VMs and Docker containers”
  • Azure could be made more relevant in the public cloud race through “native support for Docker containers” resulting in “native Type-1 hypervisor, native Docker containers.”

To be completely fair, the article fully admits that all this is assumption and is just thinking out loud (his statement, not a play on the title of this post). As I said, I think it’s a good thing to Continue reading

5 Reasons to Use Ansible in Government

ANSIBLE-govt

As many US Government programs look to adopt DevOps and agile development methodologies, there’s a need for tools to manage the application lifecycle, and make it easier and more predictable to deploy and manage entire application environments.

So why do Government customers chose Ansible?

Agentless

Ansible does not require a software agent to be running on the remote hosts it manages. Instead, it relies on the trusted management ports you’re already using on a daily basis to log into your servers: secure shell (SSH) on Linux, and Windows Remote Management (WinRM) on Microsoft-based systems. This means that you don’t need to change existing firewall port filtering rules, which removes a large barrier to entry that other tools that run an agent require.

Additionally, agentless management means that there is little likelihood of a library conflict. What happens when a management tool agent requires one version of a library, but your application requires another?

Finally, Ansible’s agentless model does not increase your system’s security footprint or attack profile. Ansible relies on the operating system’s encryption tooling, and ensures that there are no separate agents that require vulnerability patching.

More Than Just CM

Configuration Management in the Government space is nothing new. Continue reading

Why Comments Aren’t Available Yet

A number of readers have asked—via e-mail, of course, given the subject of this post—why comments aren’t available yet on the new site. I’d like to take a quick moment to explain the current situation.

First and foremost, it’s not because I don’t want feedback from readers. I would love to continue to have the outstanding feedback from readers that I’ve had over the last 9 years of this site. It’s also not because it’s too much trouble (too much comment spam, too much time to moderate, etc.). It’s not because enabling comments is too difficult, either.

If not these reasons, then why? With a static site generator like Jekyll, I’m left with very few options for handling comments. The most common way is to use a service like Disqus, but there are a number of privacy and security concerns around Disqus (see here for just one example). As a result, I’m hesitant to put my readers in the situation where the privacy of their information is outside my hands. At least with WordPress, readers’ personal information was under my control alone. Not so with a service like Disqus (or any of the hosted alternative solutions).

I’ve tried Continue reading

Using the Fork-and-Branch Git Workflow

Now that I’ve provided you with an introduction to Git and a brief overview of using Git with GitHub, it’s time to build on that knowledge by taking a closer look at one workflow often used when collaborating with Git. The “fork and branch” workflow is a common way of collaborating on open source projects using Git and GitHub. In this post, I’m going to walk through this workflow (as I understand it—I’m constantly learning), with a focus toward helping those that are new to this sort of thing.

If you’re new to Git and/or GitHub and haven’t yet read the earlier posts on Git and using Git with GitHub, I strongly recommend you read those first.

Basically, the “fork and branch” workflow looks something like this:

  • Fork a GitHub repository.
  • Clone the forked repository to your local system.
  • Add a Git remote for the original repository.
  • Create a feature branch in which to place your changes.
  • Make your changes to the new branch.
  • Commit the changes to the branch.
  • Push the branch to GitHub.
  • Open a pull request from the new branch to the original repo.
  • Clean up after your pull request is merged.

Here’s a bit more Continue reading

Using Git with GitHub

Building on my earlier non-programmer’s introduction to Git, I wanted to talk a little bit about using Git with GitHub, a very popular service for hosting Git repositories. This post, in conjunction with the earlier introductory post on Git, will serve as the basis for a future post that talks about how to use Git and GitHub to collaborate with others on an open source project hosted on GitHub.

If you aren’t familiar with Git and haven’t yet read the earlier introductory post, I strongly recommend reading that post first.

Recall that Git is a distributed version control system (DVCS), and is designed to operate in such a way that full copies of repositories exist on multiple systems. This means you (as a single user) might have multiple copies of a repository across multiple systems. So how does one keep these repositories in sync? Generally, this would be handled via the use of a “server-side” repository to which the various repository clones are linked via a Git remote. This server-side repository might be hosted on an internal server or on a public server, and you may be connecting to it using the Git protocol, SSH, or HTTP(S). You Continue reading

Ansible Adds Over 300 Customers in 2014

2014 was a great year for Ansible.

Ansible Highlights from 2014

  • Named SD Times #1 Company to Watch in 2015 and a Top 10 open source project in 2014 by Red Hat’s opensource.com.

  • The Ansible open source project has had over one million downloads in 2014.

  • O’Reilly released the preview of its first Ansible book (available on Ansible.com) with the full book due out in early 2015.

  • There are over 40 regular worldwide Ansible meetups, with new meetups popping up weekly around the world from Sydney to South Africa.

  • Over 600 people attended AnsibleFests in San Francisco, Austin & New York in 2014, and 400 people are expected at the first AnsibleFest London in February 2015.

  • Ansible Tower - Ansible’s enterprise IT automation solution - has been downloaded over 5,000 times and by 27 of the Fortune 100.

  • Ansible Tower is in production managing tens of thousands of servers, VMs and cloud instances across enterprise verticals that include financial services, government, high-tech manufacturing, education, web & e-commerce and media.

  • Ansible released three major upgrades of Ansible Tower in 2014, most recently adding capabilities for delivering self-service IT and HA for enterprise IT organizations.

  • Ansible released agentless support for Continue reading

ComputerWeekly: Ansible’s secret agentless route to IT automation

ComputerWeekly recently posted a great breakdown of Ansible's role in IT automation.

Ansible Inc (upper case) is a company that makes "agentless" orchestration and configuration management tools in the form of an automation engine designed to help deploy both applications and the wider software systems that they exist within.

The core technology proposition here is a developer play yes -- but it's also an opportunity for less technical users to get involved with IT automation because Ansible avoids the need to write custom scripts or code to manage applications.

Read the full atricle on ComputerWeekly

 

Looking Ahead: My 2015 Projects

In this post, I’m going to discuss some projects that I’ve set out for myself in the upcoming year. I’ve done this in years past, and the feedback that I’ve gotten from readers is that they found these posts to be quite helpful.

I first started posting annual project lists in January 2012, when I posted a list of some projects for 2012. In January 2013, I graded myself on my progress (spoiler alert: I didn’t do very well), followed by a new 2013 project list in early February. The series of posts ends in January 2014 when I assessed my 2013 performance.

Here’s what I’m seeing for myself with regard to 2015 projects:

  1. Complete a new book. Having successfully transitioned the “Mastering VMware vSphere” series to Nick Marshall (who did an astounding job with the 5.5 release of the book), it’s time for me to get back into the book writing saddle. One of my projects for this coming year will be to complete a new book before the end of the year. This is a pretty significant effort, and it will absorb a large portion of my time and attention (as those who have written books can Continue reading

A Non-Programmer’s Introduction to Git

Git is a distributed version control system that is widely used by a number of open source projects. In this post, I’m going to provide a quick non-programmer’s introduction to Git, and encourage readers to spend some time getting familiar with Git. I think it is a time investment that will pay off down the road.

First, I’m going to provide some definitions/brief explanations in order to establish a foundation upon which you can build your Git knowledge. A version control system (sometimes just referred to as a VCS) is a system that tracks changes to files (or groups of files) over time.

The group of files that a VCS tracks is called a repository. The basic idea behind a VCS is that you could use it to “roll back” to an earlier version of any file (or group of files) in the repository in the event that the current version isn’t working or isn’t optimal. Almost all version control systems, including Git, support multiple repositories, and typically each repository would represent a particular project, component, or function. (I say “almost all version control systems” because there may be some VCS out there of which I am not aware that Continue reading

Case Study: Cogapp

cogapp

Our latest Ansible Case study features Cogapp, who helps the BBC, MoMA, and others organize their digital media, use Ansible for environment provisioning and content deployment. 

We use Ansible to build out the servers for deployments and to provision development VMs for our team. We also use Ansible to populate sample content for our development environments.

Our development team is 12 people; at least half of them have written or edited playbooks, and all of them have run playbooks to provision environments. When we started working with Ansible, each new project would cannibalize the last one and take some of the Ansible content. Now we have built a more standard library of content so we can spin up new projects quicker. We also use Galaxy roles wherever possible to standardize our server hardening playbooks so they can be shared across deployments.

Read the full case study.

 

Citrix Acquires Sanbolic

I just saw the news that Citrix has acquired Sanbolic, a storage virtualization company that I’ve written about before. (TechCrunch also has a quick write-up as well.) Early this year, Sanbolic announced their storage virtualization product, completing a pivot from offering a Windows-only solution (file system and volume manager) to a multi-platform solution that encompasses multiple storage tiers, multiple operating systems, and multiple hypervisors.

It will be interesting to see how this acquisition affects the virtualization industry. With the exception of a few major players running open source Xen, Citrix has thus far been unsuccessful (to my knowledge, correct me if I’m wrong) in making any significant inroads with XenServer (either commercial or open source). KVM seems to be the open source hypervisor of choice while VMware’s vSphere continues to dominate (for now) the commercial market—leaving XenServer with leftovers. The same can be said for CloudStack, which—with a few exceptions—is losing to OpenStack on the open source side and VMware’s offerings on the commercial side.

So the big question becomes, “Will the Sanbolic acquisition change things?” Will the addition of a storage virtualization solution that supports multiple operating systems and multiple hypervisors give Citrix an edge that Continue reading

Converting URLs to Jekyll References

In my post about the story behind the migration, I mentioned that I made extensive use of regular expressions (“regexes”) to help reformat portions of the Markdown documents that are used by Jekyll to build this site. In this post, I wanted to briefly share one of the regexes I used (and am still using) to convert URLs to Jekyll references.

First, let me clarify what I mean by Jekyll references. Jekyll offers a tag (not to be confused with content tags, more like a function) named post_url that will automatically build the correct URL when passed the filename of a content source. For example, if my _posts directory had a Markdown file named 2015-01-02-my-first-blog-post-of-2015.md, then I could use the filename (2015-01-02-my-first-blog-post-of-2015) inside a post_url tag, and Jekyll would automatically convert that to the appropriate permalink (URL) for that blog post. If the permalink ever changed for whatever reason, whenever the site is regenerated Jekyll would convert that tag to the new permalink. This helps you ensure that every time you update your site (which, when used on GitHub Pages like I’m doing, means every time you push commits to GitHub using git push origin Continue reading

Ansible Tower 2.1 Released

Tower2.1_BlogHeader

Today we're excited to release Ansible Tower 2.1, the next version of the UI, Server, and REST endpoint for Ansible Tower. This release adds several major new features:

Surveys may now be created with our easy form builder and can be attached to any job template in Ansible Tower.  When launching a job with an attached survey, the system will prompt the user to answer any number of questions - multiple choice, numeric, text, etc. The results of these questions will then be available as variables in Ansible Tower jobs.  Surveys are graphically constructed from within the interface with no programming required.

job-launch-with-credentials-and-survey.png

Portal Mode is a simplified view into Ansible Tower. If you have users who are not Ansible experts that need to run Ansible jobs, Portal Mode presents a simple two column view. On one side, there's a list of all the job templates they can launch. On the other side, there's a list of all the completed or in-progress jobs they can view, to know how their job is running.

portal-mode.png

Combined, these two features provide solid options for users that want to provide self-service features to others. For instance, admins can let developers or QA departments provision Continue reading