Merge pull request #2433 from dgageot/generic-driver

Improve Generic driver
This commit is contained in:
Jean-Laurent de Morlhon
2015-11-27 10:18:01 +01:00
2 changed files with 33 additions and 20 deletions

View File

@@ -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` |

View File

@@ -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...")