Я играю с 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