more hcl2 basic examples

This commit is contained in:
Adrien Delorme 2020-06-16 17:44:41 +02:00
parent 97848df9e1
commit 01e14e173a
4 changed files with 146 additions and 0 deletions

View File

@ -49,6 +49,9 @@ builder.
Here is a basic example for Alicloud. Here is a basic example for Alicloud.
<Tabs>
<Tab heading="JSON">
```json ```json
{ {
"variables": { "variables": {
@ -79,6 +82,45 @@ Here is a basic example for Alicloud.
} }
``` ```
</Tab>
<Tab heading="HCL2">
```hcl
variable "access_key" {
type = string
}
variable "secret_key" {
type = string
}
source "alicloud-ecs" "basic-example" {
access_key = var.access_key
secret_key = var.secret_key
region = "cn-beijing"
image_name = "packer_test2"
source_image = "centos_7_04_64_20G_alibase_201701015.vhd"
ssh_username = "root"
instance_type = "ecs.n1.tiny"
io_optimized = true
internet_charge_type = "PayByTraffic"
image_force_delete = true
}
build {
sources = ["sources.alicloud-ecs.basic-example"]
provisioner "shell" {
inline = [
"sleep 30", "yum install redis.x86_64 -y",
]
}
}
```
</Tab>
</Tabs>
~> Note: Images can become deprecated after a while; run ~> Note: Images can become deprecated after a while; run
`aliyun ecs DescribeImages` to find one that exists. `aliyun ecs DescribeImages` to find one that exists.

View File

@ -165,6 +165,9 @@ Providing `temp_resource_group_name` or `location` in combination with
Here is a basic example for Azure. Here is a basic example for Azure.
<Tabs>
<Tab heading="JSON">
```json ```json
{ {
"type": "azure-arm", "type": "azure-arm",
@ -193,6 +196,42 @@ Here is a basic example for Azure.
} }
``` ```
</Tab>
<Tab heading="HCL2">
```hcl
source "azure-arm" "basic-example" {
client_id = "fe354398-d7sf-4dc9-87fd-c432cd8a7e09"
client_secret = "keepitsecret&#*$"
resource_group_name = "packerdemo"
storage_account = "virtualmachines"
subscription_id = "44cae533-4247-4093-42cf-897ded6e7823"
tenant_id = "de39842a-caba-497e-a798-7896aea43218"
capture_container_name = "images"
capture_name_prefix = "packer"
os_type = "Linux"
image_publisher = "Canonical"
image_offer = "UbuntuServer"
image_sku = "14.04.4-LTS"
azure_tags = {
dept = "engineering"
}
location = "West US"
vm_size = "Standard_A2"
}
build {
sources = ["sources.azure-arm.basic-example"]
}
```
</Tab>
</Tabs>
## Deprovision ## Deprovision
Azure VMs should be deprovisioned at the end of every build. For Windows this Azure VMs should be deprovisioned at the end of every build. For Windows this

View File

@ -194,6 +194,9 @@ to update your VM.
Set the `ARM_IMAGE_RESOURCEGROUP_ID` variable to an existing resource group in the Set the `ARM_IMAGE_RESOURCEGROUP_ID` variable to an existing resource group in the
subscription where the resulting image will be created. subscription where the resulting image will be created.
<Tabs>
<Tab heading="JSON">
```json ```json
{ {
"variables": { "variables": {
@ -224,3 +227,43 @@ subscription where the resulting image will be created.
] ]
} }
``` ```
</Tab>
<Tab heading="HCL2">
```hcl
variable "client_id" {
type = string
}
variable "client_secret" {
type = string
}
variable "subscription_id" {
type = string
}
variable "resource_group" {
type = string
}
source "azure-chroot" "basic-example" {
client_id = var.client_id
client_secret = var.client_secret
subscription_id = var.subscription_id
image_resource_id = "/subscriptions/${var.subscription_id}/resourceGroups/${var.resource_group}/providers/Microsoft.Compute/images/MyDebianOSImage-{{timestamp}}"
source = "credativ:Debian:9:latest"
}
build {
sources = ["sources.azure-chroot.basic-example"]
provisioner "shell" {
inline = ["apt-get update", "apt-get upgrade -y"]
inline_shebang = "/bin/sh -x"
}
}
```
</Tab>
</Tabs>

View File

@ -23,6 +23,9 @@ artifact.
Below is a fully functioning example. It doesn't do anything useful, since no Below is a fully functioning example. It doesn't do anything useful, since no
provisioners are defined, but it will connect to the specified host via ssh. provisioners are defined, but it will connect to the specified host via ssh.
<Tabs>
<Tab heading="JSON">
```json ```json
{ {
"type": "null", "type": "null",
@ -32,6 +35,25 @@ provisioners are defined, but it will connect to the specified host via ssh.
} }
``` ```
</Tab>
<Tab heading="HCL2">
```hcl
source "null" "basic-example" {
ssh_host = "127.0.0.1"
ssh_username = "foo"
ssh_password = "bar"
}
build {
sources = ["sources.null.basic-example"]
}
```
</Tab>
</Tabs>
## Configuration Reference ## Configuration Reference
The null builder has no configuration parameters other than the The null builder has no configuration parameters other than the