website: intro section
This commit is contained in:
parent
7f3941fa96
commit
4b224d7477
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
layout: "intro"
|
||||||
|
page_title: "Introduction"
|
||||||
|
prev_url: "#"
|
||||||
|
next_url: "/intro/why.html"
|
||||||
|
next_title: "Why Use Packer?"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Introduction to Packer
|
||||||
|
|
||||||
|
Welcome to the world of Packer! This introduction guide will show you what
|
||||||
|
packer is, explain why it exists, the benefits it has to offer, and how
|
||||||
|
you can get started with it. If you're already familiar with Packer, the
|
||||||
|
[documentation](/docs) provides more of a reference for all available features.
|
||||||
|
|
||||||
|
## What is Packer?
|
||||||
|
|
||||||
|
Packer is a tool for creating identical machine images for multiple platforms
|
||||||
|
from a single source configuration. Packer is lightweight, runs on every major
|
||||||
|
operating system, and is highly performant, creating machine images for
|
||||||
|
multiple platforms in parallel. Packer does not replace configuration management
|
||||||
|
like Chef or Puppet. In fact, when building images, Packer is able to use tools
|
||||||
|
like Chef or Puppet to install software onto the image.
|
||||||
|
|
||||||
|
A _machine image_ is a single static unit that contains a pre-configured operating
|
||||||
|
system and installed software which is used to quickly create new running machines.
|
||||||
|
Machine image formats change for each platform. Some examples include
|
||||||
|
[AMIs](http://en.wikipedia.org/wiki/Amazon_Machine_Image) for EC2,
|
||||||
|
VMDK/VMX files for VMware, OVF exports for VirtualBox, etc.
|
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
layout: "intro"
|
||||||
|
page_title: "Use Cases"
|
||||||
|
prev_url: "/intro/why.html"
|
||||||
|
next_url: "/intro/getting-started/setup.html"
|
||||||
|
next_title: "Getting Started: Install Packer"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Use Cases
|
||||||
|
|
||||||
|
By now you should know what Packer does and what the benefits of image
|
||||||
|
creation are. In this section, we'll enumerate _some_ of the use cases
|
||||||
|
for Packer. Note that this is not an exhaustive list by any means. There are
|
||||||
|
definitely use cases for Packer not listed here. This list is just meant
|
||||||
|
to give you an idea of how Packer may improve your processes.
|
||||||
|
|
||||||
|
### Continuous Delivery
|
||||||
|
|
||||||
|
Packer is lightweight, portable, and command-line driven. This makes it the
|
||||||
|
perfect tool to put in the middle of your continuous delivery pipeline. Packer
|
||||||
|
can be used to generate new machine images for multiple platforms on every
|
||||||
|
change to Chef/Puppet.
|
||||||
|
|
||||||
|
As part of this pipeline, the newly created images can then be launched and
|
||||||
|
tested, verifying the infrastructure changes work. If the tests pass, you can
|
||||||
|
be confident that that image will work when deployed. This brings a new level
|
||||||
|
of stability and testability to infrastructure changes.
|
||||||
|
|
||||||
|
### Dev/Prod Parity
|
||||||
|
|
||||||
|
Packer helps [keep development, staging, and production as similar as possible](http://www.12factor.net/dev-prod-parity).
|
||||||
|
Packer can be used to generate images for multiple platforms at the same time.
|
||||||
|
So if you use AWS for production and VMware (perhaps with [Vagrant](http://www.vagrantup.com))
|
||||||
|
for development, you can generate both an AMI and a VMware machine using
|
||||||
|
Packer at the same time from the same template.
|
||||||
|
|
||||||
|
Mix this in with the continous delivery use case above, and you have a pretty
|
||||||
|
slick system for consistent work environments from development all the
|
||||||
|
way through to production.
|
||||||
|
|
||||||
|
### Appliance/Demo Creation
|
||||||
|
|
||||||
|
Since Packer creates consistent images for multiple platforms in parallel,
|
||||||
|
it is perfect for creating [appliances](http://en.wikipedia.org/wiki/Software_appliance)
|
||||||
|
and disposable product demos. As your software changes, you can automatically
|
||||||
|
create applicances with the software pre-installed. Potential users can then
|
||||||
|
get started with your software by deploying it to the environment of their
|
||||||
|
choice.
|
||||||
|
|
||||||
|
Packaging up software with complex requirements has never been so easy.
|
||||||
|
Or enjoyable, if you ask me.
|
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
layout: "intro"
|
||||||
|
page_title: "Why Use Packer?"
|
||||||
|
prev_url: "/intro/index.html"
|
||||||
|
next_url: "/intro/use-cases.html"
|
||||||
|
next_title: "Packer Use Cases"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Why Use Packer?
|
||||||
|
|
||||||
|
Pre-baked machine images have a lot of advantages, but most have been unable
|
||||||
|
to benefit from them because images have been too tedious to create and manage.
|
||||||
|
There were ether no existing tools to automate the creation of machine images or
|
||||||
|
they had too high of a learning curve. The result is that, prior to Packer,
|
||||||
|
creating machine images threatened the agility of operations teams, and therefore
|
||||||
|
aren't used, despite the massive benefits.
|
||||||
|
|
||||||
|
Packer changes all of this. Packer is easy to use and automates the creation
|
||||||
|
of any type of machine image. It embraces modern configuration management by
|
||||||
|
encouraging you to use a framework such as Chef or Puppet to install and
|
||||||
|
configure the software within your Packer-made images.
|
||||||
|
|
||||||
|
In other words: Packer brings pre-baked images into the modern age, unlocking
|
||||||
|
untapped potential and opening new opportunities.
|
||||||
|
|
||||||
|
## Advantages of Using Packer
|
||||||
|
|
||||||
|
***Super fast infrastructure deployment***. Packer images allow you to launch
|
||||||
|
completely provisioned and configured machines in seconds, rather than
|
||||||
|
several minutes or hours. This benefits not only production, but development as well,
|
||||||
|
since development virtual machines can also be launched in seconds, without waiting
|
||||||
|
for a typically much longer provisioning time.
|
||||||
|
|
||||||
|
***Multi-provider portability***. Because Packer creates identical images for
|
||||||
|
multiple platforms, you can run production in AWS, staging/QA in a private
|
||||||
|
cloud like OpenStack, and development in desktop virtualization solutions
|
||||||
|
such as VMware or VirtualBox. Each environment is running an identical
|
||||||
|
machine image, giving ultimate portability.
|
||||||
|
|
||||||
|
***Improved stability***. Packer installs and configures all the software for
|
||||||
|
a machine at the time the image is built. If there are bugs in these scripts,
|
||||||
|
they'll be caught early, rather than several minutes after a machine is launched.
|
||||||
|
|
||||||
|
***Greater testability***. After a machine image is built, that machine image
|
||||||
|
can be quickly launched and smoke tested to verify that things appear to be
|
||||||
|
working. If they are, you can be confident that any other machines launched
|
||||||
|
from that image will function properly.
|
||||||
|
|
||||||
|
Packer makes it extremely easy to take advantage of all these benefits.
|
||||||
|
|
||||||
|
What are you waiting for? Let's get started!
|
|
@ -1,71 +1,59 @@
|
||||||
<% wrap_layout :layout do %>
|
<% wrap_layout :inner do %>
|
||||||
<div class="docs-wrapper">
|
<% content_for :sidebar do %>
|
||||||
<div class="sidebar dark-background hidden-phone">
|
<h2>Docs</h2>
|
||||||
<h2>Docs</h2>
|
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="/docs/index.html">What is Packer?</a></li>
|
<li><a href="/docs/index.html">What is Packer?</a></li>
|
||||||
<li><a href="/docs/installation.html">Installation</a></li>
|
<li><a href="/docs/installation.html">Installation</a></li>
|
||||||
<li><a href="/docs/basics/terminology.html">Terminology</a></li>
|
<li><a href="/docs/basics/terminology.html">Terminology</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><h4>Command-Line</h4></li>
|
<li><h4>Command-Line</h4></li>
|
||||||
<li><a href="/docs/command-line/introduction.html">Introduction</a></li>
|
<li><a href="/docs/command-line/introduction.html">Introduction</a></li>
|
||||||
<li><a href="/docs/command-line/build.html">Build</a></li>
|
<li><a href="/docs/command-line/build.html">Build</a></li>
|
||||||
<li><a href="/docs/command-line/validate.html">Validate</a></li>
|
<li><a href="/docs/command-line/validate.html">Validate</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><h4>Templates</h4></li>
|
<li><h4>Templates</h4></li>
|
||||||
<li><a href="/docs/templates/introduction.html">Introduction</a></li>
|
<li><a href="/docs/templates/introduction.html">Introduction</a></li>
|
||||||
<li><a href="/docs/templates/builders.html">Builders</a></li>
|
<li><a href="/docs/templates/builders.html">Builders</a></li>
|
||||||
<li><a href="/docs/templates/provisioners.html">Provisioners</a></li>
|
<li><a href="/docs/templates/provisioners.html">Provisioners</a></li>
|
||||||
<li><a href="/docs/templates/post-processors.html">Post-Processors</a></li>
|
<li><a href="/docs/templates/post-processors.html">Post-Processors</a></li>
|
||||||
<li><a href="/docs/templates/configuration-templates.html">Configuration Templates</a></li>
|
<li><a href="/docs/templates/configuration-templates.html">Configuration Templates</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><h4>Builders</h4></li>
|
<li><h4>Builders</h4></li>
|
||||||
<li><a href="/docs/builders/digitalocean.html">DigitalOcean</a></li>
|
<li><a href="/docs/builders/digitalocean.html">DigitalOcean</a></li>
|
||||||
<li><a href="/docs/builders/amazon-ebs.html">EC2 (AMI)</a></li>
|
<li><a href="/docs/builders/amazon-ebs.html">EC2 (AMI)</a></li>
|
||||||
<li><a href="/docs/builders/virtualbox.html">VirtualBox</a></li>
|
<li><a href="/docs/builders/virtualbox.html">VirtualBox</a></li>
|
||||||
<li><a href="/docs/builders/vmware.html">VMware</a></li>
|
<li><a href="/docs/builders/vmware.html">VMware</a></li>
|
||||||
<li><a href="/docs/builders/custom.html">Custom</a></li>
|
<li><a href="/docs/builders/custom.html">Custom</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><h4>Provisioners</h4></li>
|
<li><h4>Provisioners</h4></li>
|
||||||
<li><a href="/docs/provisioners/shell.html">Shell Scripts</a></li>
|
<li><a href="/docs/provisioners/shell.html">Shell Scripts</a></li>
|
||||||
<li><a href="/docs/provisioners/custom.html">Custom</a></li>
|
<li><a href="/docs/provisioners/custom.html">Custom</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><h4>Other</h4></li>
|
<li><h4>Other</h4></li>
|
||||||
<li><a href="/docs/other/core-configuration.html">Core Configuration</a></li>
|
<li><a href="/docs/other/core-configuration.html">Core Configuration</a></li>
|
||||||
<li><a href="/docs/other/debugging.html">Debugging</a></li>
|
<li><a href="/docs/other/debugging.html">Debugging</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><h4>Extend Packer</h4></li>
|
<li><h4>Extend Packer</h4></li>
|
||||||
<li><a href="/docs/extend/plugins.html">Packer Plugins</a></li>
|
<li><a href="/docs/extend/plugins.html">Packer Plugins</a></li>
|
||||||
<li><a href="/docs/extend/developing-plugins.html">Developing Plugins</a></li>
|
<li><a href="/docs/extend/developing-plugins.html">Developing Plugins</a></li>
|
||||||
<li><a href="/docs/extend/builder.html">Custom Builder</a></li>
|
<li><a href="/docs/extend/builder.html">Custom Builder</a></li>
|
||||||
<li><a href="/docs/extend/command.html">Custom Command</a></li>
|
<li><a href="/docs/extend/command.html">Custom Command</a></li>
|
||||||
<li><a href="/docs/extend/post-processor.html">Custom Post-Processor</a></li>
|
<li><a href="/docs/extend/post-processor.html">Custom Post-Processor</a></li>
|
||||||
<li><a href="/docs/extend/provisioner.html">Custom Provisioner</a></li>
|
<li><a href="/docs/extend/provisioner.html">Custom Provisioner</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<% end %>
|
||||||
<!-- trick it into having a full-height sidebar regardless of content height -->
|
<%= yield %>
|
||||||
<div class="sidebar-background"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="docs-body">
|
|
||||||
<div class="docs-content">
|
|
||||||
<%= yield %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="docs-background"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
<% wrap_layout :layout do %>
|
||||||
|
<div class="docs-wrapper">
|
||||||
|
<div class="sidebar dark-background">
|
||||||
|
<%= yield_content :sidebar %>
|
||||||
|
|
||||||
|
<div class="sidebar-background"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="docs-body">
|
||||||
|
<div class="docs-content">
|
||||||
|
<%= yield %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<% if current_page.data.next_url %>
|
||||||
|
<div class="pagination">
|
||||||
|
<a class="previous-section" href="<%= current_page.data.prev_url %>"></a>
|
||||||
|
<a class="next-section" href="<%= current_page.data.next_url %>">
|
||||||
|
<h4>
|
||||||
|
<span class="text-green uppercase">next</span>
|
||||||
|
<%= current_page.data.next_title %>
|
||||||
|
</h4>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<div class="docs-background"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<% wrap_layout :inner do %>
|
||||||
|
<% content_for :sidebar do %>
|
||||||
|
<h2>Intro</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><h4>Concepts</h4></li>
|
||||||
|
<li><a href="/intro/index.html">What is Packer?</a></li>
|
||||||
|
<li><a href="/intro/why.html">Why Use Packer?</a></li>
|
||||||
|
<li><a href="/intro/use-cases.html">Use Cases</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><h4>Getting Started</h4></li>
|
||||||
|
<li><a href="/intro/getting-started/setup.html">Install Packer</a></li>
|
||||||
|
<li><a href="#">Build an Image</a></li>
|
||||||
|
<li><a href="#">Provision</a></li>
|
||||||
|
<li><a href="#">Parallel Builds</a></li>
|
||||||
|
<li><a href="#">Post-Process</a></li>
|
||||||
|
</ul>
|
||||||
|
<% end %>
|
||||||
|
<%= yield %>
|
||||||
|
<% end %>
|
|
@ -1,7 +1,7 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>Packer</title>
|
<title><%= current_page.data.page_title ? "#{current_page.data.page_title} - " : "" %>Packer</title>
|
||||||
<meta name="description" content="Packer is a free and open source tool for creating golden images for multiple platforms from a single source configuration." />
|
<meta name="description" content="Packer is a free and open source tool for creating golden images for multiple platforms from a single source configuration." />
|
||||||
|
|
||||||
<!-- HTML5 shiv -->
|
<!-- HTML5 shiv -->
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
</a>
|
</a>
|
||||||
<a href="/" class="packer-logo pull-left">Packer</a>
|
<a href="/" class="packer-logo pull-left">Packer</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#">Intro</a></li>
|
<li><a href="/intro">Intro</a></li>
|
||||||
<li><a href="/docs">Documentation</a></li>
|
<li><a href="/docs">Documentation</a></li>
|
||||||
<li><a href="#">Community</a></li>
|
<li><a href="#">Community</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Reference in New Issue