2012-01-18 11 views
6

Esta es una tarea súper básica, pero no puedo encontrar documentación sobre ella. Estoy arrancando máquinas EC2 usando un chef-servidor y chef. Si eso falla, me gustaría arreglar las recetas y luego reinstalar el rol y las recetas en esa máquina sin sacar el nodo y volver a crearlo. No puedo encontrar el comando que hace eso.Recargar las recetas del chef si la instalación falla o hay actualizaciones disponibles

Si me quedo cocinero-cliente en la máquina me sale:

chef-client 
[Wed, 18 Jan 2012 11:23:58 +0000] INFO: *** Chef 0.10.0 *** 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List is [] 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List expands to [] 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Starting Chef Run for gidsy-staging-web 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Loading cookbooks [] 
[Wed, 18 Jan 2012 11:23:59 +0000] WARN: Node gidsy-staging-web has an empty run list. 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Chef Run complete in 0.508629 seconds 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Running report handlers 
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Report handlers complete 

Gracias

+0

La descripción del problema no es muy clara, entre EC2 y Chef hay cierta superposición de terminología. No está claro a qué se refiere con "sin sacar el nodo y volver a crearlo" (nodo de chef o nodo EC2?) ¿Cuál es el resultado de su ejecución fallida? ¿Por qué está vacía su lista de ejecución? No he visto una ocasión en la que una ejecución fracasada Chef vacíe la lista de ejecución de un nodo. – lhagemann

Respuesta

8

que he encontrado el mismo problema y esto es lo que he resuelto el problema.

En primer lugar, se aplica el papel (s) en cuestión a la instancia usando el cuchillo:

$ knife node run_list add [NODE] [ENTRY] 

Be sure and include the items in [ENTRY] in quotes (for example, "role[my-role]"). 

Una vez que el papel se ha aplicado a la instancia EC2, que luego llamar a cocinero-cliente en el caso de que se trate .

$ sudo chef-client 

Esto debería acelerar su ciclo de desarrollo sustancialmente.

+0

sí, eso funciona. ¡Gracias! eso me ahorrará mucho tiempo. –

+0

¡Sean bienvenidos, Philipp! –

2

La respuesta de Jordan realmente me ayudó, pero para aquellos que están comenzando como yo los explicaré con más detalle.

Me estoy ejecutando en EC2 y estaba recibiendo el error anterior. Esto es lo que hice para resolverlo:

  1. En mi máquina local, ejecute: knife ec2 server list para obtener el nodo principal en el servidor EC2
  2. Añadir la lista de ejecución a ese nodo de mi máquina dev locales: knife node run_list add i-xxxxx "role[aws-db-deploy]" donde i-xxxxx es el nombre de nodo
  3. ssh en sus AWS instancia EC2 y ejecutar el comando: sudo chef-client

esperanza esto ayuda

0

puede ejecutar º e chef-cliente con la lista de ejecución:

$ sudo chef-client --runlist <role> 
Cuestiones relacionadas