Merge pull request #2433 from dgageot/generic-driver
Improve Generic driver
This commit is contained in:
@@ -9,6 +9,7 @@ parent="smn_machine_drivers"
|
||||
<![end-metadata]-->
|
||||
|
||||
# Generic
|
||||
|
||||
Create machines using an existing VM/Host with SSH.
|
||||
|
||||
This is useful if you are using a provider that Machine does not support
|
||||
@@ -17,18 +18,18 @@ Machine to manage.
|
||||
|
||||
Options:
|
||||
|
||||
- `--generic-ip-address`: **required** IP Address of host.
|
||||
- `--generic-ssh-user`: SSH username used to connect.
|
||||
- `--generic-ssh-key`: Path to the SSH user private key.
|
||||
- `--generic-ssh-port`: Port to use for SSH.
|
||||
- `--generic-ip-address`: **required** IP Address of host.
|
||||
- `--generic-ssh-key`: **required** Path to the SSH user private key.
|
||||
- `--generic-ssh-user`: SSH username used to connect.
|
||||
- `--generic-ssh-port`: Port to use for SSH.
|
||||
|
||||
> **Note**: You must use a base operating system supported by Machine.
|
||||
|
||||
Environment variables and default values:
|
||||
|
||||
| CLI option | Environment variable | Default |
|
||||
|----------------------------|----------------------|---------------------|
|
||||
| **`--generic-ip-address`** | - | - |
|
||||
| `--generic-ssh-user` | - | `root` |
|
||||
| `--generic-ssh-key` | - | `$HOME/.ssh/id_rsa` |
|
||||
| `--generic-ssh-port` | - | `22` |
|
||||
| -------------------------- | -------------------- | ------------------- |
|
||||
| **`--generic-ip-address`** | `GENERIC_IP_ADDRESS` | - |
|
||||
| **`--generic-ssh-key`** | `GENERIC_SSH_KEY` | `$HOME/.ssh/id_rsa` |
|
||||
| `--generic-ssh-user` | `GENERIC_SSH_USER` | `root` |
|
||||
| `--generic-ssh-port` | `GENERIC_SSH_PORT` | `22` |
|
||||
@@ -34,23 +34,27 @@ var (
|
||||
func (d *Driver) GetCreateFlags() []mcnflag.Flag {
|
||||
return []mcnflag.Flag{
|
||||
mcnflag.StringFlag{
|
||||
Name: "generic-ip-address",
|
||||
Usage: "IP Address of machine",
|
||||
Name: "generic-ip-address",
|
||||
Usage: "IP Address of machine",
|
||||
EnvVar: "GENERIC_IP_ADDRESS",
|
||||
},
|
||||
mcnflag.StringFlag{
|
||||
Name: "generic-ssh-user",
|
||||
Usage: "SSH user",
|
||||
Value: drivers.DefaultSSHUser,
|
||||
Name: "generic-ssh-user",
|
||||
Usage: "SSH user",
|
||||
Value: drivers.DefaultSSHUser,
|
||||
EnvVar: "GENERIC_SSH_USER",
|
||||
},
|
||||
mcnflag.StringFlag{
|
||||
Name: "generic-ssh-key",
|
||||
Usage: "SSH private key path",
|
||||
Value: defaultSourceSSHKey,
|
||||
Name: "generic-ssh-key",
|
||||
Usage: "SSH private key path",
|
||||
Value: defaultSourceSSHKey,
|
||||
EnvVar: "GENERIC_SSH_KEY",
|
||||
},
|
||||
mcnflag.IntFlag{
|
||||
Name: "generic-ssh-port",
|
||||
Usage: "SSH port",
|
||||
Value: drivers.DefaultSSHPort,
|
||||
Name: "generic-ssh-port",
|
||||
Usage: "SSH port",
|
||||
Value: drivers.DefaultSSHPort,
|
||||
EnvVar: "GENERIC_SSH_PORT",
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -96,6 +100,14 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Driver) PreCreateCheck() error {
|
||||
if _, err := os.Stat(d.SSHKey); os.IsNotExist(err) {
|
||||
return fmt.Errorf("Ssh key does not exist: %q", d.SSHKey)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Driver) Create() error {
|
||||
log.Info("Importing SSH key...")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user