Pregunta ¿Cómo configurar blade y EC2 para crear una nueva instancia desde la línea de comandos?


Estoy jugando con Amazon EC2 para crear instancia. Yo estaba leyendo aquí: Aquí en la documenación cuchillo para EC2., que tendría que configurar:

# EC2:
knife[:aws_access_key_id]     = "Your AWS Access Key"
knife[:aws_secret_access_key] = "Your AWS Secret Access Key"

Ahora, cuando intento configurar las credenciales de seguridad de la consola de AWS en mi knife.rb, obtengo un

ERROR: You did not provide a valid 'AWS SSH Key Id' value.

Y, cuando creo un nuevo "par de llaves" obtengo un archivo .pem, que también me confunde.

¿Cómo configuro mi cuchillo y EC2 para crear un nuevo nodo?


4
2018-01-27 18:41


origen


¿Podrías confirmar si recibes un error? cuando intenta establecer las credenciales de seguridad en knife.rb o cuando ejecutas un knife ec2 create¿mando? En el caso de este último, ¿podría actualizar su pregunta con el comando exacto que se ejecutó? - rhetonik
Keypairs se usa para la autenticación ssh, que es diferente a la clave de acceso y la clave secreta de aws. Puede encontrarlos en las Credenciales de seguridad de su cuenta, pero le recomiendo que cree un usuario de IAM y le otorgue permisos específicos en lugar de usar el inicio de sesión de root. El usuario de IAM tendrá su propio conjunto de acceso y claves secretas para usar. - Jason Floyd
Muy interesante para crear un usuario IAM. Solo estoy tratando, gracias - poseid
Hmm ... ahora recibo: ERROR: Fog :: Compute :: AWS :: NotFound: El par de claves '/Users/pmu/.chef/new_test.pem' no existe - poseid


Respuestas:


Supongo que está recibiendo este error mientras se crea un nuevo nodo y no cuando intenta establecer las credenciales de seguridad en su knife.rb.

Para ser precisos, el error debería aparecer al iniciar:

knife ec2 server create -I <ami-id>

El error

ERROR: You did not provide a valid 'AWS SSH Key Id' value.

es debido a un SSH Keypair faltante en su knife ec2 server create mando. Debe especificar un par de claves SSH cada vez que inicie una instancia de Amazon EC2. Esta clave pública SSH se agrega a una instancia recién iniciada para habilitar un inicio de sesión SSH sin contraseña. Keypairs pueden ser creados o importados. Keypairs (para EE. UU. Región del este) se puede encontrar en EC2 -> sección de sillas de llaves de su consola de Amazon AWS.

Una vez que elija un par de llaves SSH, puede especificar su nombre en su knife ec2 create comando como:

knife ec2 server create -I <ami-id> -S <your-ssh-keypair-name>

Nota: Esto lanzará una instancia de EC2 fuera del especificado ami-id y con el par de llaves SSH. Cuchillo avanzará hacia knife bootstrap Una vez que se lanza la instancia. Para hacerlo, debe asegurarse de que la clave privada del par de claves SSH se agregue a su sesión de ssh-agent antes de iniciando un knife ec2 server create. También es posible que desee especificar la URL de su servidor Chef con --server-url opción de knife ec2 server create.


9
2018-01-28 13:02



Además, el formato de las claves de AWS en el archivo de cuchillo era realmente knife [: ...] = 'key' para aquellos que están confundidos por las reglas de formato de cuchillo también - poseid


Si desea almacenar la configuración en el archivo knife.rb:

knife[:aws_ssh_key_id] = 'pemfilename'

nombre de archivo pem debe ser el nombre del archivo pem sin la extensión .pem y debe estar ubicado en: ~ / .ssh / Además, tiene que ser chmodded 600: (chmod 600 ~ / .ssh / pemfile.pem)

Así que si tu archivo pem es ~ / .ssh / mypem.pem necesitas configurar:

knife[:aws_ssh_key_id] = 'mypem'

Luego la clave de acceso y las claves secretas de acceso:

knife[:aws_access_key_id] = 'AAAAAAAAAAAAAAAAAAAA'
knife[:aws_secret_access_key] = 'UYUYW/IUYITYUIGGUGIUYGKJHGHG'

Después de guardar el archivo, puede ejecutar:

knife ec2 server create --node-name mynodename.mydomain.com --run-list "role[myrole]"

8
2017-08-07 21:00



Esto funcionó para mí. Solo una advertencia para agregar - [: aws_secret_access_key] se encuentra en la parte superior derecha de la consola bajo el nombre de usuario -> credenciales de seguridad. - jmreicha


Como se mencionó anteriormente, debe especificar el nombre del par de llaves que se utilizará para un nuevo servidor. Una opción es pasarlo directamente usando -S cambiar a knife ec2 mando, La otra opción es agregar algo así a tu knife.rb archivo de configuración:

knife [: aws_ssh_key_id] = "myawshosts"


2
2018-02-15 02:42





Además de las otras respuestas. los aws_ssh_key_id debe ser uno de los 'nombres de pares de claves' registrados con su cuenta de AWS. Esto generalmente corresponde con su nombre de archivo de clave ssh, pero puede diferir.

Puede ver estos valores de aws ec2 'Key pair name' en la pantalla EC2 'Network & Security -> Key Pairs'.

Si está utilizando AWS CLI, también puede mirar los valores de "KeyName" cuando se ejecuta aws ec2 describe-key-pairs


1
2017-10-12 13:09