Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
Infrastructure as Code Cookbook

You're reading from   Infrastructure as Code Cookbook Automate complex infrastructures

Arrow left icon
Product type Paperback
Published in Feb 2017
Publisher Packt
ISBN-13 9781786464910
Length 440 pages
Edition 1st Edition
Arrow right icon
Authors (2):
Arrow left icon
Stephane Jourdan Stephane Jourdan
Author Profile Icon Stephane Jourdan
Stephane Jourdan
Pierre Pomès Pierre Pomès
Author Profile Icon Pierre Pomès
Pierre Pomès
Arrow right icon
View More author details
Toc

Table of Contents (18) Chapters Close

Infrastructure as Code (IAC) Cookbook
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
1. Vagrant Development Environments FREE CHAPTER 2. Provisioning IaaS with Terraform 3. Going Further with Terraform 4. Automating Complete Infrastructures with Terraform 5. Provisioning the Last Mile with Cloud-Init 6. Fundamentals of Managing Servers with Chef and Puppet 7. Testing and Writing Better Infrastructure Code with Chef and Puppet 8. Maintaining Systems Using Chef and Puppet 9. Working with Docker 10. Maintaining Docker Containers Index

Index

A

  • agent version
    • reference link / There's more…
  • Alpine Linux alternative
    • used, for Go program / Using the Alpine Linux alternative for a Go program
  • Alpine Linux image / Starting from an Alpine Linux image
  • Amazon EC2 account
    • reference link / Getting ready
  • Amazon EC2 AMI Locator
    • reference link / How to do it…
  • Amazon Machine Image (AMI) / How to do it…
  • Amazon Web Services (AWS) / Introduction
    • cloud-init, used / Using cloud-init on AWS, Digital Ocean, or OpenStack, Using cloud-init on Amazon Web Services
  • AMI IDs
    • reference link / How to do it…
  • Ansible
    • used, with Vagrant to create Docker host / Using Ansible with Vagrant to create a Docker host, How to do it…, There's more…
    • Docker playbook, Vagrant used / A simple Ansible Docker playbook for Vagrant
    • applying, from Vagrant / Apply Ansible from Vagrant
  • Apache cookbook
    • generating / Generating an empty Apache cookbook
    • uploading / Uploading the cookbook
    • applying / Applying the cookbook
  • Apache service
    • enabling / Enabling and starting Apache service
    • starting / Enabling and starting Apache service
  • application deployment
    • automating / Automating application deployment (a WordPress example), There's more…
    • dependencies, including / Including dependencies
    • database, creating / Creating the application's database
    • from git / Deploying an application from git or GitHub
    • from GitHub / Deploying an application from git or GitHub
  • attributes, Chef
    • references / See also
  • automated Docker build
    • creating / The workflow for creating automated Docker builds from Git, How to do it…
    • creating, on Docker Hub / Creating an automated build on the Docker Hub
  • AWS CLI
    • reference link / Getting ready
  • AWS CloudWatch page
    • reference link / How to do it…
  • AWS Provider
    • configuring, in Terraform / Configuring the Terraform AWS provider, How to do it…, How it works…
  • AWS S3 Console
    • reference link / How to do it…
  • AWS security groups
    • used, with Terraform / Using AWS security groups with Terraform, How to do it…

B

  • Bash
    • executing, in an Ubuntu 16.04 container / Running Bash in an Ubuntu 16.04 container
  • Bash Automated Testing System (BATS) / Testing Docker containers with BATS
    • Docker container, testing / Testing Docker containers with BATS, How to do it…
    • tests, creating / Creating BATS tests
    • reference link / See also
  • Bats testing framework
    • reference link / See also
  • Bento Project
    • reference link / See also
  • Berkshelf
    • cookbooks, managing / Managing external Chef cookbooks and Puppet modules, How to do it…
    • MySQL dependencies, used / Using the official MySQL cookbook and its dependencies with Berkshelf
    • MySQL cookbook, used / Using the official MySQL cookbook and its dependencies with Berkshelf
    • used, for uploading cookbook dependencies / Uploading cookbook dependencies using Berkshelf
    • reference link / See also
  • block storage volumes
    • creating, on OpenStack / Creating block storage volumes on OpenStack
  • Bundler
    • used, for creating ServerSpec environment / Creating a ServerSpec environment using Bundler

