Git Product home page Git Product logo

et_nat-cookbook's Introduction

et_nat cookbook

Build Status Cookbook Version

A cookbook to provide a NAT for an EC2 VPC (with HA if desired)

Requirements

  • An EC2 VPC
  • 1 VPC node for a simple NAT or 3 VPC nodes for HA

Usage

When creating instances using this cookbook, in order to assign a public IP address in your VPC, you’ll want to use a command like this:

knife ec2 server create \
    -E prod \
    -N prod-nat \
    -s subnet-xxxxxxxx \
    -f c3.large \
    -g sg-xxxxxxxx \
    -r "recipe[xyz]" \
    --iam-profile nat-ha \
    --associate-public-ip

The --associate-public-ip is especially crucial, as otherwise, the instance will be unable to connect out, nor will it function as a NAT.

Network Configuration

Attributes

  • ['nat']['yaml']['mocking']: Default value is true
  • ['nat']['yaml']['monitor_enabled']: Default value is false
  • ['nat']['search_string'] = Default value is 'run_list:recipe\[et_nat\]'

Recipes

default

  • Installs Fog for making AWS API calls
  • Uses the other two recipes in this cookbook to set up the NAT mechanisms

ha

  • Provides mechanisms for maintaining high availability of a cluster of NAT instances using Chef Search & a NAT monitor script
  • Can set up snitch-style monitoring using Cronitor
    • Specify monitor_token and monitor_opts in your YAML config to create a new Cronitor monitor
    • Specify monitor_code to use an existing Cronitor monitor
    • See the cronitor gem docs for details on what these fields expect

iptables

  • Does the bulk of the work to set up the NAT

Author

Author:: EverTrue ([email protected])

et_nat-cookbook's People

Contributors

eherot avatar jeffbyrnes avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.