backup_github: New role
This commit is contained in:
parent
5cd6edc1b1
commit
febee5c72e
3 changed files with 57 additions and 0 deletions
22
roles/backup_github/files/backup-github.sh
Executable file
22
roles/backup_github/files/backup-github.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/sh
|
||||
|
||||
ORGS="foo-sh"
|
||||
|
||||
set -eu
|
||||
umask 027
|
||||
|
||||
cd /srv/backup/github.com
|
||||
|
||||
for _org in $ORGS ; do
|
||||
curl -sSf "https://api.github.com/orgs/foo-sh/repos" | jq -r '.[] | .name' | \
|
||||
while read -r _repo
|
||||
do
|
||||
_url="https://github.com/${_org}/${_repo}.git"
|
||||
_gitdir="${_org}/${_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_github/meta/main.yml
Normal file
3
roles/backup_github/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
dependencies:
|
||||
- {role: backup_server}
|
32
roles/backup_github/tasks/main.yml
Normal file
32
roles/backup_github/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/github.com
|
||||
state: directory
|
||||
mode: "0770"
|
||||
owner: root
|
||||
group: backup
|
||||
|
||||
- name: Copy backup script
|
||||
ansible.builtin.copy:
|
||||
dest: /usr/local/sbin/backup-github
|
||||
src: backup-github.sh
|
||||
mode: "0755"
|
||||
owner: root
|
||||
group: "{{ ansible_wheel }}"
|
||||
|
||||
- name: Add cron job
|
||||
ansible.builtin.cron:
|
||||
name: github-backup
|
||||
job: /usr/local/sbin/backup-github
|
||||
hour: "03"
|
||||
minute: "20"
|
||||
user: backup
|
Loading…
Add table
Reference in a new issue