C

  • cAdvisor tool / Using Google's cAdvisor tool
    • reference link / See also
  • cAdvisor tool, storage backends
    • reference link / See also
  • CentOS 7 EC2 instance
    • provisioning, Terraform used with Chef / Provisioning a CentOS 7 EC2 instance with Chef using Terraform, How to do it…, There's more…
    • creating / Creating the EC2 instance
    • connection information, passing / Passing connection information
    • Chef information, sharing / Giving Chef information
  • CentOS 7 servers, on AWS
    • reference link / Provisioning a CentOS 7 EC2 instance with Chef using Terraform
  • CentOS 7.2 / Configuring Test Kitchen
  • CentOS 7.x
    • used, with VMware / Using a disposable CentOS 7.x with VMware in seconds, How it works…
  • CentOS image / Starting from a CentOS image
    • starting / Starting from a CentOS image
  • CentOS mirror
    • references / Testing a successful Chef run context
  • centrally share data
    • data bag, used / Centrally sharing data using a Chef data bag and Hiera with Puppet, How to do it…, There's more…
  • Chef
    • CentOS 7 EC2 instance, provisioning Terraform used / Provisioning a CentOS 7 EC2 instance with Chef using Terraform, How to do it…, There's more…
    • about / Getting started (notions and tools)
    • executing / Running Chef, There's more…
    • client mode / Running Chef
    • server mode / Running Chef
    • -Solo mode / Running Chef
    • plugins / Chef plugins
    • organizations / Chef organizations
    • nodes / Chef nodes
    • environments / Chef environments
    • roles / Chef roles
    • resources / Chef resources
    • recipes / Chef recipes
    • cookbooks / Chef cookbooks
    • run list / Chef run list
    • used, for installing packages / Installing packages, How to do it…
    • used, for managing system services / Managing services, How to do it…
    • used, for managing templates / Managing files, directories, and templates
    • used, for managing files / Managing files, directories, and templates
    • used, for managing directories / Getting ready
    • used, for handling dependencies / Handling dependencies, How to do it…, There's more…
    • using, team working / Team working using Chef and git
  • Chef client
    • deploying, cloud-init used / Deploying Chef Client from start to finish using cloud-init
    • bootstrapping, on node / Automatically bootstrapping a Chef client and a Puppet agent, How to do it…, There's more…
    • using, as daemon / Using the Chef client as a daemon
  • Chef Development Kit
    • reference link / Berkshelf and Vagrant
  • Chef Development Kit (Chef DK) / Introduction
    • installing / Installing the Chef Development kit and Puppet Collections, How to do it…
    • URL, for downloading / How to do it…
    • contents / Chef DK contents, There's more…
    • Chef tool / Chef DK contents
    • Berkshelf tool / Chef DK contents
    • Test-Kitchen tool / Chef DK contents
    • ChefSpec tool / Chef DK contents
    • FoodCritic tool / Chef DK contents
    • URL, for installation / See also
    • reference link / See also
  • Chef environments
    • creating / Creating environments, How to do it…, There's more...
    • production environment, creating / Creating a production environment
    • environment, setting to node / Setting an environment to a node
    • node, bootstrapping with environment / Bootstrapping a node with an environment
    • cookbook, fixing for environment / Fixing cookbook versions for an environment
    • attributes, overriding for environment / Overriding attributes for an environment
    • environment, accessing from recipe / Accessing the environment from a recipe
    • manual environment, creating in Puppet server / Manual environment creation in the Puppet server
    • node environment, selection / Node environment selection
    • environment, obtaining from manifesrs / Getting the environment from manifests
    • r10k / The dynamic way – r10k
    • reference link / See also
  • Chef metadata.rb
    • reference link / See also
  • Chef package
    • reference link / See also
  • Chef run context
    • testing / Testing a successful Chef run context
  • Chef Server
    • URL / How to do it…
  • Chef Server organization
    • URL / Configuring Chef against a Chef Server organization using cloud-init
  • Chef service
    • reference link / See also
  • ChefSpec
    • reference link / See also
  • Chef Supermarket
    • URL / Managing external Chef cookbooks and Puppet modules
  • Chef Vault
    • references / See also
  • Chef Vault encryption
    • using / Using Chef Vault encryption, How to do it…
    • accessing from cookbook / Accessing the encrypted vault from a cookbook
  • Chef version upgrades
    • simulating, Vagrant used / Simulating Chef upgrades using Vagrant, How to do it…, There's more…
    • Vagrant omnibus Chef plugin / Vagrant Omnibus Chef plugin
    • Chef recipe / A sample Chef recipe
    • integrating / Vagrant and Chef integration
    • Vagrant, integrating / Vagrant and Chef integration
    • testing / Testing the Chef version update
    • Vagrant VMs, controlling / Controlling default Vagrant VMs
    • Berkshelf / Berkshelf and Vagrant
    • Vagrant / Berkshelf and Vagrant
    • Test-Kitchen, testing / Testing with Test Kitchen
  • Chef Zero / Configuring Test Kitchen
  • cloud-init
    • used, on Amazon Web Services (AWS) / Using cloud-init on AWS, Digital Ocean, or OpenStack, Using cloud-init on Amazon Web Services
    • used, on Digital Ocean / Using cloud-init on AWS, Digital Ocean, or OpenStack, Using cloud-init on Digital Ocean
    • used, on OpenStack / Using cloud-init on AWS, Digital Ocean, or OpenStack, Using cloud-init on OpenStack
    • combining, for IaaS / Combining cloud-init and Terraform for any IaaS
    • used, for handling files / Handling files using cloud-init, How to do it…
    • used, for configuring server time zone / Configuring the server's time zone using cloud-init, How to do it…
    • used, for managing users / Managing users, keys, and credentials using cloud-init, How to do it…
    • used, for managing keys / Managing users, keys, and credentials using cloud-init, How to do it…
    • used, for managing credentials / Managing users, keys, and credentials using cloud-init, How to do it…
    • used, for managing repositories / Managing repositories and packages using cloud-init, How to do it…
    • used, for managing packages / Managing repositories and packages using cloud-init, How to do it…
    • used, for executing commands / Running commands during boot using cloud-init, How to do it…
    • used, for configuring CoreOS / Configuring CoreOS using cloud-init
    • used, for configuring etcd key value store / Configuring etcd using cloud-init
    • used, for configuring fleet / Configuring fleet using cloud-init
    • used, for configuring update strategy / Configuring the update strategy using cloud-init
    • used, for configuring locksmith / Configuring locksmith using cloud-init
    • used, for configuring systemd units / Configuring systemd units using cloud-init
    • used, for configuring flannel / Configuring flannel using cloud-init
    • used, for deploying Chef client / Deploying Chef Client from start to finish using cloud-init
    • used, for deploying Chef omnibus installer / Deploying the Chef omnibus installer using cloud-init
    • Chef client, authenticating against Chef Server organization / Configuring Chef against a Chef Server organization using cloud-init
    • used, for applying Chef cookbook at bootstrap / Applying a Chef cookbook at bootstrap using cloud-init
    • used, for deploying remote Docker server / Deploying a remote Docker server using cloud-init
    • timezone, setting on CoreOS / Setting the timezone on CoreOS using cloud-init
    • Docker TCP socket, enabling for network access / Enabling Docker TCP socket for network access, There's more...
  • CloudWatch Logs / Enabling CloudWatch Logs for Docker with Terraform
    • enabling, for Docker with Terraform / Enabling CloudWatch Logs for Docker with Terraform, How to do it…
    • Docker logging driver / Amazon CloudWatch Logs Docker logging driver
  • code
    • listing / Linting the code
  • commands
    • executing, cloud-init used / Running commands during boot using cloud-init, How to do it…
  • compute instances
    • creating, on OpenStack / Creating compute instances on OpenStack
  • consistent systems
    • maintaing, scheduled convergence used / Maintaining consistent systems using scheduled convergence, There's more…
    • Chef client, using as daemon / Using the Chef client as a daemon
    • convergence interval time, tweaking / Tweaking the convergence interval time
    • Chef client, executing as cron / Running the Chef client as a cron
    • Chef cron job, tweaking / Tweaking the Chef cron job
  • Consul
    • URL / Sharing remotely with Consul
  • container
    • building, with utilities / Building a container with utilities
    • debugging, sysdig used / Debugging containers using sysdig, How to do it...
  • contextual defaults
    • used, with Terraform / Using contextual defaults with Terraform, How to do it…
  • Continuous Integration (CI) / Maintaining a clean and standardized Terraform code
  • Continuous Integration system
    • connecting / The workflow for connecting the Continuous Integration (CI) system, How to do it…
  • cookbook dependencies
    • including / Including dependencies in a role
    • uploading, Berkshelf used / Uploading cookbook dependencies using Berkshelf
  • Cookstyle
    • used, for linting infrastructure code / Linting Chef code with Foodcritic and Puppet code with puppet-lint, There's more…, Documentation
    • about / Cookstyle
  • CoreOS
    • Docker containers, used with Vagrant / How to do it…
    • reference link / There's more…, Configuring CoreOS using cloud-init
    • configuring, cloud-init used / Configuring CoreOS using cloud-init
    • etcd key value store, configuring cloud-init used / Configuring etcd using cloud-init
    • fleet, configuring cloud-init used / Configuring fleet using cloud-init
    • update strategy, configuring cloud-init used / Configuring the update strategy using cloud-init
    • locksmith, configuring cloud-init used / Configuring locksmith using cloud-init
    • systemd units, configuring cloud-init used / Configuring systemd units using cloud-init
    • flannel, configuring cloud-init used / Configuring flannel using cloud-init
  • CoreOS Clair
    • reference link / See also
  • CoreOS cluster
    • reference link / Configuring etcd using cloud-init
  • CoreOS cluster members
    • creating / Creating the CoreOS cluster members
  • CoreOS infrastructure
    • provisioning, on Digital Ocean with Terraform / Provisioning a complete CoreOS infrastructure on Digital Ocean with Terraform
    • SSH keys, handling / Handling the SSH key
    • CoreOS cluster members, creating / Creating the CoreOS cluster members
    • output, adding / Adding useful output
    • DNS Integration / Dynamic DNS Integration
    • Cloud-Init, integrating / Integrating cloud-init
    • dynamic StatusCake monitoring, integrating / Integrating dynamic StatusCake monitoring
  • credentials
    • managing, cloud-init used / Managing users, keys, and credentials using cloud-init, How to do it…

