These are the inputs that can be provided to the tasks.
Each task can only take a specific set, indicated under the inputs property of the YAML.
env
The env input for a task expects to have a env.yml file.
This file contains properties for targeting and logging into the Ops Manager API.
basic authentication
1 2 3 4 5 6 7 8 9101112131415
---target:https://pcf.example.comconnect-timeout:30# default 5request-timeout:1800# default 1800skip-ssl-validation:false# default falseusername:usernamepassword:password# decryption-passphrase is optional,# except for use with `import-installation`.# OpsMan depends on the passphrase# to decrypt the imported installation.# For other commands, providing this key allows# decryption of the OpsMan VM after reboot,# which would otherwise need to be done manually.decryption-passphrase:passphrase
uaa authentication
1 2 3 4 5 6 7 8 9101112131415
---target:https://pcf.example.comconnect-timeout:30# default 5request-timeout:1800# default 1800skip-ssl-validation:false# default falseclient-id:client_idclient-secret:client_secret# decryption-passphrase is optional,# except for use with `import-installation`.# OpsMan depends on the passphrase# to decrypt the imported installation.# For other commands, providing this key allows# decryption of the OpsMan VM after reboot,# which would otherwise need to be done manually.decryption-passphrase:passphrase
Getting the client-id and client-secret
Ops Manager will by preference use Client ID and Client Secret if provided.
To create a Client ID and Client Secret
uaac target https://YOUR_OPSMANAGER/uaa
uaac token sso get if using SAML or uaac token owner get if using basic auth. Specify the Client ID as opsman and leave Client Secret blank.
---opsman-configuration:aws:region:us-west-2vm_name:ops-manager-vm# defaults ops-manager-vmboot_disk_size:100# default 200vpc_subnet_id:subnet-0292bc845215c2cbfsecurity_group_id:sg-0354f804ba7c4bc41key_pair_name:ops-manager-keyiam_instance_profile_name:ops-manager-iaminstance_type:m5.large# At least one IP address (public or private)# needs to be assigned to the VM.# It is also permissable to assign both.public_ip:1.2.3.4private_ip:10.0.0.2# Required if use_instance_profile is false# omit if using Instance Profilesaccess_key_id:sample-access-idsecret_access_key:sample-secret-access-key# If using Instance Profiles (omit if using AWS Credentials)use_instance_profile:true# default false# Optional, necessary if a role is needed to authorize the instance profileassume_role:arn:aws:iam::123456789:role/test
Info
At least one IP address (public or private) must be assigned to the Ops Manager VM.
Both can be assigned, too.
Using instance_profile to Avoid Secrets
For authentication you must either set use_instance_profile: true
or provide a secret_key_id and secret_access_key.
You must remove key information if you're using an instance profile.
Using an instance profile allows you to avoid interpolation,
as this file then contains no secrets.
---opsman-configuration:azure:subscription_id:90f35f10-ea9e-4e80-aac4-d6778b995532resource_group:res-grouptenant_id:3e52862f-a01e-4b97-98d5-f31a409df682client_id:5782deb6-9195-4827-83ae-a13fda90aa0dclient_secret:6Iaue71Lqxfqlocation:westuscontainer:opsmanagerimage# container for opsman imagenetwork_security_group:ops-manager-security-group# Note that there are several environment-specific details in this pathvpc_subnet:/subscriptions/<MY_SUBSCRIPTION_ID>/resourceGroups/<MY_RESOURCE_GROUP>/providers/Microsoft.Network/virtualNetworks/<MY_VNET>/subnets/<MY_SUBNET>storage_account:opsman# account name of container# Optional# only needed if your client doesn't have the needed storage permissionsstorage_key:pEuXDaDK/WWo...ssh_public_key:ssh-rsa AAAAB3NzaC1yc2EAZ...# ssh key to access VMvm_name:ops-manager-vm# default: ops-manager-vmboot_disk_size:100# default: 200cloud_name:AzureCloud# default: AzureCloud# This flag is only respected by the create-vm & upgrade-opsman commands# set to true if you want to create the new opsman vm with unmanaged disk# delete-vm discovers the disk type from the VMuse_unmanaged_disk:false# At least one IP address (public or private)# needs to be assigned to the VM.# It is also permissable to assign both.public_ip:1.2.3.4private_ip:10.0.0.3
Info
At least one IP address (public or private) must be assigned to the Ops Manager VM.
Both can be assigned, too.
---opsman-configuration:gcp:# either gcp_service_account json is required# or a gcp_service_account_name associated with the project# you must remove whichever you don't usegcp_service_account:|{"type": "service_account","project_id": "project-id","private_key_id": "af719b1ca48f7b6ac67ca9c5319cb175","private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n","client_email": "user@project-id.iam.gserviceaccount.com","client_id": "1234567890","auth_uri": "https://accounts.google.com/o/oauth2/auth","token_uri": "https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/user%40project-id.iam.gserviceaccount.com"}gcp_service_account_name:user@project-id.iam.gserviceaccount.comproject:project-idregion:us-central1zone:us-central1-bvm_name:ops-manager-vm# default: ops-manager-vm# For SharedVPC: projects/[HOST_PROJECT_ID]/regions/[REGION]/subnetworks/[SUBNET]vpc_subnet:infrastructure-subnettags:ops-manager# This CPU, Memory and disk size demonstrated here# match the defaults, and needn't be included if these are the desired valuescustom_cpu:2custom_memory:8boot_disk_size:100# At least one IP address (public or private) needs to be assigned to the VM.public_ip:1.2.3.4.private_ip:10.0.0.2# scopes to add to created vmscopes:["my-scope"]# key to ssh onto the Ops Manger VM.# used to manage non-tile BOSH add-onsssh_public_key:ssh-rsa some-public-key...
Info
At least one IP address (public or private) must be assigned to the Ops Manager VM.
Both can be assigned, too.
Using a Service Account Name to Avoid Secrets
For authentication either gcp_service_account or gcp_service_account_name is required.
You must remove the one you are not using
note that using gcp_service_account_name allows you to avoid interpolation,
as this file then contains no secrets.
Support for Shared VPC is done via
configuring the vpc_subnet path
to include the host project id, region of the subnet, and the subnet name.
---opsman-configuration:openstack:auth_url:http://os.example.com:5000/v2.0project_name:projectnet_id:26a13112-b6c2-11e8-96f8-529269fb1459username:adminpassword:passwordkey_pair_name:opsman-keypairsecurity_group_name:opsman-sec-groupvm_name:ops-manager-vm# default: ops-manager-vm# At least one IP address (public or private) needs to be assigned to the VM.public_ip:1.2.3.4private_ip:10.0.0.3flavor:m1.xlarge# default: m1.xlargeproject_domain_name:defaultuser_domain_name:defaultidentity_api_version:3# default: 2insecure:true# default: falseavailability_zone:zone-01
Info
At least one IP address (public or private) must be assigned to the Ops Manager VM.
Both can be assigned, too.
---opsman-configuration:vsphere:vcenter:url:vcenter.example.comusername:adminpassword:passworddatastore:exmple-ds-1ca_cert:certificatehost:example-host# vCenter host to deploy Ops Manager indatacenter:example-dcresource_pool:/example-dc/host/example-host/Resources/ResPool# or /<Data Center Name>/host/<Cluster Name>folder:/example-dc/vm/Folderinsecure:1# default: 0 (secure); 1 (insecure)disk_type:thin# example: thin|thickprivate_ip:10.0.0.2dns:8.8.8.8ntp:ntp.example.com# example: ntp.ubuntu.comssh_password:passwordssh_public_key:ssh-rsa ......# for Ops Manager >= 2.3, required for Ops Manager >= 2.6hostname:pcf.example.comnetwork:virtual-network# vcenter network to deploy tonetmask:255.255.255.192gateway:192.168.10.1vm_name:ops-manager-vm# default: ops-manager-vmmemory:8# default: 8 GBcpu:1# default: 1
director config
The config director will set the bosh tile (director) on Ops Manager.
The config input for a director task expects to have a director.yml file.
The configuration of the director.yml is IAAS specific for some properties -- i.e. networking.
There are two ways to build a director config.
Using an already deployed Ops Manager, you can extract the config using staged-director-config.
Deploying a brand new Ops Manager requires more effort for a director.yml.
The configuration of director is variables based on the features enabled.
For brevity, this director.yml is a basic example for vsphere.
The IAAS specific configuration can be found in the Ops Manager API documentation.
Included below is a list of properties that can be set in the director.yml
and a link to the API documentation explaining any IAAS specific properties.
az-configuration - a list of availability zones Ops Manager API
network-assignment - the network the bosh director is deployed to Ops Manager API
networks-configuration - a list of named networks Ops Manager API
properties-configuration
iaas_configuration - configuration for the bosh IAAS CPI Ops Manager API
director_configuration - properties for the bosh director Ops Manager API
security_configuration - security properties for the bosh director Ops Manager API
syslog_configuration - configure the syslog sinks for the bosh director Ops Manager API
resource-configuration - IAAS VM flavor for the bosh director Ops Manager API
vmextensions-configuration - create/update/delete vm extensions Ops Manager API
GCP Shared VPC
Support for Shared VPC is done via configuring the iaas_identifier path for the infrastructure subnet,
which includes the host project id, region of the subnet, and the subnet name.
For example:
[HOST_PROJECT_ID]/[NETWORK]/[SUBNET]/[REGION]
product config
There are two ways to build a product config.
Using an already deployed product (tile), you can extract the config using staged-config.
Use an example and fill in the values based on the meta information from the tile.
For brevity, this product.yml is a basic example for healthwatch.
### opsman image
This file is an [artifact from Pivnet](https://network.pivotal.io/products/ops-manager), which contains the VM image on an IAAS.
For vsphere and openstack, it is a full disk image.
For AWS, GCP, and Azure, it is the YAML file of the image locations.
An example on how to pull the AWS image resource using the [Pivnet Concourse Resource](https://github.com/pivotal-cf/pivnet-resource).
```yaml
resource_types:
- name: pivnet
type: docker-image
source:
repository: pivotalcf/pivnet-resource
tag: latest-final
resources:
- name: opsman-image
type: pivnet
source:
api_token: ((pivnet_token))
product_slug: ops-manager
product_version: 2.*
sort_by: semver
jobs:
- name: get-the-resource
plan:
- get: opsman-image
params:
globs: ["*AWS*.yml"]
installation
The file contains the information to restore an Ops Manager VM.
The installation input for a opsman VM task expects to have a installation.zip file.
This file can be exported from an Ops Manager VM using the export-installation.
This file can be imported to an Ops Manager VM using the import-installation.
Warning
This file cannot be manually created. It is a file that must be generated via the export function of Ops Manager.
stemcell
This stemcell input requires the stemcell tarball (.tgz) as downloaded from Pivnet.
It must be in the original filename as that is used by Ops Manager to parse metadata.
The filename could look like bosh-stemcell-3541.48-vsphere-esxi-ubuntu-trusty-go_agent.tgz.
Warning
This file cannot be manually created. It is a file that must retrieved from Pivnet.
This file cannot be manually created. It is a file that must retrieved from Pivnet.
download-product-config
The config input for a download product task can be used with a download-config.yml file to download a tile.
The configuration of the download-config.yml looks like this:
---pivnet-api-token:token## Note that file globs must be quoted if they start with *;## otherwise they'll be interpreted as a YAML anchor.pivnet-file-glob:"*.pivotal"pivnet-product-slug:product-slugs## defaults to false and should be excluded if not set to true# pivnet-disable-ssl: true## Either product-version OR product-version-regex is required# product-version: 1.2.3## Note that the regex mustn't be quoted,## as escape characters for the regex will confuse yaml parsers.# product-version-regex: ^1\.2\..*$## If set, will attempt to download the latest stemcell for the product.## Ignored if the specified file is not a `.pivotal` file.## Valid options are: aws, azure, google, openstack, vsphere.# stemcell-iaas: google## The following are required only if using download-product-s3.## Any key marked required above is still required when using S3.## If s3-bucket is set,## downloaded product files will have their slug and version prepended.s3-bucket:s3-buckets3-region-name:us-west-1# required; sufficient for AWSs3-endpoint:s3.endpoint.com# if not using AWS, this is required## Required unless `s3-auth-method` is `iam`s3-access-key-id:aws-or-minio-key-ids3-secret-access-key:aws-or-minio-secret-key## Optional paths for both the product and the associated stemcell## defaults to the root path of the specified bucket# s3-product-path: /path/to/product# s3-stemcell-path: /path/to/stemcell## defaults to false and should be excluded if not set to true# s3-disable-ssl: true## defaults to false;## made available only because sometimes necessary for compatibility# s3-enable-v2-signing: true## defaults to accesskey;## allows use of AWS instance IAM creds, if available# s3-auth-type: iam
download-stemcell-product-config
The config input for a download product task can be used with a download-config.yml file to download a stemcell.
The configuration of the download-config.yml looks like this:
---pivnet-api-token:token## Note that file globs must be quoted if they start with *;## otherwise they'll be interpreted as a YAML anchor.pivnet-file-glob:"*vsphere*"pivnet-product-slug:stemcells-ubuntu-xenial## defaults to false and should be excluded if not set to true# pivnet-disable-ssl: true## Either product-version OR product-version-regex is required# product-version: "250.82"## Note that the regex mustn't be quoted,## as escape characters for the regex will confuse yaml parsers.# product-version-regex: ^250\..*$## The following are required only if using download-product-s3.## Any key marked required above is still required when using S3.## If s3-bucket is set,## downloaded product files will have their slug and version prepended.s3-bucket:s3-buckets3-region-name:us-west-1# required; sufficient for AWSs3-endpoint:s3.endpoint.com# if not using AWS, this is required## Required unless `s3-auth-method` is `iam`s3-access-key-id:aws-or-minio-key-ids3-secret-access-key:aws-or-minio-secret-key## Optional paths for both the product and the associated stemcell## defaults to the root path of the specified bucket# s3-product-path: /path/to/product# s3-stemcell-path: /path/to/stemcell## defaults to false and should be excluded if not set to true# s3-disable-ssl: true## defaults to false;## made available only because sometimes necessary for compatibility# s3-enable-v2-signing: true## defaults to accesskey;## allows use of AWS instance IAM creds, if available# s3-auth-type: iam