copr-dist-git: compatibility fixes for the latest dist-git and copr-dist-git upstream

This commit is contained in:
clime 2017-04-10 14:33:48 +02:00
parent f558dee191
commit 3692faa1e8
7 changed files with 20 additions and 160 deletions

View file

@ -1,17 +0,0 @@
[asamalik-dist-git]
name=Copr repo for dist-git owned by asamalik
baseurl=https://copr-be.cloud.fedoraproject.org/results/asamalik/dist-git/epel-7-$basearch/
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/asamalik/dist-git/pubkey.gpg
enabled=1
enabled_metadata=1
[msuchy-copr]
name=Copr repo for copr owned by msuchy
baseurl=https://copr-be.cloud.fedoraproject.org/results/@copr/copr/epel-7-$basearch/
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/@copr/copr/pubkey.gpg
enabled=1
enabled_metadata=1

View file

@ -1,62 +1,7 @@
# What to do AFTER changing this config:
# 1. /etc/gitolite/admins <- usernames of gitolite admins
# 2. /etc/cron.d/dist-git/dist_git_sync.cron <- enable auto-sync
# /cgit_pkg_list.cron <- enable cgit auto-sync
[acls]
# user groups on the server associated with dist-git
# example:
# user_groups=cvsadmin,fedora-arm,fedora-sparc,fedora-ia64,fedora-s390,fedora-ppc,provenpackager
user_groups=cvsadmin
# user groups with write access to all repositories
# example:
# admin_groups=cvsadmin,fedora-arm,fedora-s390,fedora-ppc
admin_groups=cvsadmin
# comma separated list of active branches to create ACLs for
# example:
active_branches=el5,el6,el7,epel7,f22,f23,f24,master,custom1
# a "regex"ish list of the reserved branches
# example:
# reserved_branches=f[0-9][0-9],epel[0-9],epel[0-9][0-9],el[0-9],olpc[0-9]
reserved_branches=f[0-9][0-9],epel[0-9],epel[0-9][0-9],el[0-9],olpc[0-9],custom[0-9]
# url of package database - acls (data in json format)
# You can leave it empty if you don't want to use it.
# example:
# pkgdb_acls_url=https://admin.fedoraproject.org/pkgdb/api/vcs?format=json
pkgdb_acls_url=
# url of package database - groups (data in json format)
# You can leave it empty if you don't want to use it.
# example:
# pkgdb_groups_url=https://admin.fedoraproject.org/pkgdb/api/groups?format=json
pkgdb_groups_url=
[notifications]
# email notifications:
# example:
# email_domain=fedoraproject.org
email_domain=example.com
# List of email adresses to be notified about changes
# $PACKAGE can be used as a package name
# example:
# pkg_owner_emails=$PACKAGE-owner@fedoraproject.org,scm-commits@lists.fedoraproject.org
pkg_owner_emails=$PACKAGE-owner@example.com,commits@lists.example.com
[git]
# the default author of git branches
# example:
# default_branch_author=Fedora Release Engineering <rel-eng@lists.fedoraproject.org>
default_branch_author=Copr Dist Git <copr-devel@lists.fedoraproject.org>
[dist-git]
git_author_name = Copr Dist Git
git_author_email = <copr-devel@lists.fedoraproject.org>
cache_dir = /var/lib/dist-git/cache
gitroot_dir = /var/lib/dist-git/git
gitolite = False

View file

@ -1,7 +0,0 @@
SetEnv GIT_PROJECT_ROOT /var/lib/dist-git/git/rpms
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<Directory /usr/libexec/git-core>
Options +ExecCGI
Require all granted
</Directory>

View file

@ -1,6 +0,0 @@
alias /lookaside /var/lib/dist-git/cache/lookaside
<Directory /var/lib/dist-git/cache/lookaside>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

View file