D

  • data
    • sharing, with container / Sharing data with a container
  • data bag
    • used, for centrally share data / Centrally sharing data using a Chef data bag and Hiera with Puppet, How to do it…, There's more…
  • data bag, Chef
    • reference link / See also
  • data bags
    • stubbing, for searches / Stubbing data bags for searches
  • data sources
    • using / Using data sources, templates, and local execution, How to do it…, Data and templates
  • Debian image / Starting from a Debian image
  • dependencies
    • handling, Chef used / Handling dependencies, How to do it…, There's more…
  • deploy resource documentation
    • reference link / See also
  • Digital Ocean
    • CoreOS infrastructure, provisioning with Terraform / Provisioning a complete CoreOS infrastructure on Digital Ocean with Terraform
    • cloud-init, used / Using cloud-init on AWS, Digital Ocean, or OpenStack, Using cloud-init on Digital Ocean
  • directories
    • managing, Chef used / Managing files, directories, and templates
    • managing, from template / Managing dynamic files and directories from a template, There's more…
  • directory creation
    • testing / Testing directory creation
  • directory resource, Chef
    • reference link / See also
  • discovery token
    • reference link / Configuring etcd using cloud-init
  • Docker
    • used, with Vagrant / Using Docker with Vagrant
    • NGINX Docker container, used through Vagrant / Using NGINX Docker container through Vagrant
    • ports, exposing in Vagrant / Exposing Docker ports in Vagrant
    • local folder, sharing through Vagrant / Sharing folders with Docker through Vagrant
    • used, in Vagrant for Ghost blog behind NGINX / Using Docker in Vagrant for a Ghost blog behind NGINX, How to do it…
    • Compose equivalent / A Docker Compose equivalent
    • CloudWatch Logs, enabling with Terraform / Enabling CloudWatch Logs for Docker with Terraform, How to do it…
    • used, with Terraform / Using Docker with Terraform, How to do it…
    • deploying, with Chef / Deploying Docker with Chef
    • reference link / There's more…
    • networking with / Networking with Docker, How to do it…
  • Docker-api
    • reference link / See also
  • Docker base image
    • selecting / Choosing the right Docker base image
  • Docker Cloud
    • vulnerabilities, scanning with / Scanning for vulnerabilities with Quay.io and Docker Cloud, How to do it…
  • Docker Compose
    • orchestrating with / Orchestrating with Docker Compose, How to do it…
    • extending / Extending Docker Compose
    • reference link / See also
    • using / Using docker-compose
  • Docker container
    • testing, with BATS / Testing Docker containers with BATS, How to do it…
  • Docker containers
    • used, on CoreOS with Vagrant / Using Docker containers on CoreOS with Vagrant, How to do it…
  • Dockerfile
    • reference link / See also
    • linting / Linting a Dockerfile
  • Dockerfile_lint / Dockerfile_lint
  • Docker host
    • creating, Ansible used with Vagrant / Using Ansible with Vagrant to create a Docker host, How to do it…, There's more…
  • Docker Hub
    • references / Using a private registry
  • Docker image
    • size, optimizing / Optimizing the Docker image size, How to do it…
    • versioning, with tags / Versioning Docker images with tags, How to do it…
    • reference link / See also
  • Docker images
    • building, Git tags used / Building Docker images using Git tags
  • Docker logs
    • sending, to AWS CloudWatch logs / Sending Docker logs to AWS CloudWatch logs, How to do it…
  • Docker Network / Docker networks
  • Docker Registry
    • reference link / See also
  • Docker run
    • reference link / See also
    • using / Using the Docker run
  • Docker Security Scanning
    • using / Using Docker Security Scanning
  • docker stats command
    • using / Using docker stats
  • Docker Store
    • reference link / See also
  • Docker Swarm cluster
    • using / Using the Docker Swarm cluster
  • Docker Swarm manager
    • bootstraping, on Packet / Bootstraping a Docker Swarm manager on Packet using Terraform
  • Docker Swarm nodes
    • bootstraping, on Packet / Bootstraping Docker Swarm nodes on Packet using Terraform
    • bootsraping, on Packet / Bootstraping Docker Swarm nodes on Packet using Terraform
  • Docker system
    • information, monitoring / Monitoring and getting information out of Docker, How to do it...
    • information, obtaining / Monitoring and getting information out of Docker, How to do it...
  • Docker TCP socket
    • enabling, for network access / Enabling Docker TCP socket for network access, There's more...
  • Domain Specific Language (DSL) / There's more…
  • droplet / Using cloud-init on Digital Ocean
  • DVM
    • reference link / How to do it…
  • dynamic code
    • notifications, used / More dynamic code using notifications, How to do it…, There's more…
  • dynamic container
    • creating / Creating more dynamic containers, How to do it…
    • auto-configuring / Auto-configuring dynamic containers, How to do it…
  • dynamic file
    • managing, from template / Managing dynamic files and directories from a template, There's more…
  • dynamic multiple hosts networking
    • simulating / Simulating dynamic multiple host networking, How to do it…
    • deployments, speed up with Linked clones / Speed up deployments with linked clones
    • named NAT Networks, used / Using named NAT networks
  • dynamic StatusCake monitoring
    • integrating / Integrating dynamic StatusCake monitoring

