Packer: La copia de WinRM de los libros de cocina del chef es demasiado lenta

Creado en 2 mar. 2018  ·  3Comentarios  ·  Fuente: hashicorp/packer

He visto muchos problemas relacionados con el mismo. Pero al comparar la rapidez con la que la cocina de prueba (https://github.com/test-kitchen/winrm-transport) copia archivos en una máquina con Windows para la misma lista de ejecución, esto parece un problema que podría resolverse. En mi caso, la copia del empaquetador tarda casi una hora, mientras que la cocina de prueba lo hace en menos de 5 minutos. Esto me parece una mala implementación. Me encantaría ayudar en todo lo posible. Esto está ralentizando la construcción de nuestras ventanas en una cantidad muy significativa y probar pequeños cambios está desperdiciando demasiadas horas de ingeniería.

Ref: https://github.com/hashicorp/packer/issues/2648

communicatowinrm enhancement

Comentario más útil

Cualquiera que busque acelerar sus compilaciones de Windows WinRM puede solucionar este problema utilizando un aprovisionador de archivos para copiar todos los libros de cocina en un archivo zip antes de que se ejecute el aprovisionador chef-solo y especificando remote_cookbook_paths . Algo como esto ha acelerado drásticamente mis tiempos de construcción:

 "provisioners": [
    {
      "type": "file",
      "source": "berks-cookbooks.zip",
      "destination": "c:\\temp\\"
    },
    {
      "type": "powershell",
      "inline": [
        "Expand-Archive -LiteralPath c:\\temp\\berks-cookbooks.zip -DestinationPath C:\\temp"
      ]
    },
    {
      "type": "chef-solo",
      "version": "15.3.14",
      "chef_license": "accept",
      "guest_os_type": "windows",
      "remote_cookbook_paths": [
        "c:/temp/berks-cookbooks"
      ],
      "run_list": "{{user `ami_run_list`}}",
      }
    }

Todos 3 comentarios

Me di cuenta de que Packer "colgaba" en el paso de aprovisionamiento de chef-solo que copia sobre libros de cocina. Casi parece que está copiando un archivo cada 3 segundos. Inicié sesión en la instancia EC2 durante esta operación y verifiqué que el recuento de archivos está aumentando tan lentamente.

Resumen de la salida de registro relevante:
https://gist.github.com/JCapriotti/4ecfe4a1e20fcbd879161086b0815861

Desafortunadamente, dependemos de unos 13 libros de cocina, y esto agrega aproximadamente 45 minutos a nuestra construcción. ¡Solo para copiar archivos!

Cualquiera que busque acelerar sus compilaciones de Windows WinRM puede solucionar este problema utilizando un aprovisionador de archivos para copiar todos los libros de cocina en un archivo zip antes de que se ejecute el aprovisionador chef-solo y especificando remote_cookbook_paths . Algo como esto ha acelerado drásticamente mis tiempos de construcción:

 "provisioners": [
    {
      "type": "file",
      "source": "berks-cookbooks.zip",
      "destination": "c:\\temp\\"
    },
    {
      "type": "powershell",
      "inline": [
        "Expand-Archive -LiteralPath c:\\temp\\berks-cookbooks.zip -DestinationPath C:\\temp"
      ]
    },
    {
      "type": "chef-solo",
      "version": "15.3.14",
      "chef_license": "accept",
      "guest_os_type": "windows",
      "remote_cookbook_paths": [
        "c:/temp/berks-cookbooks"
      ],
      "run_list": "{{user `ami_run_list`}}",
      }
    }

Está bien si elimina la prioridad de winRM, pero esto debería ser un error de rendimiento en lugar de una mejora. Los tiempos de horneado son intolerables incluso con una lista de libros de cocina de tamaño medio. El nuestro es <3Mb, ¡pero la carga tarda 25 minutos!

¿Fue útil esta página
0 / 5 - 0 calificaciones