diff options
Diffstat (limited to 'roles/setup_git')
-rw-r--r-- | roles/setup_git/tasks/main.yml | 88 | ||||
-rw-r--r-- | roles/setup_git/templates/gitweb.service | 25 | ||||
-rw-r--r-- | roles/setup_git/vars/main.yml | 18 |
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 |