E

  • Elastic Container Registry (ECR) / Creating private Docker repositories with Terraform
  • Embedded Ruby (ERB) template / Managing dynamic files and directories from a template
  • encrypted data bags
    • using / Using Chef encrypted data bags and Hiera-eyaml with Puppet, How to do it…, There's more…
    • shared secret / Encrypting data bags with a shared secret
    • accessing in CLI / Accessing an encrypted data bag in the CLI
    • using, from recipe / Using an encrypted data bag from a recipe
    • Puppet server, preparing / Preparing the Puppet server
    • workstation, preparing / Preparing the workstation
    • MySQL root password, securing / Securing the MySQL root password
  • errors
    • intercepting, in tests / Intercepting errors in tests
  • etcd
    • URL, for configuring / Integrating cloud-init
  • etcd key value store
    • configuring, cloud-init used / Configuring etcd using cloud-init

F

  • FC003, FoodCritic
    • references / Foodcritic
  • Fedora image / Starting from a Fedora image
  • file creation
    • testing / Testing file creation
  • file resource, Chef
    • reference link / See also
  • files
    • handling, cloud-init used / Handling files using cloud-init, How to do it…
    • managing, Chef used / Managing files, directories, and templates
  • files content
    • testing / Testing for files existence and content
  • files existence
    • testing / Testing for files existence and content
  • flannel
    • configuring, cloud-init used / Configuring flannel using cloud-init
  • fleet
    • configuring, cloud-init used / Configuring fleet using cloud-init
  • FoodCritic
    • used, for linting infrastructure code / Linting Chef code with Foodcritic and Puppet code with puppet-lint, There's more…, Documentation
    • about / Foodcritic
    • URL / Foodcritic
  • free Hosted Chef server account
    • creating / Creating a free hosted server Chef account and a Puppet server, There's more…
    • using / Creating a free hosted server Chef account and a Puppet server, There's more…
    • URL / How to do it…
  • functional roles
    • creating / Creating functional roles, How to do it…
    • reference link / See also

G

  • git
    • using, team working / Team working using Chef and git
  • GitHub
    • managing, with Terraform / Managing GitHub with Terraform, How to do it…
    • configuring / Configuring GitHub
    • organization, users adding to / Adding users to the GitHub organization
    • teams, adding / Adding GitHub teams
    • access rights, setting / Setting Git repository access rights
    • configuring, to Docker-Hub-automated build pipeline / Configuring a GitHub to a Docker Hub-automated build pipeline
  • GitHub Flow
    • about / Team workflow example
    • reference link / Team workflow example
  • GitHub Hubot
    • reference link / Managing Heroku apps and add-ons using Terraform
  • GitLab CE, and CI Runners, OpenStack
    • provisioning / Provisioning a GitLab CE + CI runners on OpenStack, Getting ready
  • Git repository
    • reference link / The dynamic way – r10k
  • Git tags
    • used, for building Docker images / Building Docker images using Git tags
  • Golang application
    • building, with Docker / Building and using Golang applications with Docker
    • used, with Docker / Building and using Golang applications with Docker
  • golang Docker image
    • used, to cross-compile Go program / Using the golang Docker image to cross-compile a Go program
    • used, to build Go program / Using the golang Docker image to build and ship a Go program
    • used, to ship Go program / Using the golang Docker image to build and ship a Go program
  • Golang image / Starting from a Golang image
  • Google's cAdvisor tool
    • using / Using Google's cAdvisor tool
  • Google Cloud Console
    • reference link / Creating a Google MySQL database instance
  • Google Compute Engine
    • three-tier infrastructure, provisioning on / Provisioning a three-tier infrastructure on Google Compute Engine
  • Google Compute Firewall rule
    • creating / Creating a Google Compute Firewall rule
  • Google Compute HTTP instances
    • creating / Creating Google Compute HTTP instances
  • Google Compute instances
    • load balancing / Load balancing Google Compute instances
  • Google MySQL Database
    • instance, creating / Creating a Google MySQL database instance
  • Guest Additions / Enabling VirtualBox Guest Additions in Vagrant

