diff --git a/driver.go b/driver.go
index 1fcc7c83e2dcd452d4e939d13f40ba51757b11a2..7e077ae2be868c9ef65f4bfe06f04e9132746751 100644
--- a/driver.go
+++ b/driver.go
@@ -3,11 +3,11 @@ package main
 import (
 	"context"
 	"fmt"
+	ioutil "io/ioutil"
 	"net"
 	"os"
 	"strings"
 	"time"
-	ioutil "io/ioutil"
 
 	"github.com/docker/machine/libmachine/drivers"
 	"github.com/docker/machine/libmachine/log"
@@ -535,19 +535,14 @@ func (d *Driver) makeCreateServerOptions() (*hcloud.ServerCreateOpts, error) {
 		return nil, err
 	}
 
-	UserData := d.userData
-
-	if d.userDataFromFile == true {
-		readUserData, err := ioutil.ReadFile(d.userData)
-		if err != nil {
-			return nil, err
-		}
-		UserData = string(readUserData)
+	userData, err := d.getUserData()
+	if err != nil {
+		return nil, err
 	}
 
 	srvopts := hcloud.ServerCreateOpts{
 		Name:           d.GetMachineName(),
-		UserData:       UserData,
+		UserData:       userData,
 		Labels:         d.ServerLabels,
 		PlacementGroup: pgrp,
 	}
@@ -592,6 +587,20 @@ func (d *Driver) makeCreateServerOptions() (*hcloud.ServerCreateOpts, error) {
 	return &srvopts, nil
 }
 
+func (d *Driver) getUserData() (string, error) {
+	userData := d.userData
+
+	if !d.userDataFromFile {
+		return userData, nil
+	}
+
+	readUserData, err := ioutil.ReadFile(d.userData)
+	if err != nil {
+		return "", err
+	}
+	return string(readUserData), nil
+}
+
 func (d *Driver) setPublicNetIfRequired(srvopts *hcloud.ServerCreateOpts) error {
 	pip4, err := d.getPrimaryIPv4()
 	if err != nil {