Existen varias opciones para configurar plantillas de nube a fin de permitir la administración de la configuración basada en Puppet en recursos informáticos de vCenter.

Puppet en vSphere con autenticación de nombre de usuario y contraseña

El siguiente ejemplo muestra un código de YAML de ejemplo para Puppet en un archivo OVA de vSphere con autenticación de nombre de usuario y contraseña.

Tabla 1.
Ejemplo de... YAML de blueprint de ejemplo
Código de YAML de ejemplo para Puppet en un archivo OVA de vSphere con autenticación de nombre de usuario y contraseña.
inputs:
  username:
    type: string
    title: Username
    default: puppet
  password:
    type: string
    title: Password
    encrypted: true
    default: VMware@123
resources:
  Puppet_Agent:
    type: Cloud.Puppet
    properties:
      provider: PEonAWS
      environment: dev
      role: 'role::linux_webserver'
      username: '${input.username}'
      password: '${input.password}'
      useSudo: true
      host: '${Webserver.*}’
      osType: linux
      agentConfiguration:
        runInterval: 15m
        certName: ‘${Machine.address}'
  Webserver:
    type: Cloud.vSphere.Machine
    properties:
      cpuCount: 1
      totalMemoryMB: 1024
      imageRef: >-
https://cloud-images.ubuntu.com/releases/16.04/release-20170307/ubuntu-16.04-server-cloudimg-amd64.ova
      cloudConfig: |
        #cloud-config
        ssh_pwauth: yes
        chpasswd:
          list: |
            ${input.username}:${input.password}
          expire: false
        users:
          - default
          - name: ${input.username}
            lock_passwd: false
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: [wheel, sudo, admin]
            shell: '/bin/bash'
            ssh-authorized-keys:
              - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDytVL+Q6+vGbmkXoRpX [email protected]
        runcmd:
          - echo "Defaults:${input.username}
Código de YAML de ejemplo para Puppet en un archivo OVA de vSphere con autenticación de nombre de usuario y contraseña en el recurso informático.
inputs:
  username:
    type: string
    title: Username
    default: puppet
  password:
    type: string
    title: Password
    encrypted: true
    default: VMware@123
resources:
  Puppet_Agent:
    type: Cloud.Puppet
    properties:
      provider: PEonAWS
      environment: dev
      role: 'role::linux_webserver'
      username: '${input.username}'
      password: '${input.password}'
      useSudo: true
      host: '${Webserver.*}’
      osType: linux
      agentConfiguration:
        runInterval: 15m
        certName: ‘${Machine.address}'
  Webserver:
    type: Cloud.vSphere.Machine
    properties:
      cpuCount: 1
      totalMemoryMB: 1024
      imageRef: >-
https://cloud-images.ubuntu.com/releases/16.04/release-20170307/ubuntu-16.04-server-cloudimg-amd64.ova
      cloudConfig: |
        #cloud-config
        ssh_pwauth: yes
        chpasswd:
          list: |
            ${input.username}:${input.password}
          expire: false
        users:
          - default
          - name: ${input.username}
            lock_passwd: false
            sudo: ['ALL=(ALL) NOPASSWD:ALL']
            groups: [wheel, sudo, admin]
            shell: '/bin/bash'
            ssh-authorized-keys:
              - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDytVL+Q6+vGbmkXoRpX [email protected]
        runcmd:
          - echo "Defaults:${input.username}
Código de YAML para Puppet en una instancia de vCenter con autenticación de contraseña con acceso remoto habilitado en el recurso informático.
inputs:
  username:
    type: string
    title: Username
    description: Username to use to install Puppet agent
    default: puppet
  password:
    type: string
    title: Password
    default: VMware@123
    encrypted: true
    description: Password for the given username to install Puppet agent
resources:
  Puppet-Ubuntu:
    type: Cloud.vSphere.Machine
    properties:
      flavor: small
      imageRef: >-
        https://cloud-images.ubuntu.com/releases/16.04/release-20170307/ubuntu-16.04-server-cloudimg-amd64.ova
      remoteAccess:
        authentication: usernamePassword
        username: '${input.username}'
        password: '${input.password}'
  Puppet_Agent:
    type: Cloud.Puppet
    properties:
      provider: PEMasterOnPrem
      environment: production
      role: 'role::linux_webserver'
      username: '${input.username}'
      password: '${input.password}'
      host: '${Puppet-Ubuntu.*}'
      useSudo: true
      agentConfiguration:
        certName: '${Puppet-Ubuntu.address}'

Puppet en vSphere con autenticación de clave pública/privada generada

Tabla 2.
Ejemplo de... YAML de blueprint de ejemplo
Código de YAML para Puppet en un archivo OVA de vSphere con autenticación de clave pública/privada generada en el recurso informático.
inputs: {}
resources:
  Machine:
    type: Cloud.vSphere.Machine
    properties:
      flavor: small
      imageRef: >-
https://cloud-images.ubuntu.com/releases/16.04/release-20170307/ubuntu-16.04-server-cloudimg-amd64.ova
      remoteAccess:
        authentication: generatedPublicPrivateKey
  Puppet_Agent:
    type: Cloud.Puppet
    properties:
      provider: puppet-BlueprintProvisioningITSuite
      environment: production
      role: 'role::linux_webserver'
      host: '${Machine.*}’
      osType: linux
      username: ubuntu
      useSudo: true
      agentConfiguration:
        runInterval: 15m
        certName: ‘${Machine.address}'
          - echo "Defaults:${input.username}