H

  • Hadolint / Hadolint
  • HashiCorp Atlas
    • reference link / Getting ready
  • HashiCorp Configuration Language (HCL) / How it works…
  • Heroku
    • about / Managing Heroku apps and add-ons using Terraform
    • apps. managing Terraform used / Managing Heroku apps and add-ons using Terraform
    • addons. managing Terraform used / Managing Heroku apps and add-ons using Terraform
    • URL / Getting ready
    • application, creating with Terraform / Creating a Heroku application with Terraform
    • addons, adding Terraform used / Adding Heroku add-ons using Terraform
    • using, with Terraform / Using Heroku with Terraform
  • Hiera
    • about / Preparing the Puppet server
    • references / See also
  • HTTP
    • about / HTTP
  • httpd package installation
    • testing / Testing a package installation, Testing a package installation

I

  • IaaS
    • cloud-init, combining / Combining cloud-init and Terraform for any IaaS
    • Terraform, combining / Combining cloud-init and Terraform for any IaaS
  • IAM Policies
    • reference link / How to do it…
  • IAM users
    • managing, with Terraform / Managing IAM users with Terraform, How to do it…, There's more…
    • Simple Storage Service (S3) access / An IAM user for S3 access
    • restrictions, testing / Testing the restrictions
    • EC2 in read-only / An IAM user for EC2 in read-only
    • CloudWatch Logs / An application user IAM – CloudWatch Logs
  • Identity and Access Management (IAM) / Managing IAM users with Terraform
  • infrastructure code
    • linting, FoodCritic used / Linting Chef code with Foodcritic and Puppet code with puppet-lint, There's more…, Documentation
    • linting, Cookstyle used / Linting Chef code with Foodcritic and Puppet code with puppet-lint, There's more…, Documentation
    • unit testing, with ChefSpec / Unit testing with ChefSpec and rspec-puppet, How to do it…, There's more…
    • testing, Test Kitchen used / Testing infrastructure with Test Kitchen for Chef and Beaker for Puppet, How to do it…
    • integration testing, with ServerSpec / Integration testing with ServerSpec, Getting ready, There's more…
  • infrastructure environments
    • simulating, Terraform used / Simulating infrastructure changes using Terraform, How to do it…
    • planning / Planning
    • changes, simulating / Quickly simulating changes
    • change, targeting / Targeting for a specific change
  • infrastructure TDD
    • tests, writing / Infrastructure TDD – writing tests first

J

  • Java image / Starting from a Java image

K

  • key pair
    • creating, on OpenStack / Creating a key pair on OpenStack
  • keys
    • managing, cloud-init used / Managing users, keys, and credentials using cloud-init, How to do it…

L

  • Laravel
    • working, on LAN / Showing your work on the LAN while working with Laravel, How to do it…, There's more…
    • used, for configuring NGINX / A sample NGINX configuration for Laravel
    • shell provisioning / Simple shell provisioning
    • provision, enabling / Enable provisioning
    • shared folder / Shared folder
    • public LAN networking / Public LAN Networking
  • Lightweight Resources and Providers (LWRP)
    • reference link / Using the official MySQL cookbook and its dependencies with Berkshelf
  • Linux, Apache, MySQL, PHP (LAMP) server / Introduction
  • Linux distributions container image / Linux distributions container image size table
  • listening ports
    • testing / Testing for listening ports
  • local execution
    • using / Using data sources, templates, and local execution, How to do it…, Data and templates
  • locksmith
    • configuring, cloud-init used / Configuring locksmith using cloud-init
    • about / Configuring locksmith using cloud-init
  • log group / How to do it…

M

  • Makefile
    • reference link / See also
    • using / Using Makefile to glue it all together
  • MariaDB cookbook
    • creating / Creating a MariaDB cookbook
  • MariaDB service
    • starting / Enabling and starting the MariaDB service, There's more…
    • enabling / Enabling and starting the MariaDB service, There's more…
  • meaningful outputs
    • generating, with Terraform / Generating meaningful outputs with Terraform, How to do it…, There's more…
  • Message Of The Day (MOTD) file / How to do it…
  • metadata.rb, Chef
    • reference link / See also
  • multi-provider Vagrant environments
    • enabling / Enabling multiprovider Vagrant environments, How to do it…
  • multimachine recovery / Multi-machine recovery
  • multiple network
    • connecting, to container / Connecting multiple networks for one container
  • MySQL cookbook
    • used, with Berkshelf / Using the official MySQL cookbook and its dependencies with Berkshelf
    • reference link / Using the official MySQL cookbook and its dependencies with Berkshelf, See also
  • MySQL dependencies
    • used, with Berkshelf / Using the official MySQL cookbook and its dependencies with Berkshelf
  • MySQL deployment
    • testing / Testing MySQL deployment, There's more…

