Snapper V2 0 6
Snapper V2 0 6
This project allows you to schedule regular EBS snapshots and clean up EBS snapshots on EC2, as well as replicate snapshots to a secondary EC2 region. We make use of IAM, Lambda, CloudFormation, DynamoDB, and EC2.
Find genuine Snapper parts fast with our mobile friendly parts lookup tool. Search by part number or model number & locate equipment parts diagrams. Call Us 786-592-2094.
This project is provided under the Apache License, version 2. Pull requests and contributions are always welcome.
Important note
We designed this software as a stopgap for services that aren't storing data in a cloudy, 12 factor way: 'Twelve-factor processes are stateless and share-nothing. Any data that needs to persist must be stored in a stateful backing service, typically a database.' If you're considering implementing this tool in a large environment, it may not work as expected, due to limitations with API rate limiting, snapshot count limits, the settings we provide, etc. We strongly encourage this tool to be used only as a stopgap while an application can be re-written to use S3 and RDS and other durable, AWS-recommended storage mechanisms.
- Snapper, the builder of the industry's first self-propelled rotary lawn mower in 1951, is a leader in making yard products that are easy-to-use and easy-to-own. Today, Snapper offers one of the widest selections of outdoor power equipment like walk mowers, riding tractors, zero turn mowers, leaf blowers, string trimmers and hedge trimmers. Our tractors, riding mowers and push lawn mowers.
- Snapper V2 // Improved Capturing Tool Media gallery. $7.99 Login to purchase All versions This addon is marked as unsupported. That means there is no support available for this addon. 3 addons - 1 members Addon details. Purchases: 123 Added: Updated: Price.
- Find parts, service and manual information for your Snapper product below. Looking for parts for a product? Your local Snapper dealer is your best resource to find parts. Looking to service a product? Click here if you purchased from Walmart. Click here if you purchased from a dealer.
- 2.0.6 also improves the Mac OS X, the D-Bus and MPRIS2 interfaces. 2.0.6 uses a new compiler for Windows version, done by the MinGW-w64 project. With faster decoding on multi-core, GPU, and mobile hardware and the ability to open more formats, notably professional, HD and 10bits codecs, 2.0 was a major upgrade for VLC.
Releases
Getting support
This software is provided to you as-is with no warranty or support, under the Apache License v2.0. If you are a Rackspace Fanatical Support for AWS customer, and you have additional questions or require additional assistance with this project, please open a support ticket.
Installing this software on your workstation
NOTE: We recommend downloading a release from S3, as shown below, into the directory you created above. It should be named ebs_snapper.zip
. This will help be sure, in addition to using a specific tag for cloning, that you're truly deploying the version you think you are.
We strongly recommend using virtualenv to install this tool, so you don't have any conflicts between ebs-snapper dependencies and other installed packages or system python packages.
Since this package is not currently in PyPi, it will need to be installed locally: git clone the repo (choose a tag, please!) to your workstation then run these commands from inside the repo's main directory:
Installing the ebs-snapper into an AWS Account
ebs-snapper makes use of the same environment variables of AWS CLI to establish a connection to your AWS account. You'll want to have AWS_ACCESS_KEY_ID
and your AWS_SECRET_ACCESS_KEY
(and AWS_SESSION_TOKEN
if applicable) environment variables set for the appropriate account you'd like to install this software into, and then use the deploy
command (I highly recommend using -V
on this command) -- example run, hiding boto output (if you grabbed the zip earlier, you'll also need cloudformation.json and lamba.json from the repository):
The first time you run deploy, this will only create the stack in CloudFormation. After the first time, run this again to publish new versions of the tool to an account, as new versions are released. The resources generated which include the Lambda functions and S3 bucket are generated in the us-east-1 region (N. Virginia) -- even though they talk to, and manage snapshots, in every region. Please see the section below on the configure
subcommand of the CLI to learn more about configuring this software after installation.
Snapper V2 0 6 Qt
How to use the CLI
The ebs-snapper
commandline tool has four subcommands: snapshot, clean, configure, replication
. For snapshot
and clean
, the tool will take any needed snapshots, or clean up any eligible snapshots, respectively, based on the configuration items stored for the AWS account. replication
is used to trigger replication of snapshots from one region to another. configure
is a way for you to interact with the chunks of JSON configuration used by the tool, and has flags for get (-g / --get
), set (-s / --set
), delete (-d / --del
), or list (-l / --list
). To speed up the configuration subcommand, you can always supply an AWS account ID so that we don't have scan for it, based on EC2 instances and their owners), using (-a <account id>
).
Additionally, you may be interested in raising the log level of output using -V
or -VV
, e.g.: ebs-snapper -V <rest of command>
. The logging output generally prints AWS connections established to a specific region, as well as parsing and logic information that could be used to debug or look deeper into the tool's behavior.
In the commands below, we enable verbose logging but strip out the boto logging:
Configure subcommands
IMPORTANT NOTE By default, no configurations are created for you. By default, ebs_snapper will do nothing. The meaning of every configuration item is described in DESIGN.md, also in this repository.
Background
JSON configuration stanzas live in DynamoDB, and use a compound key id, aws_account_id
. id
is a completely arbitrary identifier for each configuration element; aws_account_id
is the numerical account id that owns EC2 instances in this account. Here is an example of one valid configuration (backup everything with a tag named backup that has a value of 'yes'):
Examples
Configure command
List existing configurations stored for this account (will also output the aws_account_id):
Get the extant configuration:
Or to make it a bit faster, get the config passing an aws_account_id:
Now, let's add a second one:
And finally, let's delete the new one, and list again:
We also provide an easy way to sanity check configurations:
Snapshot command
As you can see, the tool has found two instances that match the configuration stanza, and is dispatching the work of evaluating if a snapshot is needed. The determination of whether or not a snapshot is needed is passed on to a second lambda job that will also perform the snapshot API calls if necessary, however when run interactively using the CLI, all of the logic happens directly on the client (no Lambda jobs run).
Clean command
Snapper 2.2
As you can see, the clean
subcommand does something similar to the snapshot one. It identifies all regions with currently running instances, and then dispatches a lambda job to scan that region for snapshots that might be able to be deleted. The actual work of determining what to delete and performing the delete API calls happens in the other lambda job, however when run interactively using the CLI, all of the logic happens directly on the client (no Lambda jobs run).
Snapper V2 0 6 Hp
Specifically for the clean job, a cache is built of much of the needed data to do cleanup, since it's much more efficient to fetch in bulk than to fetch over and over for every single snapshot (and causes less calculations to be repeated).
Snapper V2 0 6 0
Replication command
Snapper V2 0 6 X 4
Note that replication is scheduled using CloudWatch events by the snapshot job to enable or disable a separate replication event, and relies on special tags as described in DESIGN.md in the 'Replication' section.
Snapper V2 0 6