| ... | ... |
@@ -2,8 +2,8 @@ |
| 2 | 2 |
|
| 3 | 3 |
An [Ansible][] [role][] for deploying [gitolite][] on [Debian][] >=9. |
| 4 | 4 |
|
| 5 |
-Installs [gitolite][] and creates a [dedicated user][] to run it (defaults to |
|
| 6 |
-`git`). |
|
| 5 |
+Installs [gitolite][], creates a [dedicated user][] to run it (defaults to |
|
| 6 |
+`git`), and prepares for [administering gitolite directly on the server][]. |
|
| 7 | 7 |
|
| 8 | 8 |
[`ansible-role-gitolite`]: https://git.rcrnstn.net/rcrnstn/ansible-role-gitolite |
| 9 | 9 |
[Ansible]: https://docs.ansible.com/ansible |
| ... | ... |
@@ -11,6 +11,7 @@ Installs [gitolite][] and creates a [dedicated user][] to run it (defaults to |
| 11 | 11 |
[gitolite]: https://gitolite.com |
| 12 | 12 |
[Debian]: https://www.debian.org |
| 13 | 13 |
[dedicated user]: https://gitolite.com/gitolite/concepts#the-hosting-user |
| 14 |
+[administering gitolite directly on the server]: https://gitolite.com/gitolite/odds-and-ends#administering-gitolite-directly-on-the-server |
|
| 14 | 15 |
|
| 15 | 16 |
## Try out |
| 16 | 17 |
|
| ... | ... |
@@ -8,8 +8,47 @@ |
| 8 | 8 |
name: 'gitolite3' |
| 9 | 9 |
state: 'present' |
| 10 | 10 |
|
| 11 |
+ # https://docs.ansible.com/ansible/latest/user_guide/become.html#risks-of-becoming-an-unprivileged-user |
|
| 12 |
+ - name: "Install acl" |
|
| 13 |
+ apt: |
|
| 14 |
+ name: 'acl' |
|
| 15 |
+ state: 'present' |
|
| 16 |
+ |
|
| 11 | 17 |
- name: "Create gitolite user '{{ gitolite_user_name }}'"
|
| 12 | 18 |
user: |
| 13 | 19 |
name: "{{ gitolite_user_name }}"
|
| 14 | 20 |
home: "{{ gitolite_user_home }}"
|
| 15 | 21 |
shell: "/bin/bash" |
| 22 |
+ |
|
| 23 |
+- become: yes |
|
| 24 |
+ become_user: "{{ gitolite_user_name }}"
|
|
| 25 |
+ vars: |
|
| 26 |
+ default_repos: |
|
| 27 |
+ - "gitolite-admin" |
|
| 28 |
+ - "testing" |
|
| 29 |
+ block: |
|
| 30 |
+ |
|
| 31 |
+ - name: "Run dummy setup" |
|
| 32 |
+ command: |
|
| 33 |
+ cmd: "gitolite setup -a dummy" |
|
| 34 |
+ creates: "{{ gitolite_user_home }}/.gitolite"
|
|
| 35 |
+ |
|
| 36 |
+ - name: "Remove directories of default repos" |
|
| 37 |
+ file: |
|
| 38 |
+ path: "{{ gitolite_user_home }}/repositories/{{ item }}.git"
|
|
| 39 |
+ state: 'absent' |
|
| 40 |
+ notify: 'gitolite compile' |
|
| 41 |
+ loop: "{{ default_repos }}"
|
|
| 42 |
+ |
|
| 43 |
+ - name: "Remove config of default repos" |
|
| 44 |
+ replace: |
|
| 45 |
+ path: "{{ gitolite_user_home }}/.gitolite/conf/gitolite.conf"
|
|
| 46 |
+ regexp: '^[ \t\n]*repo[ \t]+{{ item }}((?!^repo)(.|\n))*'
|
|
| 47 |
+ notify: 'gitolite compile' |
|
| 48 |
+ loop: "{{ default_repos }}"
|
|
| 49 |
+ |
|
| 50 |
+ - name: "Create keydir" |
|
| 51 |
+ file: |
|
| 52 |
+ path: "{{ gitolite_user_home }}/.gitolite/keydir"
|
|
| 53 |
+ state: 'directory' |
|
| 54 |
+ notify: 'gitolite compile' |