Назад | Перейти на главную страницу

Как настроить нож и EC2 для создания нового экземпляра из командной строки?

Я играю с Amazon EC2 для создания экземпляра. Я читал здесь: здесь в документации на нож для EC2, что мне нужно будет установить:

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

Теперь, когда я пытаюсь установить учетные данные безопасности с консоли AWS в моем Knife.rb, я получаю

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

И когда я создаю новую «пару ключей», я получаю файл .pem, что тоже меня смущает.

Как мне настроить мой нож и EC2 для создания нового узла?

Я предполагаю, что вы получаете эту ошибку при создании нового узла и нет когда вы пытаетесь установить учетные данные безопасности в вашем knife.rb.

Если быть точным, ошибка должна появиться при запуске:

knife ec2 server create -I <ami-id>

Ошибка

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

из-за отсутствия пары ключей SSH в вашем knife ec2 server create команда. При запуске экземпляра Amazon EC2 необходимо указывать пару ключей SSH. Этот открытый ключ SSH добавляется к только что запущенному экземпляру, чтобы разрешить вход SSH без пароля. Пары ключей можно создавать или импортировать. Пары ключей (для региона Восток США) можно найти на EC2 -> Раздел Keypairs консоли Amazon AWS.

Выбрав пару ключей SSH, вы можете указать ее имя в своем knife ec2 create команда как:

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

Заметка: Это запустит экземпляр EC2 из указанного ami-id и с парой ключей SSH. Нож пойдет в сторону knife bootstrap после запуска экземпляра. Для этого вам необходимо убедиться, что закрытый ключ пары ключей SSH добавлен в ваш сеанс ssh-agent. перед инициирование knife ec2 server create. Вы также можете указать URL-адрес сервера Chef с помощью --server-url вариант knife ec2 server create.

Если вы хотите сохранить настройки в файле knife.rb:

knife[:aws_ssh_key_id] = 'pemfilename'

pemfilename должно быть именем файла pem без расширения .pem, и он должен находиться в: ~ / .ssh / Кроме того, он должен быть chmodded 600: (chmod 600 ~ / .ssh / pemfile.pem)

Итак, если ваш файл PEM ~ / .ssh / mypem.pem вам необходимо установить:

knife[:aws_ssh_key_id] = 'mypem'

Затем ключ доступа и секретные ключи принимают:

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

После сохранения файла можно запустить:

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

Как упоминалось выше, вам нужно указать имя пары ключей, которое будет использоваться для нового сервера. Один из вариантов - передать его напрямую, используя переключатель -S в knife ec2 команда, другой вариант - добавить что-то подобное в ваш knife.rb Файл конфигурации:

нож [: aws_ssh_key_id] = "myawshosts"

В дополнение к другим ответам. В aws_ssh_key_id должно быть одним из «имен пар ключей», зарегистрированных в вашей учетной записи AWS. Обычно это соответствует имени вашего файла ключей ssh, но может отличаться.

Вы можете увидеть эти значения aws ec2 «Имя пары ключей» на экране EC2 «Сеть и безопасность -> Пары ключей».

Если вы используете AWS CLI, вы также можете посмотреть значения «KeyName» при запуске aws ec2 describe-key-pairs