Gitlab Omnibus:从Amazon S3删除备份

时间:2016-05-31 18:26:54

标签: amazon-s3 crontab gitlab gitlab-omnibus

我想删除超过1周的备份文件。我从gitlab跟踪了这个backup document并成功创建了备份文件以上传到Amazon S3。

我还设置了gitlab_rails['backup_keep_time'] = 604800,但它不起作用。

但是,我在他们创建的IAM用户策略中观察到了这一点。无权删除文件。

备份文件正在打包,我不希望在AWS中手动执行此操作。

是否有任何标准方法可以删除Amazon S3中用于gitlab omnibus包的备份文件?

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1412062044000",
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:ListBucketMultipartUploads",
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": [
        "arn:aws:s3:::my.s3.bucket/*"
      ]
    },
    {
      "Sid": "Stmt1412062097000",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListAllMyBuckets"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "Stmt1412062128000",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my.s3.bucket"
      ]
    }
  ]
}

3 个答案:

答案 0 :(得分:14)

您可以按照以下步骤使用S3生命周期策略:

  1. 单击您的S3属性并选择Lifecycle选项卡,然后单击Add rule。

    Step 1

  2. 点击配置规则。

    Step 2

  3. 选中永久删除并输入七天(或您想要的任何其他数字),然后点击查看。

    Step 3

  4. 输入规则名称,然后单击“创建并激活规则”。

    Step 4

  5. 检查您的规则是否已成功创建并享受。

    Step 5

答案 1 :(得分:1)

如果您只想清除s3存储桶中的旧备份,则可以直接在AWS中实现此目的。在s3存储桶属性上,您可以设置生命周期策略以使超过指定天数的文件到期,或者移动到更便宜的冰川。

答案 2 :(得分:0)

请注意,backup_keep_time配置选项仅管理本地文件。 GitLab不会自动修剪存储在第三方对象存储(例如,AWS S3)中的旧文件...

https://docs.gitlab.com/ce/raketasks/backup_restore.html