@ -1,105 +1,60 @@
- include: "mount_fs.yml"
#- copy: src="dist-git-epel-7.repo" dest="/etc/yum.repos.d/"
# pre-create users/groups and copy uids/gids from the current prod copr-dist-git
- group: name="packager" state=present gid=987
- group: name="cvsadmin" state=present gid=1001
- group: name="copr-dist-git" state=present gid=1002
- group: name="copr-service" state=present gid=1003
- group: name="copr-dist-git" state=present gid=1003
- name: create user for git repos
user: name="copr-dist-git" group=copr-dist-git groups=cvsadmin,packager uid=1001
- name: create user for copr-dist-git service
user: name="copr-service" group=copr-service groups=packager,docker,apache,mock generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa uid=1002
- name: create user for git repos and copr-dist-git service
user: name="copr-dist-git" group=copr-dist-git groups=packager,docker,apache,mock uid=1002
- name: enable copr dist-git repo
shell: "dnf -y copr enable clime/dist-git"
when: devel
- name: install dist-git
dnf: state=latest name="dist-git"
- name: install packages
dnf: state=present name={{ item }}
with_items:
#- epel-release
- cgit
# - dist-git
- copr-dist-git
- rdiff-backup
- tmpwatch
- highlight
- name: install copr-dist-git
- name: install latest dist-git and copr-dist-git
dnf: state=latest name={{ item }}
with_items:
- dist-git
- dist-git-selinux
- copr-dist-git
- name: switch selinux to permissive
selinux: policy=targeted state=permissive
- name: ensure git storage path exists
file: path="/var/lib/dist-git/git" state=directory group=packager mode=0775
#- file: path="/var/lib/dist-git/git/pkgs-git-repos-list" state=file group=packager
# - file: path="/var/lib/dist-git/git/rpms/" state=directory group=packager
when: not devel
- name: install packages which should be added as requirements
dnf: state=present name={{ item }}
with_items:
- pyrpkg
- name: make sure directories are owned by copr-service user
file: path={{ item }} owner=copr-service group=copr-service state=directory recurse=yes
- name: make sure directories are owned by copr-dist-git user
file: path={{ item }} owner=copr-dist-git group=copr-dist-git state=directory recurse=yes
with_items:
- /var/lib/copr-dist-git/
- /var/log/copr-dist-git/
- name: make sure directories are owned by copr-service:packager user
file: path=/var/lib/dist-git/git owner=copr-service group=packager
when: not devel
# set ssh key, so that copr-service could access gitolite
- name: read pub key into var
command: cat /home/copr-service/.ssh/id_rsa.pub
register: cat_pubkey
check_mode: no
changed_when: false
- set_fact: pubkey="{{cat_pubkey.stdout|join('')}}"
- debug: msg={{pubkey}}
- name: prepare authorized key, so copr-service could interact with gitolite
authorized_key: user="copr-dist-git" key="{{pubkey}}" key_options="command=\"HOME=/var/lib/dist-git/git/ /usr/share/gitolite3/gitolite-shell $USER \"'"
when: not devel
## keys done
- name: install config for copr-dist-git
template: src=copr-dist-git.conf.j2 dest=/etc/copr/copr-dist-git.conf mode=0644
tags:
- config
- name: set git variables for copr-service user
copy: src=".gitconfig" dest="/home/copr-service/.gitconfig"
- name: set git variables for copr-dist-git user
copy: src=".gitconfig" dest="/home/copr-dist-git/.gitconfig"
- name: set git config username
git_config: name=user.name scope=global value="Copr dist git"
- name: install httpd config to serve lookaside and smart-git
- name: install httpd config needed for COPR lookaside cache
copy: src="httpd/dist-git/{{ item }}" dest="/etc/httpd/conf.d/dist-git/{{ item }}"
with_items:
- lookaside.conf
- lookaside-copr.conf
- git-smart-http.conf
tags:
- config
notify:
- reload httpd
- name: install copr-dist-git httpd config
copy: src="httpd/{{ item }}" dest="/etc/httpd/conf.d/{{ item }}"
with_items:
@ -117,15 +72,10 @@
tags:
- config
- copy: src="ssh_config" dest="/home/copr-service/.ssh/config" owner=copr-service group=copr-service mode=0600
- template: src="cgitrc" dest="/etc/cgitrc" owner=root group=root mode=0644
- template: src="cgitrc.slow" dest="/etc/cgitrc.slow" owner=root group=root mode=0644
- command: "/usr/share/dist-git/dist_git_sync.sh"
when: not devel
- name: allow httpd to run cgit
seboolean: name=httpd_enable_cgi state=true persistent=true
@ -146,8 +96,3 @@
- name: Create /var/cache/cgit/repo-list.rc if does not exists (it last 30 minutes to generate)
command: /etc/cron.hourly/copr-dist-git creates=/var/cache/cgit/repo-list.rc
- name: install dist-git-selinux package
dnf: state=present name={{ item }}
with_items:
- dist-git-selinux # this takes several hours to finish due to fs relabelling

View file

@ -80,6 +80,6 @@ source-filter=/usr/libexec/cgit/filters/syntax-highlighting.sh
#repo.owner=fooman@example.com
#repo.readme=info/web/about.html
project-list=/var/lib/copr-dist-git/cgit_pkg_list
#scan-path=/var/lib/dist-git/git/repositories
#scan-path=/var/lib/dist-git/git
include=/var/cache/cgit/repo-list.rc
clone-prefix=http://{{ dist_git_base_url }}/git

View file

@ -80,6 +80,6 @@ mimetype.svg=image/svg+xml
#repo.owner=fooman@example.com
#repo.readme=info/web/about.html
project-list=/var/lib/copr-dist-git/cgit_pkg_list
#scan-path=/var/lib/dist-git/git/rpms
#scan-path=/var/lib/dist-git/git
clone-prefix=http://copr-dist-git.fedorainfracloud.org/git
scan-path=/var/lib/dist-git/git/rpms
scan-path=/var/lib/dist-git/git