(longa história curta, ele usa FOG .)
Se eu entendi sua pergunta corretamente, acho que vem do EC2 assim:
lib/chef/knife/ec2_server_create.rb
sabe alguma coisa sobre a chave SSH nome nesta seção ( def run
) :
server = connection.servers.create(create_server_def)
# ...
msg_pair("SSH Key", server.key_name)
este connection.servers.create
pode ser encontrado em lib/chef/knife/ec2_base.rb
, onde encontramos :
def connection
@connection ||= begin
connection = Fog::Compute.new(
:provider => 'AWS',
:aws_access_key_id => Chef::Config[:knife][:aws_access_key_id],
:aws_secret_access_key => Chef::Config[:knife][:aws_secret_access_key],
:region => locate_config_value(:region)
)
end
end
i.e. ele usa o FOG que fala com a AWS e, portanto, sabe como lidar com o nome da chave ... Suponho (?)