builder/amazonebs: Add ssh_* settings

This commit is contained in:
Mitchell Hashimoto 2013-05-21 11:36:26 -07:00
parent 4453fda2e8
commit dfc332f98c
2 changed files with 7 additions and 4 deletions

View File

@ -22,6 +22,8 @@ type config struct {
Region string Region string
SourceAmi string `mapstructure:"source_ami"` SourceAmi string `mapstructure:"source_ami"`
InstanceType string `mapstructure:"instance_type"` InstanceType string `mapstructure:"instance_type"`
SSHUsername string `mapstructure:"ssh_username"`
SSHPort int `mapstructure:"ssh_port"`
// Configuration of the resulting AMI // Configuration of the resulting AMI
AMIName string `mapstructure:"ami_name"` AMIName string `mapstructure:"ami_name"`

View File

@ -16,6 +16,7 @@ type stepConnectSSH struct {
} }
func (s *stepConnectSSH) Run(state map[string]interface{}) StepAction { func (s *stepConnectSSH) Run(state map[string]interface{}) StepAction {
config := state["config"].(config)
instance := state["instance"].(*ec2.Instance) instance := state["instance"].(*ec2.Instance)
privateKey := state["privateKey"].(string) privateKey := state["privateKey"].(string)
ui := state["ui"].(packer.Ui) ui := state["ui"].(packer.Ui)
@ -31,7 +32,7 @@ func (s *stepConnectSSH) Run(state map[string]interface{}) StepAction {
// Build the actual SSH client configuration // Build the actual SSH client configuration
sshConfig := &gossh.ClientConfig{ sshConfig := &gossh.ClientConfig{
User: "ubuntu", User: config.SSHUsername,
Auth: []gossh.ClientAuth{ Auth: []gossh.ClientAuth{
gossh.ClientAuthKeyring(keyring), gossh.ClientAuthKeyring(keyring),
}, },
@ -43,9 +44,9 @@ func (s *stepConnectSSH) Run(state map[string]interface{}) StepAction {
time.Sleep(time.Duration(i) * time.Second) time.Sleep(time.Duration(i) * time.Second)
log.Printf( log.Printf(
"Opening TCP conn for SSH to %s:22 (attempt %d)", "Opening TCP conn for SSH to %s:%d (attempt %d)",
instance.DNSName, i+1) instance.DNSName, config.SSHPort, i+1)
s.conn, err = net.Dial("tcp", fmt.Sprintf("%s:22", instance.DNSName)) s.conn, err = net.Dial("tcp", fmt.Sprintf("%s:%d", instance.DNSName, config.SSHPort))
if err != nil { if err != nil {
continue continue
} }