aboutsummaryrefslogtreecommitdiffstats
path: root/roles/setup_git
diff options
context:
space:
mode:
Diffstat (limited to 'roles/setup_git')
-rw-r--r--roles/setup_git/tasks/main.yml88
-rw-r--r--roles/setup_git/templates/gitweb.service25
-rw-r--r--roles/setup_git/vars/main.yml18
3 files changed, 131 insertions, 0 deletions
diff --git a/roles/setup_git/tasks/main.yml b/roles/setup_git/tasks/main.yml
new file mode 100644
index 0000000..2383a7c
--- /dev/null
+++ b/roles/setup_git/tasks/main.yml
@@ -0,0 +1,88 @@
+
+# =========================================================================== #
+# __ _ __
+# _________ / /__ ____ _(_) /_
+# / ___/ __ \/ / _ \ / __ `/ / __/
+# / / / /_/ / / __/ / /_/ / / /_
+# /_/ \____/_/\___(_) \__, /_/\__/
+# /____/
+#
+# =========================================================================== #
+
+---
+- name: Check installation of git
+ package:
+ name: git
+ state: present
+
+- name: Check installation of lighttpd
+ package:
+ name: lighttpd
+ state: present
+
+- name: Check installation of libcgi
+ package:
+ name: libcgi-pm-perl
+ state: present
+
+- name: Check installation of gamin
+ package:
+ name: gamin
+ state: present
+
+- name: Add group git
+ user:
+ name: "{{ git_group }}"
+ state: present
+
+- name: Add user git
+ user:
+ name: "{{ git_user }}"
+ comment: "{{ git_user_comment }}"
+ group: "{{ git_group }}"
+
+- name: Set up multiple authorized keys
+ authorized_key:
+ user: "{{ git_user }}"
+ state: present
+ key: "{{ item }}"
+ with_file:
+ - "{{ playbook_dir }}/files/public_keys/WS-bentonite"
+ - "{{ playbook_dir }}/files/public_keys/LP-graphite"
+
+- name: Create git directory
+ file:
+ path: "{{ git_directory_path }}"
+ state: directory
+ owner: "{{ git_user }}"
+ group: "{{ git_group }}"
+ mode: 0755
+ recurse: True
+
+- name: Create default gitweb directory
+ file:
+ path: "{{ git_directory_path }}/{{ git_gitweb_default_repository }}"
+ state: directory
+ owner: "{{ git_user }}"
+ group: "{{ git_group }}"
+ mode: 0755
+
+- name: Init gitweb repository
+ command: git init "{{ git_directory_path }}/{{ git_gitweb_default_repository }}"
+ become_user: "{{ git_user }}"
+
+- name: Copy gitweb systemd unit
+ template:
+ src: "{{ git_gitweb_unit }}.service"
+ dest: "{{ g_systemd_unit_directory }}"
+ owner: root
+ group: root
+ mode: 0644
+
+- name: Start gitweb systemd unit
+ systemd:
+ name: "{{ git_gitweb_unit }}"
+ state: restarted
+ daemon_reload: yes
+ enabled: yes
+
diff --git a/roles/setup_git/templates/gitweb.service b/roles/setup_git/templates/gitweb.service
new file mode 100644
index 0000000..12e1eb4
--- /dev/null
+++ b/roles/setup_git/templates/gitweb.service
@@ -0,0 +1,25 @@
+
+# =========================================================================== #
+# _ __ _ __
+# __ ______ (_) /_ ____ _(_) /_
+# / / / / __ \/ / __/ / __ `/ / __/
+# / /_/ / / / / / /__ / /_/ / / /_
+# \__,_/_/ /_/_/\__(_) \__, /_/\__/
+# /____/
+#
+# =========================================================================== #
+
+[Unit]
+Description=Gitweb interface for git repositories
+
+[Service]
+Type=forking
+User={{ git_user }}
+Group={{ git_group }}
+WorkingDirectory={{ git_directory_path }}/{{ git_gitweb_default_repository }}
+ExecStart=/usr/bin/git instaweb --port={{ g_port_gitweb_gui }}
+ExecStop=/bin/kill -s HUP $MAINPID
+RuntimeDirectoryMode=0700
+
+[Install]
+WantedBy=default.target
diff --git a/roles/setup_git/vars/main.yml b/roles/setup_git/vars/main.yml
new file mode 100644
index 0000000..74983b0
--- /dev/null
+++ b/roles/setup_git/vars/main.yml
@@ -0,0 +1,18 @@
+
+# =========================================================================== #
+# _ __
+# _ ______ __________ ____ _(_) /_
+# | | / / __ `/ ___/ ___/ / __ `/ / __/
+# | |/ / /_/ / / (__ ) / /_/ / / /_
+# |___/\__,_/_/ /____(_) \__, /_/\__/
+# /____/
+#
+# =========================================================================== #
+
+---
+git_user: git
+git_user_comment: handles git repositories and gitweb service
+git_group: git
+git_gitweb_unit: gitweb
+git_gitweb_default_repository: __default
+git_directory_path: /srv/git
remember that computers suck.