数码自动化服务

goutte的Python项目详细描述


圆凿

DigitalOcean没有提出任何自动化快照的方法。 有some SaaS可以处理它,但是花钱执行一些api请求似乎有点麻烦。

这就是为什么我们开发了一个简单的脚本,可以与cron作业一起运行,也可以免费在travis这样的ci服务中运行。 我们每天都用它来管理our backups

它包括:

  • 捕捉水滴
  • 快照卷
  • 保留政策
  • 修剪快照

要求

  • Python^3.6
  • 数字海洋账户

安装

直接从pip安装:

pip3 install --user goutte

配置文件

goutte从一个非常简单的toml文件中获取它的配置。 我们在goutte.example.toml中提供并举例说明。

retention=10# Number of backups to keep per droplet/volume[droplets]names=[# Array of droplets you want to snapshot'server01','server02','server03',][volumes]names=[# Array of volumes you want to snapshot'db01','redis01','redis02',]

用法

goutte有两个参数,也可以通过环境变量设置:

#HelpDescriptionEnvironment variable
1CONFIGPath to the toml configuration file^{}
2DO_TOKENYour DigitalOcean API token^{}
Usage: goutte [OPTIONS] CONFIG DO_TOKEN

  DigitalOcean snapshots automation.

Options:
  --only [snapshot|prune]  Only snapshot or only prune
  --debug                  Enable debug logging
  --version                Show the version and exit.
  --help                   Show this message and exit.

为包含一个液滴和一个卷的配置文件运行“仅快照”:

$ goutte goutte.toml $do_token --only snapshot
13:32:48 - INFO - Starting goutte v1.0.1
13:32:52 - INFO - sgp1-website-01 - Snapshot (goutte-sgp1-website-01-20181220-56bde)13:32:59 - INFO - sgp1-mariadb-01 - Snapshot (goutte-sgp1-mariadb-01-20181220-3673d)

与Docker一起运行

我们有一个Docker图像可以在Docker Hub上使用。 默认情况下,它将读取/goutte/goutte.toml

下的配置
docker run \
  -e GOUTTE_DO_TOKEN=${do_token}\
  -v $(pwd)/goutte.toml:/goutte/goutte.toml \
  tomochain:goutte

使用Travis实现自动化

您可以通过cron作业轻松实现自动化,但最简单的方法是利用travis这样的免费ci工具。

  1. 您可以创建一个包含您的goutte.toml配置和以下travis文件.travis.yml
language: python
python: 3.6

install:
  - pip install goutte

script:
  - goutte goutte.toml # Don't forget to set GOUTTE_DO_TOKEN in Travis config
  1. 在Travis中启用回购,然后转到配置
  2. 使用digitalocean api key的值添加环境变量goutte_do_token
  3. 启用每日cron作业
  4. 你可以走了,古特每天都会跑,负责拍照。

注意:通过使用多个配置,可以对不同的卷使用不同的保留。

# ...
script:
  - goutte 10days.toml
  - goutte 1day.toml

你可以看到我们是如何为自己设置的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在构造函数外部添加鼠标侦听器   java如何使用比较器对列表进行排序以正确排序空值?   javajavax。由于javax,邮件“535.7.3身份验证失败”。邮件升级(v1.3.1至v1.5.2)   java将arraylist流到固定的二维数组中并打印?   RecyclerView适配器上的java上下文   java如何为此Twitter API为KafkaProducer建立连接   java Spring安全性重写WebSecurity配置适配器的配置(AuthenticationManagerBuilder)是否会影响全局应用程序?   线程“awteventque0”NullPointerException中的java异常   if条件中的null值和null指针异常java   java树集<Object>允许相同类型的多个对象   java定义类;我认不出   字符串java replaceAll()   JAVAutil。scanner(Java)读取文件时如何跳过空格?   java在swing中关闭flash屏幕   java在Wildfly 16中的应用程序中加载pk12文件   有没有工具可以自动生成屏幕抓取的Java代码   创建意图时,java方法getParcelableExtra()返回null   将数据从java传递到jsp   java Android Studio |永久保存布局