backup_bitbucket: New role
This commit is contained in:
parent
7496125098
commit
0d72e9e920
3 changed files with 59 additions and 0 deletions
24
roles/backup_bitbucket/files/backup-bitbucket.sh
Normal file
24
roles/backup_bitbucket/files/backup-bitbucket.sh
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
USERS="tmakinen"
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
umask 027
|
||||||
|
|
||||||
|
cd /srv/backup/bitbucket.org
|
||||||
|
|
||||||
|
for _user in $USERS ; do
|
||||||
|
curl -sSf "https://api.bitbucket.org/2.0/repositories/${_user}" | \
|
||||||
|
jq -r '.values | .[] | [.name, .scm] | @tsv' | \
|
||||||
|
while read -r _repo _scm
|
||||||
|
do
|
||||||
|
[ "$_scm" = "git" ] || continue
|
||||||
|
_url="https://bitbucket.org/${_user}/${_repo}"
|
||||||
|
_gitdir="${_user}/${_repo}"
|
||||||
|
if [ ! -d "$_gitdir" ]; then
|
||||||
|
mkdir -p "$_gitdir"
|
||||||
|
git --git-dir="$_gitdir" init --quiet --bare
|
||||||
|
fi
|
||||||
|
git --git-dir="$_gitdir" fetch --quiet --force --prune --tags "$_url" "refs/heads/*:refs/heads/*"
|
||||||
|
done
|
||||||
|
done
|
3
roles/backup_bitbucket/meta/main.yml
Normal file
3
roles/backup_bitbucket/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- {role: backup_server}
|
32
roles/backup_bitbucket/tasks/main.yml
Normal file
32
roles/backup_bitbucket/tasks/main.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
- name: Install dependencies
|
||||||
|
ansible.builtin.package:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: installed
|
||||||
|
with_items:
|
||||||
|
- git
|
||||||
|
- jq
|
||||||
|
|
||||||
|
- name: Create backup directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /srv/backup/bitbucket.org
|
||||||
|
state: directory
|
||||||
|
mode: "0770"
|
||||||
|
owner: root
|
||||||
|
group: backup
|
||||||
|
|
||||||
|
- name: Copy backup script
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /usr/local/sbin/backup-bitbucket
|
||||||
|
src: backup-bitbucket.sh
|
||||||
|
mode: "0755"
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
|
||||||
|
- name: Add cron job
|
||||||
|
ansible.builtin.cron:
|
||||||
|
name: bitbucket-backup
|
||||||
|
job: /usr/local/sbin/backup-bitbucket
|
||||||
|
hour: "03"
|
||||||
|
minute: "10"
|
||||||
|
user: backup
|
Loading…
Add table
Reference in a new issue