2017-03-21 23:01:58 +01:00
|
|
|
---
|
2017-04-03 19:53:38 +02:00
|
|
|
layout: "enterprise"
|
2017-04-07 06:00:42 +02:00
|
|
|
page_title: "Starting - Packer Builds - Terraform Enterprise"
|
2017-04-03 19:53:38 +02:00
|
|
|
sidebar_current: "docs-enterprise-packerbuilds-starting"
|
2017-03-22 18:31:44 +01:00
|
|
|
description: |-
|
|
|
|
Packer builds can be started in Terraform Enterprise in two ways. This post is about how.
|
2017-03-21 23:01:58 +01:00
|
|
|
---
|
|
|
|
|
2017-03-22 18:31:44 +01:00
|
|
|
# Starting Packer Builds in Terraform Enterprise
|
2017-03-21 23:01:58 +01:00
|
|
|
|
2017-04-07 06:00:42 +02:00
|
|
|
Packer builds can be started in in two ways: `packer push` to upload the
|
|
|
|
template and directory or via a GitHub connection that retrieves the contents of
|
|
|
|
a repository after changes to the default branch (usually master).
|
2017-03-21 23:01:58 +01:00
|
|
|
|
|
|
|
### Packer Push
|
|
|
|
|
2017-04-07 06:00:42 +02:00
|
|
|
Packer `push` is a
|
|
|
|
[Packer command](https://packer.io/docs/command-line/push.html) that packages
|
|
|
|
and uploads a Packer template and directory. This then creates a build which
|
|
|
|
performs `packer build` against the uploaded template and packaged directory.
|
2017-03-21 23:01:58 +01:00
|
|
|
|
2017-04-07 06:00:42 +02:00
|
|
|
The directory is included in order to run any associated provisioners, builds or
|
|
|
|
post-processors that all might use local files. For example, a shell script or
|
|
|
|
set of Puppet modules used in a Packer build needs to be part of the upload for
|
|
|
|
Packer to be run remotely.
|
2017-03-21 23:01:58 +01:00
|
|
|
|
|
|
|
By default, everything in your directory is uploaded as part of the push.
|
|
|
|
|
2017-04-07 06:00:42 +02:00
|
|
|
However, it's not always the case that the entire directory should be uploaded.
|
|
|
|
Often, temporary or cache directories and files like `.git`, `.tmp` will be
|
|
|
|
included by default. This can cause builds to fail at certain sizes and should
|
|
|
|
be avoided. You can specify
|
|
|
|
[exclusions](https://packer.io/docs/templates/push.html#exclude) to avoid this
|
|
|
|
situation.
|
|
|
|
|
|
|
|
Packer also allows for a
|
|
|
|
[VCS option](https://packer.io/docs/templates/push.html#vcs) that will detect
|
|
|
|
your VCS (if there is one) and only upload the files that are tracked by the
|
|
|
|
VCS. This is useful for automatically excluding ignored files. In a VCS like
|
|
|
|
git, this basically does a `git ls-files`.
|
2017-03-21 23:01:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
### GitHub Webhooks
|
|
|
|
|
|
|
|
Optionally, GitHub can be used to import Packer templates and configurations.
|
|
|
|
When used within an organization, this can be extremely valuable for keeping
|
|
|
|
differences in environments and last mile changes from occurring before an
|
2017-03-22 18:31:44 +01:00
|
|
|
upload.
|
2017-03-21 23:01:58 +01:00
|
|
|
|
2017-03-22 18:31:44 +01:00
|
|
|
After you have [connected your GitHub account](/docs/enterprise/vcs/github.html) to Terraform Enterprise,
|
|
|
|
you can connect your [Build Configuration](/docs/enterprise/glossary#build-configuration)
|
2017-03-21 23:01:58 +01:00
|
|
|
to the target GitHub repository. The GitHub repository will be linked to the
|
2017-03-22 18:31:44 +01:00
|
|
|
Packer configuration, and GitHub will start sending webhooks.
|
2017-03-21 23:01:58 +01:00
|
|
|
Certain GitHub webhook events, detailed below, will cause the repository to be
|
2017-03-22 18:31:44 +01:00
|
|
|
automatically ingressed into Terraform Enterprise and stored, along with references to the
|
2017-03-21 23:01:58 +01:00
|
|
|
GitHub commits and authorship information.
|
|
|
|
|
|
|
|
After each ingress the configuration will automatically build.
|
|
|
|
|
|
|
|
You can disable an ingress by adding the text `[atlas skip]` or `[ci skip]` to
|
|
|
|
your commit message.
|
|
|
|
|
|
|
|
Supported GitHub webhook events:
|
|
|
|
|
|
|
|
- push (on by default)
|
|
|
|
- ingress when a tag is created
|
|
|
|
- ingress when the default branch is updated
|
|
|
|
- note: the default branch is either configured on your configuration's
|
2017-03-22 18:31:44 +01:00
|
|
|
integrations tab in Terraform Enterprise, or if that is blank it is the GitHub
|
2017-03-21 23:01:58 +01:00
|
|
|
repository's default branch
|
|
|
|
- create (off by default)
|
|
|
|
- ingress when a tag is created
|
|
|
|
- note: if you want to only run on tag creation, turn on create events and
|
|
|
|
turn off push events
|