N

  • networked 3-tier architecture app
    • simulating, with Vagrant / Simulating a networked three-tier architecture app with Vagrant, How to do it…
    • database / Tier 3 – the database
    • application servers / Tier 2: the application servers
    • NGINX reverse proxy / Tier 1: the NGINX reverse proxy
  • networking
    • with Docker / Networking with Docker, How to do it…
  • Nginx
    • executing, in Nginx container / Running Nginx in a container
  • nginx-proxy
    • reference link / Extending Docker Compose
  • nginx-proxy container
    • reference link / Using Docker with Terraform
  • node
    • Chef client, bootstrapping on / Automatically bootstrapping a Chef client and a Puppet agent, How to do it…, There's more…
  • Node.js application / The Node.js application
  • Node JS image / Starting from a Node JS image
  • notifications
    • used, for dynamic code / More dynamic code using notifications, How to do it…, There's more…
  • notifications, Chef
    • reference link / See also
  • ntegration
    • monitoring, with StatusCake / External monitoring integration with StatusCake, How to do it…
  • NVM
    • reference link / How to do it…

O

  • object storage container
    • creating, on OpenStack / Creating an object storage container on OpenStack
  • Ohai
    • system information, accessing / Accessing and manipulating system information with Ohai, How to do it…
    • system information, manipulating / Accessing and manipulating system information with Ohai, How to do it…
    • information, accessing from Chef recipe / Accessing Ohai information from a Chef recipe, There's more…
  • Ohai plugins
    • reference link / See also
  • omnibus installer / Deploying Chef Client from start to finish using cloud-init
  • OpenStack
    • GitLab CE, and CI Runners, provisioning on / Provisioning a GitLab CE + CI runners on OpenStack, How to do it…
    • provider, configuring / Configuring the OpenStack provider
    • key pair, creating / Creating a key pair on OpenStack
    • security group, creating / Creating a security group on OpenStack
    • block storage volumes, creating / Creating block storage volumes on OpenStack
    • compute instances, creating / Creating compute instances on OpenStack
    • object storage container, creating / Creating an object storage container on OpenStack
    • cloud-init, used / Using cloud-init on AWS, Digital Ocean, or OpenStack, Using cloud-init on OpenStack
  • OVH
    • URL / Getting ready

P

  • packages
    • managing, cloud-init used / Managing repositories and packages using cloud-init, How to do it…
    • installing, Chef used / Installing packages, How to do it…
  • Packet
    • scalable Docker Swarm cluster, creating on bare metal / Creating a scalable Docker Swarm cluster on bare metal with Packet
    • URL / Creating a scalable Docker Swarm cluster on bare metal with Packet
    • project, creating Terraform used / Creating a Packet project using Terraform
    • SSH keys, handling Terraform used / Handling Packet SSH keys using Terraform
    • Docker Swarm manager, bootstraping / Bootstraping a Docker Swarm manager on Packet using Terraform
    • Docker Swarm nodes, bootstraping / Bootstraping Docker Swarm nodes on Packet using Terraform
  • PHP
    • URL / Managing a simple static file
  • PHP cookbook
    • creating / Creating a PHP cookbook, There's more…, See also
  • PHP Docker image / Starting from a PHP image
  • platform
    • supporting / Supporting another platform
  • Platform-as-a-Service (PaaS) / Managing Heroku apps and add-ons using Terraform
  • PostgreSQL RDS Database
    • creating, Terraform used / Creating a PostgreSQL RDS database with Terraform, How to do it…, There's more…
  • private Docker registry
    • deploying, with S3 storage / Deploying a private Docker registry with S3 storage, How to do it…
  • private Docker repositories
    • creating, Terraform used / Creating private Docker repositories with Terraform, How to do it…
  • private registry
    • using / Using a private registry
  • production
    • deploying to / Deploying to production
  • Project Atomic
    • URL / Dockerfile_lint
  • puppet coding style / Puppet coding style
  • Puppet Collections / There's more…
  • Puppetfile
    • reference link / There's more…
  • Puppet file resource
    • reference link / See also
  • Puppet Hiera
    • reference link / See also
  • PuppetLabs
    • reference link / See also
  • PuppetLabs Mysql module, on Puppet Forge
    • reference link / See also
  • Puppet Language Style
    • reference link / See also
  • Puppet notify
    • reference link / See also
  • Puppet package
    • reference link / See also
  • Puppet packages
    • references / There's more…
  • Puppet r10k
    • reference link / See also
  • Puppet service
    • reference link / See also
  • Puppet version
    • reference link / There's more…
  • Python image / Starting from a Python image

Q

  • Quay.io
    • references / See also
    • vulnerabilities, scanning with / Scanning for vulnerabilities with Quay.io and Docker Cloud, How to do it…

R

  • r10k, Puppet
    • reference link / See also
  • Rbenv
    • reference link / How to do it…
  • README.md file
    • creating / Documentation
  • recipes inclusion
    • testing / Testing recipes inclusion
  • Red Hat's Docker
    • reference link / Starting from a Red Hat Enterprise Linux (RHEL) image
  • Red Hat Entreprise Linux (RHEL) image / Starting from a Red Hat Enterprise Linux (RHEL) image
  • registry / Creating private Docker repositories with Terraform
  • Relational Database Service (RDS) / Getting ready
  • remote commands
    • executing, at bootstrap Terraform used / Executing remote commands at bootstrap using Terraform, How to do it…
  • remote Docker server
    • deploying, cloud-init used / Deploying a remote Docker server using cloud-init
  • repositories
    • managing, cloud-init used / Managing repositories and packages using cloud-init, How to do it…
  • repository existence
    • testing / Testing for repository existence
  • RSpec
    • references / See also
    • reference link / See also
  • Ruby-on-Rails web application
    • deploying, in Docker / Deploying a Ruby-on-Rails web application in Docker, How to do it…
  • Ruby image / Starting from a Ruby image
  • RVM
    • reference link / How to do it…

