From 1520f8dabffda36dfacc0432ebdaf117e7260831 Mon Sep 17 00:00:00 2001 From: Timo Makinen Date: Sun, 7 Apr 2024 13:42:32 +0000 Subject: [PATCH] backup_server: Move bitbucket backup to own role --- roles/backup_server/files/backup-bitbucket.py | 51 ------------------- roles/backup_server/tasks/main.yml | 29 +---------- 2 files changed, 1 insertion(+), 79 deletions(-) delete mode 100644 roles/backup_server/files/backup-bitbucket.py diff --git a/roles/backup_server/files/backup-bitbucket.py b/roles/backup_server/files/backup-bitbucket.py deleted file mode 100644 index 15cb651..0000000 --- a/roles/backup_server/files/backup-bitbucket.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env python3 - -import os -import json -from subprocess import call -from urllib.request import urlopen - -USERS = ["tmakinen"] -BACKUPDIR = "/srv/backup/bitbucket.org" - - -def repolist(username): - f = urlopen(f"https://api.bitbucket.org/2.0/repositories/{username}") - data = json.load(f) - f.close() - - for repo in data["values"]: - yield ( - { - "name": repo["name"], - "scm": repo["scm"], - "wiki": repo["has_wiki"], - "issues": repo["has_issues"], - } - ) - - -def gitbackup(destination, repo): - if not os.path.exists(destination): - os.makedirs(destination) - call(["git", "clone", "--quiet", repo, destination]) - else: - os.chdir(destination) - call(["git", f"--git-dir={destination}/.git", "pull", "--quiet"]) - - -if __name__ == "__main__": - for user in USERS: - for repo in repolist(user): - if repo["scm"] == "git": - gitbackup( - f"{BACKUPDIR}/{user}/{repo['name']}", - f"https://bitbucket.org/{user}/{repo['name']}.git", - ) - if repo["wiki"]: - gitbackup( - f"{BACKUPDIR}/{user}/{repo['name']}-wiki", - f"https://bitbucket.org/{user}/{repo['name']}.git/wiki", - ) - else: - raise NotImplementedError("{repo['scm']} repositories not supported") diff --git a/roles/backup_server/tasks/main.yml b/roles/backup_server/tasks/main.yml index b952d09..5308e82 100644 --- a/roles/backup_server/tasks/main.yml +++ b/roles/backup_server/tasks/main.yml @@ -1,11 +1,8 @@ --- - name: Install packages ansible.builtin.package: - name: "{{ item }}" + name: rclone state: installed - with_items: - - git - - rclone - name: Create backup group ansible.builtin.group: @@ -38,27 +35,3 @@ owner: root group: "{{ ansible_wheel }}" follow: false - -- name: Create Bitbucket backup directory - ansible.builtin.file: - path: /export/backup/bitbucket.org - state: directory - mode: "0775" - owner: root - group: backup - -- name: Install Bitbucket backup script - ansible.builtin.copy: - dest: /usr/local/sbin/backup-bitbucket - src: backup-bitbucket.py - mode: "0755" - owner: root - group: "{{ ansible_wheel }}" - -- name: Add Bitbucket backup cron job - ansible.builtin.cron: - name: bitbucket-backup - job: /usr/local/sbin/backup-bitbucket - hour: "03" - minute: "10" - user: backup