Book Image

Learn Ansible

By : Russ McKendrick
Book Image

Learn Ansible

By: Russ McKendrick

Overview of this book

Ansible has grown from a small, open source orchestration tool to a full-blown orchestration and configuration management tool owned by Red Hat. Its powerful core modules cover a wide range of infrastructures, including on-premises systems and public clouds, operating systems, devices, and services—meaning it can be used to manage pretty much your entire end-to-end environment. Trends and surveys say that Ansible is the first choice of tool among system administrators as it is so easy to use. This end-to-end, practical guide will take you on a learning curve from beginner to pro. You'll start by installing and configuring the Ansible to perform various automation tasks. Then, we'll dive deep into the various facets of infrastructure, such as cloud, compute and network infrastructure along with security. By the end of this book, you'll have an end-to-end understanding of Ansible and how you can apply it to your own environments.
Table of Contents (20 chapters)

Launching multiple Vagrant boxes

Before we start to look at the changes we need to make to our Ansible playbook, we should look at how we are going to launch two Vagrant boxes running different operating systems side by side. It is possible to launch two Vagrant boxes from a single Vagrantfile; we will be using the following one:

# -*- mode: ruby -*-
# vi: set ft=ruby :

API_VERSION = "2"
DOMAIN = "nip.io"
PRIVATE_KEY = "~/.ssh/id_rsa"
PUBLIC_KEY = '~/.ssh/id_rsa.pub'
CENTOS_IP = '192.168.50.6'
CENTOS_BOX = 'centos/7'
UBUNTU_IP = '192.168.50.7'
UBUNTU_BOX = 'generic/ubuntu1704'

Vagrant.configure(API_VERSION) do |config|

config.vm.define "centos" do |centos|
centos.vm.box = CENTOS_BOX
centos.vm.network "private_network", ip: CENTOS_IP
centos.vm.host_name = CENTOS_IP...