S

  • S3 backend
    • using / Using an S3 backend
  • scalable Docker Swarm cluster
    • creating, on bare metal with Packet / Creating a scalable Docker Swarm cluster on bare metal with Packet
  • scaleway
    • URL / Creating a scalable Docker Swarm cluster on bare metal with Packet
  • scheduled convergence
    • used, for maintaining consistent systems / Maintaining consistent systems using scheduled convergence, There's more…
  • scratch Docker image
    • using / Using the scratch Docker image
  • Secure Shell (SSH) / How it works…, Using AWS security groups with Terraform
    • about / SSH
  • security group
    • creating, on OpenStack / Creating a security group on OpenStack
  • ServerSpec
    • reference link / There's more…, See also
    • helper script, creating / Creating a ServerSpec helper script
    • environment, creating Bundler used / Creating a ServerSpec environment using Bundler
  • server time zone
    • configuring, cloud-init used / Configuring the server's time zone using cloud-init, Getting ready
  • services status
    • testing / Testing services status
  • service status
    • testing / Testing for service status
  • Simple Storage Service (S3)
    • managing, with Terraform / Managing S3 storage with Terraform, How to do it…, There's more…
    • about / Managing S3 storage with Terraform
  • Spec Helper / The Spec Helper
  • SSH key
    • handling / Handling the SSH key
  • SSH key pair
    • creating, on AWS provider / Creating and using an SSH key pair to use on AWS, How to do it…, There's more…
    • using, on AWS provider / Creating and using an SSH key pair to use on AWS, How to do it…, There's more…
  • staging
    • deploying to / Deploying to staging
  • state file
    • references / Sharing with Git
  • static file
    • managing / Managing a simple static file
  • StatusCake
    • monitoring integration / External monitoring integration with StatusCake, How to do it…
    • URL / Getting ready, Integrating dynamic StatusCake monitoring
    • automated ping monitoring test, creating / Creating an automated ping monitoring test
    • HTTPS test, creating / Creating an HTTPS test
  • subscribes, Chef
    • reference link / See also
  • sysdig
    • used, for debugging container / Debugging containers using sysdig, How to do it...
    • URL, for installation / How to do it...
  • sysdig, examples
    • reference link / See also
  • systemd
    • using / Using systemd
  • systemd socket activation
    • reference link / There's more...
  • systemd units
    • configuring, cloud-init used / Configuring systemd units using cloud-init
  • system information
    • accessing, with Ohai / Accessing and manipulating system information with Ohai, How to do it…
    • manipulating, with Ohai / Accessing and manipulating system information with Ohai, How to do it…
  • system services
    • managing, Chef used / Managing services, How to do it…

T

  • TDD
    • Chef workflow, using / Using a TDD workflow, How to do it…, There's more…
    • about / Using a TDD workflow
  • team workflow
    • example / Team workflow example, Getting ready
    • Git repository, creating / A simple Git repository
    • initial infrastructure code, creating / Initial infrastructure code
    • Terraform code, validating / Terraform code validation
    • infrastructure code commit / Infrastructure code commit
    • pull request, creating / Make a pull request
    • changes, applying / Apply the changes
  • template resource, Chef
    • reference link / See also
  • templates
    • using / Using data sources, templates, and local execution, How to do it…, Data and templates
    • local-exec Terraform provisioner / The local-exec Terraform provisioner
    • configured Ansible, applying / Apply a configured Ansible
    • managing, Chef used / Managing files, directories, and templates
  • templates, using
    • reference link / See also
  • templates creation
    • testing / Testing templates creation
  • Terraform
    • AWS Provider, configuring in / Configuring the Terraform AWS provider, How to do it…, How it works…
    • AWS security groups, used / Using AWS security groups with Terraform, How to do it…
    • used, for creating Ubuntu EC2 instance / Creating an Ubuntu EC2 instance with Terraform, How to do it…
    • meaningful outputs, generating with / Generating meaningful outputs with Terraform, How to do it…, There's more…
    • contextual defaults, used / Using contextual defaults with Terraform, How to do it…
    • Simple Storage Service (S3), managing with / Managing S3 storage with Terraform, How to do it…, There's more…
    • used, for creating private Docker repositories / Creating private Docker repositories with Terraform, How to do it…
    • used, for creating PostgreSQL RDS Database / Creating a PostgreSQL RDS database with Terraform, How to do it…, There's more…
    • CloudWatch Logs, enabling for Docker / Enabling CloudWatch Logs for Docker with Terraform, How to do it…
    • IAM users, managing with / Managing IAM users with Terraform, How to do it…, There's more…
    • infrastructure environments, handling / Handling different environments with Terraform, How to do it…, Setting the production flag
    • tfstate isolated, maintaining / Keeping the tfstate isolated
    • production flag, setting / Setting the production flag
    • used, for provisioning CentOS 7 EC2 instance with Chef / Provisioning a CentOS 7 EC2 instance with Chef using Terraform, How to do it…, There's more…
    • used, for executing remote commands at bootstrap / Executing remote commands at bootstrap using Terraform, How to do it…
    • Docker, used / Using Docker with Terraform, How to do it…
    • used, for simulating infrastructure environments / Simulating infrastructure changes using Terraform, How to do it…
    • infrastructure state, sharing / Teamwork – sharing Terraform infrastructure state, How to do it…
    • sharing, with Git / Sharing with Git
    • remotely, sharing with S3 / Sharing remotely with S3
    • remotely, sharing with Consul / Sharing remotely with Consul
    • state file, sharing / Other state sharing options
    • code, maintaining / Maintaining a clean and standardized Terraform code
    • syntax, validating / Syntax validation
    • style, validating / Style validation
    • Docker container, used / One Makefile to rule them all, How to do it…
    • GitHub, managing / Managing GitHub with Terraform, How to do it…
    • CoreOS infrastructure, provisioning on Digital Ocean / Provisioning a complete CoreOS infrastructure on Digital Ocean with Terraform
    • applying / Applying
    • used, for managing Heroku apps / Managing Heroku apps and add-ons using Terraform
    • used, for managing Heroku addons / Managing Heroku apps and add-ons using Terraform
    • Heroku, application creating / Creating a Heroku application with Terraform
    • used, for adding Heroku addons / Adding Heroku add-ons using Terraform
    • Heroku, using / Using Heroku with Terraform
    • used, for creating Packet project / Creating a Packet project using Terraform
    • used, for handling Packet SSH keys / Handling Packet SSH keys using Terraform
    • used, for bootstraping Docker Swarm manager / Bootstraping a Docker Swarm manager on Packet using Terraform
    • used, for bootstraping Docker Swarm nodes / Bootstraping Docker Swarm nodes on Packet using Terraform
    • combining, for IaaS / Combining cloud-init and Terraform for any IaaS
  • Terraform, Docker container
    • reference link / One Makefile to rule them all
  • Test-Driven Development (TDD) / Introduction
    • with, Docker / Test-Driven Development (TDD) with Docker and ServerSpec, How to do it…
    • with, ServerSpec / Test-Driven Development (TDD) with Docker and ServerSpec, How to do it…
    • Debian Jessie base's Docker image, used / TDD – using the Debian Jessie base's Docker image
    • NGINX package, installing / TDD – installing the NGINX package
    • NGINX executing / TDD – running NGINX
  • Test Kitchen
    • used, for testing infrastructure code / Testing infrastructure with Test Kitchen for Chef and Beaker for Puppet, How to do it…
    • configuring / Configuring Test Kitchen
    • testing with / Testing with Test Kitchen, There's more…
  • Test Kitchen drivers
    • reference link / See also
  • tests
    • initializing / Initializing the tests
  • three-tier infrastructure
    • provisioning, on Google Compute Engine / Provisioning a three-tier infrastructure on Google Compute Engine, Getting ready
    • API credentials, generating for Google project / Generating API credentials for a Google project
    • Google Compute HTTP instances, creating / Creating Google Compute HTTP instances
    • Google Compute Firewall rule, creating / Creating a Google Compute Firewall rule
    • Google Compute instances, load balancing / Load balancing Google Compute instances
    • Google MySQL Database, instance creating / Creating a Google MySQL database instance
    • outputs, adding / Adding some useful outputs

