// // configureForLinux sets up the VM role for Linux specific configuration // // Paramters: // role: role that needs to be updated with Linux configuration // dnsName: name of the machine that we are trying to create // // Returns: // error: errors from reading certs, getting thumbprint and adding // certificate to hostedservice // func (d *Driver) configureForLinux(role *virtualmachine.Role, dnsName string) error { // Get the Azure client client, err := d.getClient() if err != nil { return err } mediaLink := fmt.Sprintf("http://%s.blob.core.windows.net/vhds/%s.vhd", d.StorageAccount, dnsName) // Setup the image configuration vmutils.ConfigureDeploymentFromPlatformImage( role, d.Image, mediaLink, "") // Read the certificate data, err := ioutil.ReadFile(d.azureCertPath()) if err != nil { return err } // Add the certificate to the hostedservice if _, err := hostedservice.NewClient(client).AddCertificate(dnsName, data, "pfx", ""); err != nil { return err } thumbPrint, err := getServiceCertFingerprint(d.azureCertPath()) if err != nil { return err } vmutils.ConfigureForLinux(role, dnsName, d.SSHUser, d.UserPassword, thumbPrint) vmutils.ConfigureWithPublicSSH(role) role.UseCertAuth = true role.CertPath = d.azureCertPath() // Attach VM to a specific subnet if d.Subnet != "" { err = vmutils.ConfigureWithSubnet(role, d.Subnet) if err != nil { log.Error("failed to configure subnet:", d.Subnet, ", err:", err) return err } log.Debug("subnet is:", d.Subnet) } return nil }