2021-06-02 15:57:20 -05:00

173 lines
6.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 Packers 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>
)
}