Automation: Making the Best Choice for Your Organization · Modules Ansible Core Modules shipped...

Preview:

Citation preview

Automation: Making the Best Choice for Your Organization

Subheading goes here

Steve ClatterbuckInfrastructure Architect, Crossvale Inc4/7/2018

Lee RichSr. Specialist Solution Architect, Red Hat4/7/2018

Steve ClatterbuckInfrastructure Architect, Crossvale Inc

Bio

● Recovering Pupp-aholic

● Over 12 years in the SysAdmin Space

● Not a Developer :)

● Specialize in “Infrastructure as Code”

● 5 Years experience with Puppet Enterprise

Lee RichSr. Solutions Architect Specialist, Red Hat

Bio

● Certified pre-owned Puppeteer (Former Puppet SA)

● Former Red Hat SA - RHCE

● Former SysAdmin

● Former Cisco Network Engineer

● Over 25 years in the IT space

What Automation Tool is Right for your organization?

● Do I want a tool that’s complicated to do simple and complex

tasks?

● Do I want a tool that’s simple, to do simple and complex tasks?

Don't Freak out!!!!

What is Puppet?

● Agent based automation tool (Pull)

● Uses Master/Slave configuration model

● Written in a C++ and Clojure (used to be

Ruby)

● Uses a Ruby-like DSL language for writing

manifests

● Uses facter to gather facts about systems

Likes and Dislikes of Puppet

Likes

● Letting you define the state of your

infrastructure

● Reporting dashboard.

● Although not as powerful, beginners can

use the console to group nodes, and apply

modules fairly easily.

● If you know what you’re doing, Hiera is

very powerful, though, it’s complicated.

Dislikes

● Hiera is complicated

● The DSL is really picky, and hard for some

people to pick up, which can scare folks

away

● Documentation could use some cleanup

● Maintaining the Masters is a pain.

● The configuration that you really need to

run is very complicated (at least for me)

● Order of execution can be a pain to deal

with

What is Ansible?

● Push based automation tool

● Can really be run from anywhere

● Written in a Python backend

● Uses YAML for Playbooks, which are very

easy to ready

● Built in tools to gather facts, and can

utilized other tools, such as Facter to

gather facts

Likes and Dislikes of Ansible

Likes

● Installed via a simple package, which can

really be used on any machine.

● Doesn’t rely on a master

● Executes tasks in Order

● EASY to get up and running on. It’s

designed to be easily learned.

● As a sysadmin, you have the control, do

the things, when the things need to be

done, without relying on check ins

Dislikes

● I personally don’t have any

Why did I convert to Ansible?

The Great Debate.. Push vs Pull

Push

● In cases like Ansible, no agents are

required

● Typically gives you the ability to do what

you want to do, whenever you want to do

it, which as a sysadmin, that’s exactly

what I want

● With Ansible, you can run it from any

machine. No need for a master

Pull

● Typically relies on an agent or a script to

fetch configurations

● Like any other software, you’re

responsible for maintaining those agents

● Relies on a master to pull configurations

from

● Agent check in is often ten’s of minutes

apart

The Learning Curve

Ansible

● Know SSH or WinRM

● Ability to read yaml, and create simple

plays

● Create an inventory file, ensure

connectivity

● Execute Play

ModulesAnsible Core Modules shipped with install

Ansible Modules

● 1500+ modules ship in the module

library with Ansible (no need to

download externally)

● Provides default Modules to interface

with many technologies

● Ansible Galaxy is also accessible to

download community modules

Network DevicesManaging Network Devices with Ansible

Ansible

● Agentless, no proxy server required

● 33+ Network Vendors provided out of

the box

● Manage Network Devices the same way

you manage servers

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

1. Puppet Stepsa. Set up and configure an Open Source Puppet Master, and Puppet DB (easier said than done)

b. Put in request for firewall team to open the required ports (8140 will give you basic communication)

c. Enable required agent repos are available on the Puppet Master (RHEL, Ubuntu, SUSE, AIX, Solaris,

etc)

d. Ensure agents are on all nodes in the Raleigh Datacenter

e. Sign Certificates on Master, or configure autosigning

f. Only real option for node classification is using Hiera or an External ENC

g. Come up with Plan to distribute Custom Facts to identify which servers are in Raleigh DC (external

facts, pluginsync, etc)

h. Create a facts distribution module

i. Download NTP Module from the forge, and make sure it’s in your hiera.yaml file

Example Hiera Hierarchy

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

I really hope this works

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

1. Ansible Stepsa. Install ansible package via yum

b. Ensure SSH is open to Raleigh DC (Most environments have this in place)

c. Create a host file, add Raleigh servers

d. Download NTP Role from Galaxy

e. Write 3 lines of yaml

f. Execute Play

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

Ansible

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

Ansible

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

Ansible

Scenero: NTP in Puppet vs Ansibe

Task: Deploy NTP configs to Raleigh Datacenter in Production Environment using Open Source

Solutions

Ansible

$ ansible-playbook ntp.yaml

We’re done!!!!!!!

Demo Time!

Goals

1. Infrastructure Provisioning in AWS using

Ansible

2. Deploy a Webserver, a Database server

based on AWS tags used in the task above

3. Apply users to new servers using Ansible

Tower with Ansible Dynamic inventory

scripts.

plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

THANK YOU

Recommended