jbelien / ovh-cloud-snapshot
OVH Cloud Automated Snapshot (via OVH API)
Installs: 228
Dependents: 0
Suggesters: 0
Security: 0
Stars: 28
Watchers: 5
Forks: 2
Open Issues: 3
Type:project
pkg:composer/jbelien/ovh-cloud-snapshot
Requires
- monolog/monolog: 1.24.0
- ovh/ovh: 2.0.1
- symfony/yaml: 4.2.2
This package is auto-updated.
Last update: 2025-10-15 12:18:27 UTC
README
OVH Cloud Automated Snapshot
Requirements
Installation
composer create-project jbelien/ovh-cloud-snapshot
Configuration
First step
Create credentials by clicking here !
- POST:
/cloud/project/*/instance/*/snapshot - POST:
/cloud/project/*/volume/*/snapshot - GET:
/cloud/project/*/snapshot - GET:
/cloud/project/*/volume/snapshot - DELETE:
/cloud/project/*/snapshot/* - DELETE:
/cloud/project/*/volume/snapshot/*
Second step
Create snapshot.yml in root directory with your credentials and the list of your instances/volumes :
--- applicationKey: <ovh_application_key> applicationSecret: <ovh_application_secret> consumerKey: <ovh_consumer_key> duration: <date-interval> projects: - id: "<project-1-id>" instances: - &myinstance id: "<instance-id>" name: "My Instance" volumes: - &myvolume id: "<volume-id>" name: "My Volume" protected: instances: - "<instance-id>" volumes: - id: "<project-2-id>" instances: ... volumes: ... protected: instances: volumes: ...
Configure duration
To determine after how many days/weeks/months/... you want snapshots to be delete, use duration option.
This option uses PHP DateInterval format : http://php.net/manual/en/dateinterval.construct.php
The format starts with the letter P, for "period." Each duration period is represented by an integer value followed by a period designator. If the duration contains time elements, that portion of the specification is preceded by the letter T.
Here are some simple examples. Two days is P2D. Two seconds is PT2S. Six years and five minutes is P6YT5M.
You can protect snapshots from deletion by setting its id in protected.instances or protected.volumes.
Run
php snapshot.php
Dry-run mode (simulates the query) :
php snapshot.php --dry-run
Crontab
You can automate the snapshot creation by creating a crontab making a call to this tool.