deploiement/roles/cgit/tasks/main.yml
2023-01-21 20:10:15 +01:00

146 lines
4.1 KiB
YAML

################################################################################
# installation de cgit et configuration de nginx et gitolite
#
# Copyright (C) 2022 rick G. <rick@gnous.eu>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <https://www.gnu.org/licenses/>.
################################################################################
---
- name: installation des paquets nécessaires
apt:
name:
- libzip-dev
- libssl-dev
- zlib1g-dev
- python3-markdown
- python3-certbot-nginx
- fcgiwrap
#- python3-zipp
- name: installation de pygments
ansible.builtin.pip:
name:
- pygments
- zipp
- name: création utilisateur cgit
ansible.builtin.user:
name: "{{ user }}"
shell: "/bin/bash"
state: present
- name: mise en place de cgit
block:
- name: clonage de cgit
ansible.builtin.git:
dest: "{{ path_tmp_git }}"
repo: "{{ git }}"
single_branch: yes
- name: configuration de la compilation de cgit
template:
src: "config-cgit.conf"
dest: "{{ path_tmp_git }}/cgit.conf"
mode: 0644
- name: compilation de cgit
community.general.make:
chdir: "{{ path_tmp_git }}"
- name: installation de cgit
community.general.make:
chdir: "{{ path_tmp_git }}"
target: install
- name: configuration de cgit
template:
src: "cgitrc"
dest: "{{ path_cgit }}"
mode: 0644
- name: clonage de gitolite
ansible.builtin.git:
dest: "{{ path_gitolite }}"
repo: "{{ git_gitolite }}"
single_branch: yes
- name: création du dossier bin
file:
path: "{{ home_user }}/bin"
state: directory
- name: installation de gitolite
ansible.builtin.command:
cmd: "{{ path_gitolite }}/install -to {{ home_user }}/bin"
- name: upload de la clé SSH de l'admin
ansible.builtin.copy:
src: "../files/{{ admin_key }}"
dest: "/tmp/{{ admin_key }}"
- name: configuration du premier utilisateur
ansible.builtin.command:
cmd: "{{ home_user }}/bin/gitolite setup -pk /tmp/{{ admin_key }}"
- name: configuration des droits du dossier repositories
ansible.builtin.file:
path: "{{ home_user }}/repositories"
mode: 0705
state: directory
recurse: yes
- name: configuration des droits de la liste des repositories
ansible.builtin.file:
path: "{{ home_user }}/projects.list"
mode: 0705
- name: configuration des dépots
ansible.builtin.lineinfile:
path: "{{ home_user }}/.gitolite.rc"
regex: "UMASK"
line: "\tUMASK => 0072,"
- name: configuration de gitolite avec les clés cgit
ansible.builtin.lineinfile:
path: "{{ home_user }}/.gitolite.rc"
regex: "GIT_CONFIG_KEYS"
line: "\tGIT_CONFIG_KEYS => 'cgit\\.owner cgit\\.section cgit\\.hide cgit\\.desc',"
- name: configuration de la branche par défaut de git
community.general.git_config:
name: init.defaultBranch
scope: global
value: master
become: yes
become_user: "{{ user }}"
- name: configuration de Nginx
template:
src: "cgit-nginx"
dest: "{{ ava }}/cgit.conf"
mode: 0644
- name: lien symbolique pour le site cgit
file:
src: "{{ ava }}/cgit.conf"
dest: "{{ ena }}/cgit.conf"
state: link
- name: démarrage par défaut de fcgiwrap
ansible.builtin.service:
name: fcgiwrap
enabled: yes
notify:
- restart fcgiwrap