U

  • Ubuntu 16.04 container
    • Bash, executing / Running Bash in an Ubuntu 16.04 container
  • Ubuntu EC2 instance
    • creating, Terraform used / Creating an Ubuntu EC2 instance with Terraform, How to do it…
    • scaling / Scaling the number of instances, There's more…
  • Ubuntu image / Starting from an Ubuntu image
  • Ubuntu Xenial (16.04 LTS)
    • using / Using a disposable Ubuntu Xenial (16.04) in seconds, How to do it…, How it works…
  • Ubuntu Xenial (16.04 LTS) Vagrant box
    • adding / Adding an Ubuntu Xenial (16.04 LTS) Vagrant box, How it works…
  • unprivileged users
    • security / Better security with unprivileged users, How to do it…
  • update strategy
    • configuring, cloud-init used / Configuring the update strategy using cloud-init
  • users
    • managing, cloud-init used / Managing users, keys, and credentials using cloud-init, How to do it…

V

  • Vagrant
    • URL, for downloading / Introduction
    • Docker, used / Using Docker with Vagrant
    • Docker, used for Ghost blog behind NGINX / Using Docker in Vagrant for a Ghost blog behind NGINX, How to do it…, There's more…
    • used, with AWS EC2 / Using Vagrant remotely with AWS EC2 and Docker, How to do it…
    • used, with Docker / Using Vagrant remotely with AWS EC2 and Docker, How to do it…
    • used, for simulating Chef version upgrades / Simulating Chef upgrades using Vagrant, How to do it…, There's more…
    • Ansible, used to create Docker host / Using Ansible with Vagrant to create a Docker host, How to do it…, There's more…
    / Configuring Test Kitchen
  • Vagrant boxes
    • references / Introduction
  • Vagrant environment
    • access, sharing / Sharing access to your Vagrant environment with the world, How to do it…, Sharing access
    • provisioning / Provisioning
    • ghost engine, considerations / Starting Ghost engine
  • Vagrant plugins
    • reference link / Introduction
  • Vagrant VM
    • customizing / Customizing a Vagrant VM
    • hostname, setting / Set the hostname
    • new box version check, disabling at startup / Disable new box version check at startup
    • specific box version, using / Use a specific box version
    • informational message, displaying to user / Display an informational message to the user
    • minimum Vagrant version, specifying / Specify a minimum Vagrant version
  • VirtualBox Guest Additions
    • enabling, in Vagrant / Enabling VirtualBox Guest Additions in Vagrant, How to do it…, There's more…
  • virtualhost_spec.rb
    • testing, from apache cookbook / Testing another recipe from the same cookbook
  • VMware
    • reference link / Using a disposable CentOS 7.x with VMware in seconds
    • CentOS 7.x, used / Using a disposable CentOS 7.x with VMware in seconds, How it works…
  • VMware vCenter plugin
    • reference link / See also
  • VMware vCloud Air plugin
    • reference link / See also
  • VMware vCloud Director plugin
    • reference link / See also
  • VMware VM capabilities
    • extending / Extending the VMware VM capabilities, How it works…
  • VMware vSphere plugin
    • reference link / See also
  • vulnerabilities
    • scanning, with Quay.io / Scanning for vulnerabilities with Quay.io and Docker Cloud, How to do it…
    • scanning, with Docker Cloud / Scanning for vulnerabilities with Quay.io and Docker Cloud, How to do it…

W

  • Windows Management Instrumentation (WMI) / Accessing and manipulating system information with Ohai
  • WordPress
    • reference link / Deploying an application from git or GitHub, See also
  • working systems
    • rebuilding / Planning for the worse – train to rebuild working systems, How to do it…, There's more…
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at £13.99/month. Cancel anytime
Visually different images