Compartir a través de


Extensión de máquina virtual de Chef para Linux y Windows

Chef Software proporciona una plataforma de automatización de DevOps para Linux y Windows que permite la administración de las configuraciones de servidor físicas y virtuales. La extensión de máquina virtual de Chef es una extensión que habilita Chef en máquinas virtuales.

Requisitos previos

Sistema operativo

La extensión de máquina virtual de Chef se admite en todos los sistemas operativos admitidos por la extensión en Azure.

Conectividad de Internet

La extensión de máquina virtual de Chef requiere que la máquina virtual de destino esté conectada a Internet para recuperar la carga del cliente de Chef de la red de entrega de contenido (CDN).

Esquema de extensión

En el siguiente JSON, se muestra el esquema para la extensión de máquina virtual de Chef. La extensión requiere como mínimo la dirección URL del servidor de Chef, el nombre del cliente de validación y la clave de validación del servidor de Chef; estos valores se encuentran en el archivo knife.rb del archivo starter-kit.zip que se descarga cuando instala Chef Automate o un servidor de Chef independiente. Dado que la clave de validación debe tratarse como información confidencial, debe configurarse bajo el elemento protectedSettings, lo que significa que solo se descifrará en la máquina virtual de destino.

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "[concat(variables('vmName'),'/', parameters('chef_vm_extension_type'))]",
  "apiVersion": "2017-12-01",
  "location": "[parameters('location')]",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
  ],
  "properties": {
    "publisher": "Chef.Bootstrap.WindowsAzure",
    "type": "[parameters('chef_vm_extension_type')]",
    "typeHandlerVersion": "1210.13",
    "settings": {
      "bootstrap_options": {
        "chef_server_url": "[parameters('chef_server_url')]",
        "validation_client_name": "[parameters('chef_validation_client_name')]"
      },
      "runlist": "[parameters('chef_runlist')]"
    },
    "protectedSettings": {
      "validation_key": "[parameters('chef_validation_key')]"
    }
  }
}  

Valores de propiedad básicos

Nombre Valor / ejemplo Tipo de datos
apiVersion 2017-12-01 string (date)
publisher Chef.Bootstrap.WindowsAzure cadena
type LinuxChefClientLinux, ChefClient (Windows) string
typeHandlerVersion 1210.13 string (double)

Configuración

Nombre Valor / ejemplo Tipo de datos ¿Necesario?
settings/bootstrap_options/chef_server_url https://api.chef.io/organizations/myorg string (url) Y
settings/bootstrap_options/validation_client_name myorg-validator string Y
settings/runlist recipe[mycookbook::default] string Y

Configuración protegida

Nombre Ejemplo Tipo de datos ¿Necesario?
protectedSettings/validation_key -----BEGIN RSA PRIVATE KEY-----\nKEYDATA\n-----END RSA PRIVATE KEY----- string Y

Implementación de plantilla

Las extensiones de VM de Azure pueden implementarse con plantillas de Azure Resource Manager. Las plantillas se pueden utilizar para implementar una o varias máquinas virtuales, instalar el cliente de Chef, conectarse al servidor de Chef y realizar la configuración inicial en el servidor tal y como se define en la lista de ejecución

En la Galería de inicio rápido de Azure, hay una plantilla de Resource Manager de ejemplo que incluye la extensión de máquina virtual de Chef.

La configuración JSON de una extensión de máquina virtual puede estar anidada en el recurso de máquina virtual o colocada en la raíz o nivel superior de una plantilla JSON de Resource Manager. La colocación de la configuración JSON afecta al valor del nombre y tipo del recurso. Para obtener más información, consulte el artículo sobre cómo establecer el nombre y el tipo de recursos secundarios.

Implementación de la CLI de Azure

La CLI de Azure puede utilizarse para implementar la extensión de máquina virtual de Chef en una máquina virtual existente. Reemplace el parámetro validation_key por el contenido de la clave de validación (este archivo como una extensión .pem). Reemplace validation_client_name, chef_server_url y run_list con esos valores desde el archivo knife.rb en el kit de inicio.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myExistingVM \
  --name LinuxChefClient \
  --publisher Chef.Bootstrap.WindowsAzure \
  --version 1210.13 --protected-settings '{"validation_key": "<validation_key>"}' \
  --settings '{ "bootstrap_options": { "chef_server_url": "<chef_server_url>", "validation_client_name": "<validation_client_name>" }, "runlist": "<run_list>" }'

Solución de problemas y soporte técnico

Los datos sobre el estado de las implementaciones de extensiones pueden recuperarse desde Azure Portal y mediante la CLI de Azure. Para ver el estado de implementación de las extensiones de una máquina virtual determinada, ejecute el comando siguiente con la CLI de Azure.

az vm extension list --resource-group myResourceGroup --vm-name myExistingVM -o table

El resultado de la ejecución de las extensiones se registra en el archivo siguiente:

Linux

/var/lib/waagent/Chef.Bootstrap.WindowsAzure.LinuxChefClient

Windows

C:\Packages\Plugins\Chef.Bootstrap.WindowsAzure.ChefClient\

Códigos de error y su significado

Código de error Significado Acción posible
51 Esta extensión no se admite en el sistema operativo de la máquina virtual

Se puede encontrar más información adicional para solucionar problemas en el archivo Léame de la extensión de máquina virtual de Chef.

Nota

Para cualquier cosa relacionada directamente con Chef, póngase en contacto con el soporte técnico de Chef.

Pasos siguientes

Si necesita más ayuda con cualquier aspecto de este artículo, puede ponerse en contacto con los expertos de Azure en los foros de MSDN Azure o Stack Overflow. Como alternativa, puede registrar un incidente de soporte técnico de Azure. Vaya al sitio de soporte técnico de Azure y seleccione Obtener soporte. Para obtener información sobre el uso del soporte técnico, lea las Preguntas más frecuentes de soporte técnico de Microsoft Azure.