SVN 버전 : 3.9.7 Standard Edition
VisualSVN Manager 에서 Repository 별 수동 백업을 지원한다.
또한 "Jobs"에서 Backup JOB을 만들고 스케줄링 할수 있으며 Full백업과 증분백업을 지원한다.
하지만 "Jobs"에서 지원하는 Backup JOB 스케줄은 Standard Edition에서는 지원하지 않는다.
- Enterprise Edition에서 지원
따라서 비용없이 진행하기 위한 Backup 스케줄링 방법은
Powershell을 이용한 Repository별(or 모든) Full Backup 스크립트를 만들고 윈도우 스케줄러나 AWX(ansible)를 이용하여 스케줄을 등록해야 한다.
(Backup JOB에서 지원하는 증분백업 또한 사용 할수가 없어 Full Backup으로 진행)
Powebshell 스크립트
Backup-SvnRepository command를 이용하고 확장자는 .vsvnbak 을 사용한다.
사용예
- 모든 repository backup하고 목적지 경로는 default 설정을 따른다.
Backup-SvnRepository *
- 특정 repository와 목적지 경로 지정
Backup-SvnRepository <Repository> -DestinationPath <\\path\to...>
VisualSVN Manager에서 default Backup 경로 지정
메모장으로 이용하여 간단한 스크립트 생성
- 파일 이름 : bt.ps1
윈도우 스케줄러 등록
실행창 - "taskschd.msc" - 작업만들기
프로그램/스크립트 : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
인수 추가 : -ExecutionPolicy Unrestricted -File "C:\Users\exadminkr\Desktop\bt.ps1"
- powershell 싱행 정책을 "Unrestricted" 로 설정하고 실행
- 참조 : https://ploz.tistory.com/entry/PowerShell-%EC%8B%A4%ED%96%89-%EC%A0%95%EC%B1%85aboutExecutionPolicies
계정 정보 입력
AWX(ansible) 스케줄 등록
윈도우 스케줄러등 호스트별로 스케줄을 등록하게 되면 관리하는데 어려움이 있어 AWX같은 tool을 이용하여 중앙에서 한번에 관리하는 것이 펀하다.
AWX 관련 참조
ansible.windows.win_powershell 모듈을 이용하여 간단한 playbook을 만들고 AWX에 JOB Template 및 스케줄을 등록한다.
playbook
> 12.svn_repository_backup.yml
---
- hosts: all
gather_facts: no
ignore_unreachable: yes
tasks:
- name: SVN {{ svn_backup_repository }} repository backup
ansible.windows.win_powershell:
script: |
backup-svnrepository {{ svn_backup_repository }}
다음과 같은 에러 발생 시
ERROR! couldn't resolve module/action 'ansible.windows.win_powershell'. This often indicates a misspelling, missing collection, or incorrect module path.
ansible.windows 모듈을 설치해 준다.
ansible-galaxy collection install ansible.windows
JOB Template
하루에 1번 스케줄 등록
'시스템 > VisualSVN' 카테고리의 다른 글
VisualSVN | 3.9.7 로 업데이트 (1) | 2022.09.21 |
---|---|
VisualSVN | Repository 별 User 권한 파악하기 (0) | 2022.09.21 |