Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
svnserver
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Monitor
Incidents
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Ansible
Roles
svnserver
Commits
ce7dfb88
Commit
ce7dfb88
authored
5 years ago
by
jurgenhaas
Browse files
Options
Downloads
Patches
Plain Diff
ansible-playbooks/general#85 Linting
parent
d0d25ec8
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
defaults/main.yml
+5
-5
5 additions, 5 deletions
defaults/main.yml
handlers/main.yml
+3
-3
3 additions, 3 deletions
handlers/main.yml
tasks/main.yml
+68
-54
68 additions, 54 deletions
tasks/main.yml
tasks/svnadmin.yml
+3
-3
3 additions, 3 deletions
tasks/svnadmin.yml
with
79 additions
and
65 deletions
defaults/main.yml
+
5
−
5
View file @
ce7dfb88
...
...
@@ -8,8 +8,8 @@ svnserver_slave: false
svnserver_cron_sync
:
active
:
true
month
:
'
*'
day
:
'
*'
weekday
:
'
*'
hour
:
'
5,17
'
minute
:
'
0'
month
:
*
day
:
*
weekday
:
*
hour
:
5,17
minute
:
0
This diff is collapsed.
Click to expand it.
handlers/main.yml
+
3
−
3
View file @
ce7dfb88
---
# file: roles/svnserver/handlers/main.yml
-
name
:
'
Subversion
|
Include
Svnserve
to
Boot-List
'
-
name
:
Subversion | Include Svnserve to Boot-List
command
:
update-rc.d svnserve defaults
-
name
:
'
Subversion
|
Restart
Subversion
'
-
name
:
Subversion | Restart Subversion
service
:
name=svnserve state=restarted
-
name
:
'
Subversion
|
Lock
the
main
tunnel
user
'
-
name
:
Subversion | Lock the main tunnel user
command
:
usermod --lock sshsvn
This diff is collapsed.
Click to expand it.
tasks/main.yml
+
68
−
54
View file @
ce7dfb88
...
...
@@ -3,150 +3,163 @@
#
# see: http://zeroset.mnim.org/2012/08/14/svn-over-ssh-with-multiple-svn-users-and-a-single-unix-account-without-shell-access/
-
name
:
"
SVN-Server
Role"
set_fact
:
role_svnserver_started=true
tags
:
'
always'
-
name
:
SVN-Server Role
set_fact
:
role_svnserver_started
:
yes
tags
:
-
always
-
block
:
-
name
:
'
Subversion
|
Install
packages
'
-
name
:
Subversion | Install packages
apt
:
pkg={{ packages }} state=present update_cache=yes
tags
:
'
UpdateSVN'
tags
:
-
UpdateSVN
vars
:
packages
:
-
subversion
-
name
:
'
Subversion
|
Create
main
tunnel
user
'
-
name
:
Subversion | Create main tunnel user
user
:
name=sshsvn
group=root
home=/home/sshsvn
shell=/bin/bash
generate_ssh_key=yes
ssh_key_bits=2048
tags
:
'
UpdateSVN'
tags
:
-
UpdateSVN
notify
:
-
'
Subversion
|
Lock
the
main
tunnel
user
'
-
Subversion | Lock the main tunnel user
-
name
:
'
Subversion
|
Create
directory
'
-
name
:
Subversion | Create directory
file
:
dest={{item}}
state=directory
owner=sshsvn
group=root
mode='775'
tags
:
'
UpdateSVN'
tags
:
-
UpdateSVN
with_items
:
-
'
/var/svn
'
-
'
/etc/ansible/facts.d
'
-
/var/svn
-
/etc/ansible/facts.d
-
name
:
'
Subversion
|
Copy
Ansible
Facts
Script
'
-
name
:
Subversion | Copy Ansible Facts Script
template
:
src=revision_deployment_fact
dest=/etc/ansible/facts.d/revision_deployment.fact
owner=root
group=root
mode='755'
tags
:
'
UpdateSVN'
tags
:
-
UpdateSVN
-
name
:
'
Subversion
|
Copy
SVN
Hook
Config
'
-
name
:
Subversion | Copy SVN Hook Config
template
:
src=hooks_conf
dest=/var/svn/hooks.conf
owner=root
group=root
mode='644'
tags
:
'
UpdateSVN'
tags
:
-
UpdateSVN
-
name
:
'
Subversion
|
Copy
init
script
'
-
name
:
Subversion | Copy init script
copy
:
src=etc_init_d_svnserve
dest=/etc/init.d/svnserve
owner=root
group=root
mode='755'
tags
:
'
UpdateSVN'
tags
:
-
UpdateSVN
notify
:
-
'
Subversion
|
Include
Svnserve
to
Boot-List
'
-
'
Subversion
|
Restart
Subversion
'
-
Subversion | Include Svnserve to Boot-List
-
Subversion | Restart Subversion
-
name
:
'
Subversion
|
Copy
svnserve
script
'
-
name
:
Subversion | Copy svnserve script
copy
:
src=usr_local_bin_svnserve
dest=/usr/local/bin/svnserve
owner=root
group=root
mode='755'
tags
:
'
UpdateSVN'
tags
:
-
UpdateSVN
-
name
:
'
Subversion
|
Copy
Svnserve
Config
File
'
-
name
:
Subversion | Copy Svnserve Config File
template
:
src=svnserve_conf
dest=/etc/subversion/svnserve.conf
owner=root
group=root
mode='644'
tags
:
'
UpdateSVN'
tags
:
-
UpdateSVN
-
name
:
'
Subversion
|
Reset
user
authentication
'
-
name
:
Subversion | Reset user authentication
file
:
path=/home/sshsvn/.ssh/authorized_keys
state=absent
tags
:
'
ResetSVNUser'
tags
:
-
ResetSVNUser
ignore_errors
:
yes
-
name
:
'
Subversion
|
Install
SSH
user
public
keys
'
-
name
:
Subversion | Install SSH user public keys
authorized_key
:
user=sshsvn
key="{{lookup('file', inventory_dir + '/files/keys/' + item + '.svn.pub')}}"
key_options='command="/usr/local/bin/svnserve -t --tunnel-user={{item}}",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty'
tags
:
-
'
UpdateSVN
'
-
'
UpdateSVNUser
'
-
'
ResetSVNUser
'
-
UpdateSVN
-
UpdateSVNUser
-
ResetSVNUser
with_items
:
'
{{
svn_user
}}'
-
name
:
'
Subversion
|
Read
public
key
of
svn
tunnel
user
'
-
name
:
Subversion | Read public key of svn tunnel user
shell
:
cat /home/sshsvn/.ssh/id_rsa.pub
register
:
sshsvnpubkey
tags
:
'
ResetSVNUser'
tags
:
-
ResetSVNUser
-
name
:
'
Subversion
|
Distribute
public
key
of
svn
tunnel
user
'
-
name
:
Subversion | Distribute public key of svn tunnel user
authorized_key
:
user=sshsvn
key={{sshsvnpubkey.stdout}} {{inventory_hostname}}
delegate_to
:
'
{{item}}'
with_items
:
'
{{
groups.svnserver|default([])
}}'
tags
:
'
ResetSVNUser'
tags
:
-
ResetSVNUser
-
name
:
'
Subversion
|
Copy
Svnserve
Auth
File
'
-
name
:
Subversion | Copy Svnserve Auth File
template
:
src=svn_auth
dest=/etc/subversion/svn.auth
owner=root
group=root
mode='644'
tags
:
-
'
UpdateSVN
'
-
'
UpdateSVNAuth
'
-
UpdateSVN
-
UpdateSVNAuth
when
:
svnadmin_by_ansible
-
name
:
'
Subversion
|
Create
missing
repositories
'
-
name
:
Subversion | Create missing repositories
shell
:
bash -c "[ -d /var/svn/{{item.name}} ] && echo OK || svnadmin create /var/svn/{{item.name}}"
tags
:
-
'
UpdateSVN
'
-
'
UpdateSVNRepos
'
-
UpdateSVN
-
UpdateSVNRepos
register
:
svn_result
with_items
:
'
{{
svn_repositories
}}'
changed_when
:
svn_result.stdout != 'OK'
when
:
svnserver_master == inventory_hostname
-
name
:
'
Subversion
|
Copy
Hook
Scripts
'
-
name
:
Subversion | Copy Hook Scripts
copy
:
src={{item.0}}
dest=/var/svn/{{item.1.name}}/hooks/{{item.0}}
owner=root
group=root
mode='755'
tags
:
-
'
UpdateSVN
'
-
'
UpdateSVNRepos
'
-
'
UpdateHooks
'
-
UpdateSVN
-
UpdateSVNRepos
-
UpdateHooks
with_nested
:
-
[
'
post-commit'
,
'
pre-commit'
]
-
'
{{
svn_repositories
}}
'
-
{{
svn_repositories
}}
when
:
svnserver_master == inventory_hostname and (item.1.hooks is not defined or item.1.hooks)
-
name
:
'
Subversion
|
Set
permissions
'
-
name
:
Subversion | Set permissions
file
:
path="/var/svn"
owner="sshsvn"
...
...
@@ -154,25 +167,25 @@
recurse=yes
follow=no
tags
:
-
'
UpdateSVN
'
-
'
UpdateSVNRepos
'
-
UpdateSVN
-
UpdateSVNRepos
changed_when
:
false
-
name
:
'
Subversion
|
Set
ownership
'
-
name
:
Subversion | Set ownership
file
:
path=/var/svn
mode=g+w
recurse=yes
follow=no
tags
:
-
'
UpdateSVN
'
-
'
UpdateSVNRepos
'
-
UpdateSVN
-
UpdateSVNRepos
changed_when
:
false
-
import_tasks
:
svnadmin.yml
when
:
svnadmin
-
name
:
'
Subversion
|
Install
cron
job
to
sync
slave
with
master
'
-
name
:
Subversion | Install cron job to sync slave with master
cron
:
name='Sync SVN data with {{svnserver_master}}'
month='{{ svnserver_cron_sync.month|default(omit) }}'
...
...
@@ -184,6 +197,7 @@
user='sshsvn'
disabled='{{ crons_disabled|default(false) }}'
when
:
svnserver_slave and svnserver_cron_sync.active
tags
:
'
cron'
tags
:
-
cron
when
:
'
"svnserver"
not
in
excluded_roles
'
when
:
not excluded_roles or
"svnserver" not in excluded_roles
This diff is collapsed.
Click to expand it.
tasks/svnadmin.yml
+
3
−
3
View file @
ce7dfb88
...
...
@@ -3,19 +3,19 @@
#
# see: http://svnadmin.insanefactory.com
-
name
:
'
Subversion
|
Checkout
SvnAdmin
'
-
name
:
Subversion | Checkout SvnAdmin
git
:
repo=https://github.com/mfreiholz/iF.SVNAdmin.git
dest=/var/www/svnadmin
version=stable-1.6.2
-
name
:
'
Subversion
|
Change
ownership
of
files
'
-
name
:
Subversion | Change ownership of files
file
:
path=/var/www/svnadmin/data
mode='777'
recurse=yes
follow=no
-
name
:
'
Subversion
|
Copy
SvnAdmin
Config
File
'
-
name
:
Subversion | Copy SvnAdmin Config File
template
:
src=svnadmin_config_ini
dest=/var/www/svnadmin/data/config.ini
owner=root
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment