aboutsummaryrefslogtreecommitdiffstats
path: root/roles/git
diff options
context:
space:
mode:
Diffstat (limited to 'roles/git')
-rw-r--r--roles/git/defaults/main.yml7
-rw-r--r--roles/git/tasks/main.yml45
-rw-r--r--roles/git/templates/gitconfig.j22
-rw-r--r--roles/git/templates/no-interactive-login.j27
4 files changed, 61 insertions, 0 deletions
diff --git a/roles/git/defaults/main.yml b/roles/git/defaults/main.yml
new file mode 100644
index 0000000..f99dec3
--- /dev/null
+++ b/roles/git/defaults/main.yml
@@ -0,0 +1,7 @@
+git_user: git
+git_group: git
+git_dir: /data/git
+
+git_shell: /bin/sh
+git_default_branch: trunk
+git_allow_ssh_login: true
diff --git a/roles/git/tasks/main.yml b/roles/git/tasks/main.yml
new file mode 100644
index 0000000..4d2b74e
--- /dev/null
+++ b/roles/git/tasks/main.yml
@@ -0,0 +1,45 @@
+- name: install git package
+ package:
+ name: git
+ state: present
+
+- name: create git group
+ group:
+ name: "{{ git_group }}"
+ state: present
+
+- name: create git user
+ user:
+ name: "{{ git_user }}"
+ group: "{{ git_group }}"
+ shell: "{{ git_shell }}"
+ home: "{{ git_dir }}"
+ create_home: false
+
+- name: create git directories
+ file:
+ path: "{{ item }}"
+ owner: "{{ git_user }}"
+ group: "{{ git_group }}"
+ state: directory
+ mode: 0755
+ loop:
+ - "{{ git_dir }}"
+ - "{{ git_dir }}/git-shell-commands"
+
+- name: generate git-shell no-login prompt
+ template:
+ src: no-interactive-login.j2
+ dest: "{{ git_dir }}/git-shell-commands/no-interactive-login"
+ owner: "{{ git_user }}"
+ group: "{{ git_group }}"
+ mode: "0744"
+ when: not git_allow_ssh_login
+
+- name: generate gitconfig
+ template:
+ src: gitconfig.j2
+ dest: "{{ git_dir }}/.gitconfig"
+ owner: "{{ git_user }}"
+ group: "{{ git_group }}"
+ mode: 0644
diff --git a/roles/git/templates/gitconfig.j2 b/roles/git/templates/gitconfig.j2
new file mode 100644
index 0000000..b9923a2
--- /dev/null
+++ b/roles/git/templates/gitconfig.j2
@@ -0,0 +1,2 @@
+[init]
+ defaultBranch = {{ git_default_branch }}
diff --git a/roles/git/templates/no-interactive-login.j2 b/roles/git/templates/no-interactive-login.j2
new file mode 100644
index 0000000..bfe6011
--- /dev/null
+++ b/roles/git/templates/no-interactive-login.j2
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+cat <<EOF
+ ▍ git
+ ▍
+ ▍no-interactive-login
+EOF
remember that computers suck.