- Set debug logging for paramiko when using
--debug
option. [fschulze] - Add
exec
command which runs a command on an instance using the Paramiko connection, which is faster than invoking an additional ssh call. [fschulze] - Avoid unnecessary connection delay due to a timeout with some SSH servers. [fschulze]
- Fix ssh timeout handling. [witsch, fschulze]
- Fix getargspec deprecation warning with Python 3.x. [kappeck, fschulze]
- Dropped support for Python 3.6. [fschulze]
- Added support for Python 3.10. [fschulze]
- Make a proper copy of the configuration for instances with multiple masters. [fschulze]
- Use
format_exc
for error reporting inssh
command for more details. [fschulze]
- Fix multiple master association for
[instance:...]
sections. [fschulze]
- Some Python 3.x encoding related fixes. [fschulze]
- Add 5 seconds default timeout to ssh connections. [fschulze]
- Dropped support for Python 3.4. [fschulze]
- Support YAML configuration files. [fschulze]
- Dropped support
ssh
lib, onlyparamiko
is supported. [fschulze] - Dropped support for Python 2.6 and 3.3. [fschulze]
- Stop testing on Python 3.3. [fschulze]
- Fix multiple masters for
instance
. [fschulze]
- Fix getting fingerprints automatically when
ssh-host-keys
is used. [fschulze]
- New
ssh-host-keys
option which allows to set host keys directly to force paramiko to use a specific key type to avoid fingerprint mismatches. [fschulze]
- Allow instance implementations to return multiple fingerprints via
get_fingerprints
method. [fschulze] - Support other key types than just rsa, because paramiko > 2 defaults to
ed25519
. [fschulze] - Output more information about used keys on fingerprint mismatch. [fschulze]
- Don't get
ssh-fingerprints
from master if not set in instance config. This fixes automatic fingerprint fetching for EC2, ezjail etc. [fschulze]
- Add option
ssh-fingerprints
which allows to specify multiple fingerprints. [fschulze] - Support new output of
ssh-keygen
which includes the hash type and defaults toSHA256
. [fschulze]
- Allow to specify multiple masters per instance. [fschulze]
- Add
Executor
helper to handle local and remote command execution. It's also handling ssh agent forwarding enabled by either the users ssh config or thessh-extra-args
option. [fschulze]
- Add
ssh-extra-args
option. [fschulze] - Add
annotate
command to print the configuration with the source of each setting. [fschulze] - Allow custom shebang in gzipped startup scripts. [fschulze]
- Drop bad entries from our
known_hosts
file to prevent failures in paramiko. [fschulze] - Set
StrictHostKeyChecking=yes
for all ssh connections to prevent interactive asking. [fschulze]
- Ask before terminating an instance. [fschulze]
- Fix config setting propagation in some cases of proxied instances. [fschulze]
- Close all connections before exiting. This prevents hangs caused by open proxy command threads. [fschulze]
- Add option to log debug output. [fschulze]
- Add helpers to setup proxycommand in plugins. [fschulze]
- Fix error output for plain instances on ssh connection failures. [fschulze]
- Fix removal of bad host keys when using non standard ssh port. [fschulze]
- Renamed
plain-master
toplain
, so the uids of instances are nicer. [fschulze]
- Only remove bad host key from known_hosts instead of clearing it completely. [fschulze]
- Removed support for
proxyhost
option. It caused hangs and failures on missing or invalid ssh fingerprints. [fschulze] - Allow empty
startup_script
option to mean use no startup script. [fschulze]
- Allow
fingerprint
to be set to a public host key file. [fschulze]
- Better error message for instances missing because the plugin isn't installed. [fschulze]
- Fix tests when ploy itself isn't installed. [fschulze]
- Use plain conftest.py instead of pytest plugin. [fschulze]
- Fix uid method for master instances. [fschulze]
- Print plugin versions with
-v
and--versions
. [fschulze] - Python 3 compatibility. [fschulze]
- Let plugins add type of lists to show with the
list
command. [fschulze] - Use
server
andinstance
consistently. [fschulze] - Always make instances accessible by their full name in the form of "[master_id]-[instance_id]". Only if there is no conflict, the short version with just "[instance_id]" is also available for convenience. [fschulze]
- Add instance id validator which limits to letters, numbers, dashes and underscores. [fschulze]
- Renamed from mr.awsome to ploy. [fschulze]
- Give a bit more info on ssh connection failures. [fschulze]
- Expose some test fixtures for reuse in plugins. [fschulze]
- Add before_terminate and after_start hooks and make it simple for plugins to add their own hooks. [fschulze]
- Add
get_path
method to ConfigSection class. [fschulze]
- Provide helper method
ssh_args_from_info
on BaseInstance to get the arguments for running the ssh executable from the info provided by init_ssh_key. [fschulze] - Allow overwriting the command name in help messages for bsdploy. [fschulze]
- Make debug command usable for instances that don't have a startup script. [fschulze]
- Instances can provide a get_port method to return a default port. [fschulze]
- Catch socket errors in init_ssh_key of plain instances to print additional info for debugging. [fschulze]
- Delay setting of config file path to expose too early use of config in plugins. Refs #29 [fschulze]
- Fix massagers for
[instance:...]
sections. [fschulze] - Copy massagers in ConfigSection.copy, so overrides in startup script work correctly. [fschulze]
- Fetch fingerprints only when necessary. This speeds up connections when the fingerprint in known_hosts is still valid. [fschulze]
- Moved setuptools-git from setup.py to .travis.yml, it's only needed for releases and testing. [fschulze]
- More tests. [fschulze]
- Test, enhance and document adding massagers via config. [fschulze]
- Moved ec2 and fabric integration into separate plugins. [fschulze]
- You can now have instances with the same name if the belong to different masters, they will then get the name of the master as a prefix to their name. [fschulze]
- Add possibility to overwrite the default config name. [tomster]
- Improved
proxycommand
and documented it. [fschulze] - Make the AWS instance available in masters. This changes the
get_masters
plugin interface. [fschulze] - Use os.execvp instead of subprocess.call. This allows the use of
assh
in theproxycommand
option, which greatly simplifies it's use. [fschulze] - Added command plugin hooks. [fschulze]
- The variable substitution for the
proxycommand
option now makes the other instances available in a dict underinstances
. And addsknown_hosts
. [fschulze] - Load plugins via entry points instead of the
plugin
section in the config. [fschulze] - Allow fallback to password for ssh to plain instances. [fschulze]
- Add option to ask for manual fingerprint validation for plain instances. [fschulze]
- Use os.path.expanduser on all paths, so that one can use ~ in config values like the aws keys. [fschulze]
- There is no need to add the AWS account id to security group names anymore. [fschulze]
- Rules are removed from security groups if they aren't defined in the config. [fschulze]
- Allow adding of custom config massagers from inside the config. [fschulze]
- Support block device maps to enable use of more than one ephemeral disk. [fschulze]
- Added
do
method on ec2 and plain instances which allows to call fabric commands. [fschulze] - Use PathMassager for
access-key-id
andsecret-access-key
in theec2-master
section. This might break existing relative paths for these options. [fschulze] - Added support for EBS boot instances. [fschulze]
- Add option
ssh-key-filename
to point to a private ssh key for ec2 and plain instances. [fschulze] - Fix Fabric integration for newer versions of Fabric. [fschulze]
- Support
proxycommand
option for plain instances. This also caused a change in theinit_ssh_key
API for plugins. [fschulze] - Support
ProxyCommand
from~/.ssh/config
for plain instances. Requires Fabric 1.5.0 and Paramiko 1.9.0 or newer. [fschulze]
- Support both the
ssh
andparamiko
libraries depending on which Fabric version is used. [fschulze]
- Added
ec2-connection
which helps in writing Fabric scripts which don't connect to a server but need access to the config and AWS (like uploading something to S3). [fschulze] - Fix several problems with using a user name other than
root
for thedo
andssh
commands. [fschulze] - Require Fabric >= 1.3.0. [fschulze]
- Require boto >= 2.0. [fschulze]
- Added hook for startup script options. [fschulze]
- Added possibility to configure hooks. [fschulze]
- Refactored to enable plugins for different virtualization or cloud providers. [fschulze]
- Added lots of tests. [fschulze]
- Overwrites now also affect server creation, not just the startup script. [fschulze]
- Added
list
command which supports just listingsnapshots
for now. [fschulze] - Added
delete-volumes-on-terminate
option to delete volumes created from snapshots on instance termination. [fschulze] - Added support for creating volumes from snapshots on instance start. [natea, fschulze]
- Added support for
~/.ssh/config
. This is a bit limited, because the paramiko config parser isn't very good. [fschulze] - Added
help
command which provides some info for zsh autocompletion. [fschulze]
- For the
do
command the Fabric optionsreject_unknown_hosts
anddisable_known_hosts
now default to true. [fschulze] - Allow adding normal servers to use with
ssh
anddo
commands. [fschulze] - Refactored ssh connection handling to only open network connections when
needed. Any fabric option which doesn't need a connection runs right away
now (like
-h
and-l
). [fschulze] - Fix status output after
start
. [fschulze]
- Added
snapshot
method to Server class for easy access from fabfiles. [fschulze]
- It's now possible to specify files which contain the aws keys in the
[aws]
section with theaccess-key-id
andsecret-access-key
options. [fschulze] - Added
-c
/--config
option to specify the config file to use. [fschulze] - Added
-v
/--version
option. [tomster (Tom Lazar), fschulze] - Comment lines in the startup script are now removed before any variables in it are expanded, not afterwards. [fschulze]
- Use argparse library instead of optparse for more powerful command line parsing. [fschulze]
- Added gzipping of startup script by looking for
gzip:
prefix in the filename. [fschulze] - Added macro expansion similar to zc.buildout 1.4. [fschulze]
- Check console output in
status
and tell user about it. [fschulze] - Friendly message instead of traceback when trying to ssh into an unavailable server. [fschulze]
- Remove comment lines from startup script if it's starting with
#!/bin/sh
or#!/bin/bash
. [fschulze] - Removed
-r
option forstart
anddebug
commands and replaced it with more general-o
option. [fschulze] - Made startup script optional (not all AMIs support it, especially Windows ones). [fschulze]
- The
stop
command actually only stops an instance now (only works with instances booted from an EBS volume) and the newterminate
command now does whatstop
did before. [fschulze] - Better error message when no console output is available for ssh finger print validation. [fschulze]
- Fixed indentation in documentation. [natea (Nate Aune), fschulze]
- Removed the
[host_string]
prefix of thedo
command output. [fschulze]
- Snapshots automatically get a description with date and volume id. [fschulze]
- The ssh command can now be used with scp and rsync. [fschulze]
- Initial release [fschulze]