 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- type Artifact
- type Authenticate
- type AzureClient
- type Builder
- type CaptureBootDiagnostics
- type CaptureDiagnosticProfile
- type CaptureDisk
- type CaptureHardwareProfile
- type CaptureNetworkInterface
- type CaptureNetworkProfile
- type CaptureOSProfile
- type CaptureOperation
- type CaptureOperationProperties
- type CaptureProperties
- type CaptureResources
- type CaptureStorageProfile
- type CaptureTemplate
- type CaptureTemplateParameter
- type CaptureUri
- type Config
- type DeploymentFactory
- type DeploymentPoller
- type OpenSshKeyPair
- type StepCaptureImage
- type StepCreateResourceGroup
- type StepDeleteOSDisk
- type StepDeleteResourceGroup
- type StepDeployTemplate
- type StepGetCertificate
- type StepGetIPAddress
- type StepGetOSDisk
- type StepPowerOffCompute
- type StepSetCertificate
- type StepValidateTemplate
- type TempName
- type TemplateParameter
- type TemplateParameters
Constants ¶
      View Source
      
  
    const ( DefaultPublicIPAddressName = "packerPublicIP" DefaultSasBlobContainer = "system/Microsoft.Compute" DefaultSasBlobPermission = "r" DefaultSecretName = "packerKeyVaultSecret" )
      View Source
      
  
    const ( DefaultCloudEnvironmentName = "Public" DefaultImageVersion = "latest" DefaultUserName = "packer" DefaultVMSize = "Standard_A1" )
      View Source
      
  
    const ( DeployCanceled = "Canceled" DeployFailed = "Failed" DeployDeleted = "Deleted" DeploySucceeded = "Succeeded" )
      View Source
      
  
    const ( TempNameAlphabet = "0123456789bcdfghjklmnpqrstvwxyz" TempPasswordAlphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" )
      View Source
      
  
    const (
	BuilderId = "Azure.ResourceManagement.VMImage"
)
    
      View Source
      
  
    const (
	EnvPackerLogAzureMaxLen = "PACKER_LOG_AZURE_MAXLEN"
)
    
      View Source
      
  
    const (
	KeySize = 2048
)
    
      View Source
      
  const KeyVault = `` /* 2304-byte string literal not displayed */
    Template to deploy a KeyVault.
NOTE: the parameters for the KeyVault template are identical to Windows template. Keeping these values in sync simplifies the code at the expense of template bloat. This bloat may be addressed in the future.
      View Source
      
  
    const Linux = `` /* 5296-byte string literal not displayed */
    
      View Source
      
  
const Windows = `` /* 5857-byte string literal not displayed */
    Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Artifact ¶ added in v0.10.1
type Artifact struct {
	StorageAccountLocation string
	OSDiskUri              string
	TemplateUri            string
	OSDiskUriReadOnlySas   string
	TemplateUriReadOnlySas string
}
    func NewArtifact ¶ added in v0.10.1
func NewArtifact(template *CaptureTemplate, getSasUrl func(name string) string) (*Artifact, error)
type Authenticate ¶ added in v0.10.1
type Authenticate struct {
	// contains filtered or unexported fields
}
    func NewAuthenticate ¶ added in v0.10.1
func NewAuthenticate(env azure.Environment, clientID, clientSecret, tenantID string) *Authenticate
type AzureClient ¶
type AzureClient struct {
	storage.BlobStorageClient
	resources.DeploymentsClient
	resources.GroupsClient
	network.PublicIPAddressesClient
	compute.VirtualMachinesClient
	common.VaultClient
	armStorage.AccountsClient
	InspectorMaxLength int
	Template           *CaptureTemplate
}
    func NewAzureClient ¶
func NewAzureClient(subscriptionID, resourceGroupName, storageAccountName string, servicePrincipalToken, servicePrincipalTokenVault *azure.ServicePrincipalToken) (*AzureClient, error)
type CaptureBootDiagnostics ¶ added in v0.10.1
type CaptureBootDiagnostics struct {
	Enabled bool `json:"enabled"`
}
    type CaptureDiagnosticProfile ¶ added in v0.10.1
type CaptureDiagnosticProfile struct {
	BootDiagnostics CaptureBootDiagnostics `json:"bootDiagnostics"`
}
    type CaptureDisk ¶ added in v0.10.1
type CaptureDisk struct {
	OSType       string     `json:"osType"`
	Name         string     `json:"name"`
	Image        CaptureUri `json:"image"`
	Vhd          CaptureUri `json:"vhd"`
	CreateOption string     `json:"createOption"`
	Caching      string     `json:"caching"`
}
    type CaptureHardwareProfile ¶ added in v0.10.1
type CaptureHardwareProfile struct {
	VMSize string `json:"vmSize"`
}
    type CaptureNetworkInterface ¶ added in v0.10.1
type CaptureNetworkInterface struct {
	Id string `json:"id"`
}
    type CaptureNetworkProfile ¶ added in v0.10.1
type CaptureNetworkProfile struct {
	NetworkInterfaces []CaptureNetworkInterface `json:"networkInterfaces"`
}
    type CaptureOSProfile ¶ added in v0.10.1
type CaptureOperation ¶ added in v0.10.1
type CaptureOperation struct {
	OperationId string                      `json:"operationId"`
	Status      string                      `json:"status"`
	Properties  *CaptureOperationProperties `json:"properties"`
}
    type CaptureOperationProperties ¶ added in v0.10.1
type CaptureOperationProperties struct {
	Output *CaptureTemplate `json:"output"`
}
    type CaptureProperties ¶ added in v0.10.1
type CaptureProperties struct {
	HardwareProfile    CaptureHardwareProfile   `json:"hardwareProfile"`
	StorageProfile     CaptureStorageProfile    `json:"storageProfile"`
	OSProfile          CaptureOSProfile         `json:"osProfile"`
	NetworkProfile     CaptureNetworkProfile    `json:"networkProfile"`
	DiagnosticsProfile CaptureDiagnosticProfile `json:"diagnosticsProfile"`
	ProvisioningState  int                      `json:"provisioningState"`
}
    type CaptureResources ¶ added in v0.10.1
type CaptureResources struct {
	ApiVersion string            `json:"apiVersion"`
	Name       string            `json:"name"`
	Type       string            `json:"type"`
	Location   string            `json:"location"`
	Properties CaptureProperties `json:"properties"`
}
    type CaptureStorageProfile ¶ added in v0.10.1
type CaptureStorageProfile struct {
	OSDisk CaptureDisk `json:"osDisk"`
}
    type CaptureTemplate ¶ added in v0.10.1
type CaptureTemplate struct {
	Schema         string                              `json:"$schema"`
	ContentVersion string                              `json:"contentVersion"`
	Parameters     map[string]CaptureTemplateParameter `json:"parameters"`
	Resources      []CaptureResources                  `json:"resources"`
}
    type CaptureTemplateParameter ¶ added in v0.10.1
type CaptureUri ¶ added in v0.10.1
type CaptureUri struct {
	Uri string `json:"uri"`
}
    type Config ¶
type Config struct {
	common.PackerConfig `mapstructure:",squash"`
	// Authentication via OAUTH
	ClientID       string `mapstructure:"client_id"`
	ClientSecret   string `mapstructure:"client_secret"`
	ObjectID       string `mapstructure:"object_id"`
	TenantID       string `mapstructure:"tenant_id"`
	SubscriptionID string `mapstructure:"subscription_id"`
	// Capture
	CaptureNamePrefix    string `mapstructure:"capture_name_prefix"`
	CaptureContainerName string `mapstructure:"capture_container_name"`
	// Compute
	ImagePublisher string `mapstructure:"image_publisher"`
	ImageOffer     string `mapstructure:"image_offer"`
	ImageSku       string `mapstructure:"image_sku"`
	ImageVersion   string `mapstructure:"image_version"`
	Location       string `mapstructure:"location"`
	VMSize         string `mapstructure:"vm_size"`
	// Deployment
	ResourceGroupName string `mapstructure:"resource_group_name"`
	StorageAccount    string `mapstructure:"storage_account"`
	CloudEnvironmentName string `mapstructure:"cloud_environment_name"`
	// OS
	OSType string `mapstructure:"os_type"`
	// Runtime Values
	UserName string
	Password string
	Comm communicator.Config `mapstructure:",squash"`
	// contains filtered or unexported fields
}
    type DeploymentFactory ¶
type DeploymentFactory struct {
	// contains filtered or unexported fields
}
    type DeploymentPoller ¶
type DeploymentPoller struct {
	// contains filtered or unexported fields
}
    func NewDeploymentPoller ¶
func NewDeploymentPoller(getProvisioningState func() (string, error)) *DeploymentPoller
func (*DeploymentPoller) PollAsNeeded ¶
func (t *DeploymentPoller) PollAsNeeded() (string, error)
type OpenSshKeyPair ¶
type OpenSshKeyPair struct {
	// contains filtered or unexported fields
}
    func NewOpenSshKeyPair ¶
func NewOpenSshKeyPair() (*OpenSshKeyPair, error)
func NewOpenSshKeyPairWithSize ¶
func NewOpenSshKeyPairWithSize(keySize int) (*OpenSshKeyPair, error)
func (*OpenSshKeyPair) AuthorizedKey ¶
func (s *OpenSshKeyPair) AuthorizedKey() string
func (*OpenSshKeyPair) PrivateKey ¶
func (s *OpenSshKeyPair) PrivateKey() string
type StepCaptureImage ¶
type StepCaptureImage struct {
	// contains filtered or unexported fields
}
    func NewStepCaptureImage ¶
func NewStepCaptureImage(client *AzureClient, ui packer.Ui) *StepCaptureImage
func (*StepCaptureImage) Cleanup ¶
func (*StepCaptureImage) Cleanup(multistep.StateBag)
func (*StepCaptureImage) Run ¶
func (s *StepCaptureImage) Run(state multistep.StateBag) multistep.StepAction
type StepCreateResourceGroup ¶
type StepCreateResourceGroup struct {
	// contains filtered or unexported fields
}
    func NewStepCreateResourceGroup ¶
func NewStepCreateResourceGroup(client *AzureClient, ui packer.Ui) *StepCreateResourceGroup
func (*StepCreateResourceGroup) Cleanup ¶
func (s *StepCreateResourceGroup) Cleanup(state multistep.StateBag)
func (*StepCreateResourceGroup) Run ¶
func (s *StepCreateResourceGroup) Run(state multistep.StateBag) multistep.StepAction
type StepDeleteOSDisk ¶
type StepDeleteOSDisk struct {
	// contains filtered or unexported fields
}
    func NewStepDeleteOSDisk ¶
func NewStepDeleteOSDisk(client *AzureClient, ui packer.Ui) *StepDeleteOSDisk
func (*StepDeleteOSDisk) Cleanup ¶
func (*StepDeleteOSDisk) Cleanup(multistep.StateBag)
func (*StepDeleteOSDisk) Run ¶
func (s *StepDeleteOSDisk) Run(state multistep.StateBag) multistep.StepAction
type StepDeleteResourceGroup ¶
type StepDeleteResourceGroup struct {
	// contains filtered or unexported fields
}
    func NewStepDeleteResourceGroup ¶
func NewStepDeleteResourceGroup(client *AzureClient, ui packer.Ui) *StepDeleteResourceGroup
func (*StepDeleteResourceGroup) Cleanup ¶
func (*StepDeleteResourceGroup) Cleanup(multistep.StateBag)
func (*StepDeleteResourceGroup) Run ¶
func (s *StepDeleteResourceGroup) Run(state multistep.StateBag) multistep.StepAction
type StepDeployTemplate ¶
type StepDeployTemplate struct {
	// contains filtered or unexported fields
}
    func NewStepDeployTemplate ¶
func NewStepDeployTemplate(client *AzureClient, ui packer.Ui, template string) *StepDeployTemplate
func (*StepDeployTemplate) Cleanup ¶
func (*StepDeployTemplate) Cleanup(multistep.StateBag)
func (*StepDeployTemplate) Run ¶
func (s *StepDeployTemplate) Run(state multistep.StateBag) multistep.StepAction
type StepGetCertificate ¶ added in v0.10.1
type StepGetCertificate struct {
	// contains filtered or unexported fields
}
    func NewStepGetCertificate ¶ added in v0.10.1
func NewStepGetCertificate(client *AzureClient, ui packer.Ui) *StepGetCertificate
func (*StepGetCertificate) Cleanup ¶ added in v0.10.1
func (*StepGetCertificate) Cleanup(multistep.StateBag)
func (*StepGetCertificate) Run ¶ added in v0.10.1
func (s *StepGetCertificate) Run(state multistep.StateBag) multistep.StepAction
type StepGetIPAddress ¶
type StepGetIPAddress struct {
	// contains filtered or unexported fields
}
    func NewStepGetIPAddress ¶
func NewStepGetIPAddress(client *AzureClient, ui packer.Ui) *StepGetIPAddress
func (*StepGetIPAddress) Cleanup ¶
func (*StepGetIPAddress) Cleanup(multistep.StateBag)
func (*StepGetIPAddress) Run ¶
func (s *StepGetIPAddress) Run(state multistep.StateBag) multistep.StepAction
type StepGetOSDisk ¶
type StepGetOSDisk struct {
	// contains filtered or unexported fields
}
    func NewStepGetOSDisk ¶
func NewStepGetOSDisk(client *AzureClient, ui packer.Ui) *StepGetOSDisk
func (*StepGetOSDisk) Cleanup ¶
func (*StepGetOSDisk) Cleanup(multistep.StateBag)
func (*StepGetOSDisk) Run ¶
func (s *StepGetOSDisk) Run(state multistep.StateBag) multistep.StepAction
type StepPowerOffCompute ¶
type StepPowerOffCompute struct {
	// contains filtered or unexported fields
}
    func NewStepPowerOffCompute ¶
func NewStepPowerOffCompute(client *AzureClient, ui packer.Ui) *StepPowerOffCompute
func (*StepPowerOffCompute) Cleanup ¶
func (*StepPowerOffCompute) Cleanup(multistep.StateBag)
func (*StepPowerOffCompute) Run ¶
func (s *StepPowerOffCompute) Run(state multistep.StateBag) multistep.StepAction
type StepSetCertificate ¶ added in v0.10.1
type StepSetCertificate struct {
	// contains filtered or unexported fields
}
    func NewStepSetCertificate ¶ added in v0.10.1
func NewStepSetCertificate(config *Config, ui packer.Ui) *StepSetCertificate
func (*StepSetCertificate) Cleanup ¶ added in v0.10.1
func (*StepSetCertificate) Cleanup(multistep.StateBag)
func (*StepSetCertificate) Run ¶ added in v0.10.1
func (s *StepSetCertificate) Run(state multistep.StateBag) multistep.StepAction
type StepValidateTemplate ¶
type StepValidateTemplate struct {
	// contains filtered or unexported fields
}
    func NewStepValidateTemplate ¶
func NewStepValidateTemplate(client *AzureClient, ui packer.Ui, template string) *StepValidateTemplate
func (*StepValidateTemplate) Cleanup ¶
func (*StepValidateTemplate) Cleanup(multistep.StateBag)
func (*StepValidateTemplate) Run ¶
func (s *StepValidateTemplate) Run(state multistep.StateBag) multistep.StepAction
type TempName ¶
type TempName struct {
	AdminPassword       string
	CertificatePassword string
	ComputeName         string
	DeploymentName      string
	KeyVaultName        string
	ResourceGroupName   string
	OSDiskName          string
}
    func NewTempName ¶
func NewTempName() *TempName
type TemplateParameter ¶
type TemplateParameter struct {
	Value string `json:"value"`
}
    type TemplateParameters ¶
type TemplateParameters struct {
	AdminUsername              *TemplateParameter `json:"adminUsername,omitempty"`
	AdminPassword              *TemplateParameter `json:"adminPassword,omitempty"`
	DnsNameForPublicIP         *TemplateParameter `json:"dnsNameForPublicIP,omitempty"`
	ImageOffer                 *TemplateParameter `json:"imageOffer,omitempty"`
	ImagePublisher             *TemplateParameter `json:"imagePublisher,omitempty"`
	ImageSku                   *TemplateParameter `json:"imageSku,omitempty"`
	ImageVersion               *TemplateParameter `json:"imageVersion,omitempty"`
	KeyVaultName               *TemplateParameter `json:"keyVaultName,omitempty"`
	KeyVaultSecretValue        *TemplateParameter `json:"keyVaultSecretValue,omitempty"`
	ObjectId                   *TemplateParameter `json:"objectId,omitempty"`
	OSDiskName                 *TemplateParameter `json:"osDiskName,omitempty"`
	SshAuthorizedKey           *TemplateParameter `json:"sshAuthorizedKey,omitempty"`
	StorageAccountBlobEndpoint *TemplateParameter `json:"storageAccountBlobEndpoint,omitempty"`
	TenantId                   *TemplateParameter `json:"tenantId,omitempty"`
	VMSize                     *TemplateParameter `json:"vmSize,omitempty"`
	VMName                     *TemplateParameter `json:"vmName,omitempty"`
	WinRMCertificateUrl        *TemplateParameter `json:"winRMCertificateUrl,omitempty"`
}
    
       Source Files
      ¶
      Source Files
      ¶
    
- artifact.go
- authenticate.go
- azure_client.go
- builder.go
- capture_template.go
- config.go
- deployment_factory.go
- deployment_poller.go
- inspector.go
- openssh_key_pair.go
- step.go
- step_capture_image.go
- step_create_resource_group.go
- step_delete_os_disk.go
- step_delete_resource_group.go
- step_deploy_template.go
- step_get_certificate.go
- step_get_ip_address.go
- step_get_os_disk.go
- step_power_off_compute.go
- step_set_certificate.go
- step_validate_template.go
- template.go
- template_parameters.go
- tempname.go
 Click to show internal directories. 
   Click to hide internal directories.