173 lines
6.3 KiB
JavaScript
173 lines
6.3 KiB
JavaScript
import ProductFeaturesList from '@hashicorp/react-product-features-list'
|
||
import AnimatedTerminal from 'components/animated-terminal'
|
||
import BrandedCta from 'components/branded-cta'
|
||
import HomepageHero from 'components/homepage-hero'
|
||
import IntegrationsTextSplit from 'components/integrations-text-split'
|
||
|
||
import s from './style.module.css'
|
||
|
||
export default function Homepage() {
|
||
return (
|
||
<div id="p-home" className={s.home}>
|
||
<section id="hero">
|
||
<HomepageHero
|
||
heading="Build automated machine images"
|
||
subheading="Create identical machine images for multiple platforms from a single source configuration."
|
||
links={[
|
||
{
|
||
text: 'Download',
|
||
url: '/downloads',
|
||
type: 'inbound',
|
||
},
|
||
{
|
||
text: 'Explore Tutorials',
|
||
url: 'https://learn.hashicorp.com/packer',
|
||
type: 'outbound',
|
||
},
|
||
]}
|
||
heroFeature={
|
||
<AnimatedTerminal
|
||
lines={[
|
||
{
|
||
code: '$ packer build template.pkr.hcl',
|
||
color: 'gray',
|
||
},
|
||
{
|
||
code:
|
||
'==> virtualbox: virtualbox output will be in this color.',
|
||
color: 'white',
|
||
},
|
||
{ code: '==> vmware: vmware output will be in this color.' },
|
||
{
|
||
code:
|
||
'==> vmware: Copying or downloading ISO. Progress will be reported periodically.',
|
||
},
|
||
{ code: '==> vmware: Creating virtual machine disk' },
|
||
{ code: '==> vmware: Building and writing VMX file' },
|
||
{ code: '==> vmware: Starting HTTP server on port 8964' },
|
||
{ code: '==> vmware: Starting virtual machine...' },
|
||
{
|
||
code:
|
||
'==> virtualbox: Downloading VirtualBox guest additions. Progress will be shown periodically',
|
||
color: 'white',
|
||
},
|
||
{
|
||
code:
|
||
'==> virtualbox: Copying or downloading ISO. Progress will be reported periodically.',
|
||
color: 'white',
|
||
},
|
||
{
|
||
code: '==> virtualbox: Starting HTTP server on port 8081',
|
||
color: 'white',
|
||
},
|
||
{
|
||
code: '==> virtualbox: Creating virtual machine...',
|
||
color: 'white',
|
||
},
|
||
{
|
||
code: '==> virtualbox: Creating hard drive...',
|
||
color: 'white',
|
||
},
|
||
]}
|
||
/>
|
||
}
|
||
/>
|
||
</section>
|
||
<section id="features">
|
||
<ProductFeaturesList
|
||
heading="Why Packer?"
|
||
features={[
|
||
{
|
||
title: 'Rapid Infrastructure Deployment',
|
||
content:
|
||
'Use Terraform to launch completely provisioned and configured machine instances with Packer images in seconds.',
|
||
icon: '/img/product-features-list/deployment.svg',
|
||
},
|
||
{
|
||
title: 'Multi-provider Portability',
|
||
content:
|
||
'Identical images allow you to run dev, staging, and production environments across platforms.',
|
||
icon: '/img/product-features-list/portability.svg',
|
||
},
|
||
{
|
||
title: 'Improved Stability',
|
||
content:
|
||
'By provisioning instances from stable images installed and configured by Packer, you can ensure buggy software does not get deployed.',
|
||
icon: '/img/product-features-list/stability.svg',
|
||
},
|
||
{
|
||
title: 'Increased Dev / Production Parity',
|
||
content:
|
||
'Keep dev, staging, and production environments as similar as possible by generating images for multiple platforms at the same time.',
|
||
icon: '/img/product-features-list/prod-parity.svg',
|
||
},
|
||
{
|
||
title: 'Reliable Continuous Delivery',
|
||
content:
|
||
'Generate new machine images for multiple platforms, launch and test, and verify the infrastructure changes work; then, use Terraform to put your images in production.',
|
||
icon: '/img/product-features-list/continuous-delivery.svg',
|
||
},
|
||
{
|
||
title: 'Appliance Demo Creation',
|
||
content:
|
||
'Create software appliances and disposable product demos quickly, even with software that changes continuously.',
|
||
icon: '/img/product-features-list/demo-creation.svg',
|
||
},
|
||
]}
|
||
/>
|
||
</section>
|
||
|
||
<section>
|
||
<IntegrationsTextSplit
|
||
heading="Extending Packer with Plugins"
|
||
content={
|
||
<>
|
||
<p className="g-type-body">
|
||
Extend Packer’s functionality without modifying Packer core.
|
||
Plugins are capable of adding these components:
|
||
</p>
|
||
<ul className={s.textSplitList}>
|
||
<li>Builders</li>
|
||
<li>Provisioners</li>
|
||
<li>Post-processors</li>
|
||
<li>Data sources</li>
|
||
</ul>
|
||
</>
|
||
}
|
||
links={[
|
||
{
|
||
text: 'Read the Docs',
|
||
url: '/docs',
|
||
type: 'none',
|
||
},
|
||
{
|
||
text: 'Develop a plugin',
|
||
|
||
url: '/docs/plugins',
|
||
type: 'inbound',
|
||
},
|
||
]}
|
||
image={{
|
||
url: '/img/integrations-text-split/integrations.png',
|
||
alt: 'Build images with Packer plugins',
|
||
}}
|
||
/>
|
||
</section>
|
||
<section id="get-started">
|
||
<BrandedCta
|
||
heading="Ready to get started?"
|
||
content="Start by following a tutorial to deploy a simple application with Waypoint or learn about how the project works by exploring the documentation."
|
||
links={[
|
||
{
|
||
text: 'Get Started',
|
||
url: '/docs/getting-started',
|
||
type: 'inbound',
|
||
},
|
||
{ text: 'Explore documentation', url: '/docs' },
|
||
]}
|
||
/>
|
||
</section>
|
||
</div>
|
||
)
|
||
}
|