---
- hosts: centos8_init
user: ioniere
become: yes
vars:
svn_user: test_user
svn_pass: test_user_pass
subversion_root: /svn
svn_repo_name: test
tasks:
- name: subversion 설치
yum:
name: subversion
state: latest
- name: svn root 디렉토리 생성
file:
path: "{{ subversion_root }}"
state: directory
- name: svn repo 생성
command: "svnadmin create --fs-type fsfs {{ subversion_root }}/{{ svn_repo_name }}"
- name: svn 계정 생성
blockinfile:
path: "{{ subversion_root }}/{{ svn_repo_name }}/conf/passwd"
insertafter: EOF
block: |
{{ svn_user }} = {{ svn_pass }}
- name: svn 인증 설정 1 - anon-access
lineinfile:
path: "{{ subversion_root }}/{{ svn_repo_name }}/conf/svnserve.conf"
regexp: '^# anon-access '
line: anon-access = none
- name: svn 인증 설정 2 - auth-access
lineinfile:
path: "{{ subversion_root }}/{{ svn_repo_name }}/conf/svnserve.conf"
regexp: '^# auth-access '
line: auth-access = write
- name: svn 인증 설정 3 - password-db
lineinfile:
path: "{{ subversion_root }}/{{ svn_repo_name }}/conf/svnserve.conf"
regexp: '^# password-db '
line: password-db = passwd
- name: svn 인증 설정 4 - auth-access
lineinfile:
path: "{{ subversion_root }}/{{ svn_repo_name }}/conf/svnserve.conf"
regexp: '^# authz-db '
line: authz-db = authz
- name: svn 인증 설정 5 - realm
lineinfile:
path: "{{ subversion_root }}/{{ svn_repo_name }}/conf/svnserve.conf"
regexp: '^# realm '
line: "realm = {{ svn_repo_name }} Repository"
- name: 계정 권한 설정
blockinfile:
path: "{{ subversion_root }}/{{ svn_repo_name }}/conf/authz"
insertafter: EOF
block: |
[/]
{{ svn_user }} = rw
- name: svnserve 파일 수정
lineinfile:
path: /etc/sysconfig/svnserve
regexp: '^OPTIONS'
line: 'OPTIONS="--threads --root {{ subversion_root }}"'
- name: svnserve 구동
service:
name: svnserve
state: started
enabled: yes
host, user, svn_user, svn_pass, subversion_root, svn_repo_name은 상황에 맞게 수정 후 사용
service(systemctl) 명령을 이용하지 않을 거라면 svnserve 파일 수정, svnserver 구동 부분 삭제
방화벽 설정은 별도로 진행(3690)