Как настроить нож и 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 для создания нового узла?
4 ответа
Я предполагаю, что вы получаете эту ошибку при создании нового узла, а не при попытке установить учетные данные безопасности в вашем 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
команда. Вам нужно указывать пару ключей SSH при каждом запуске экземпляра Amazon EC2. Этот открытый ключ SSH добавляется во вновь запущенный экземпляр, чтобы разрешить вход без пароля в SSH. Пары ключей могут быть созданы или импортированы. Пары ключей (для региона Восток США) можно найти в разделе EC2 -> "Пары ключей" консоли Amazon AWS.
Как только вы выберете SSH Keypair, вы можете указать его имя в вашем 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]"
Как упоминалось выше, rhetonik - вам нужно указать имя пары ключей, которое будет использоваться для нового сервера. Один из вариантов - передать его напрямую, используя ключ -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