mirror of
https://github.com/release-engineering/dist-git.git
synced 2025-02-23 23:12:55 +00:00
223 lines
5.6 KiB
Bash
223 lines
5.6 KiB
Bash
#!/bin/sh
|
|
|
|
|
|
# Bad, bad, bad developer! (Just temporary)
|
|
setenforce permissive
|
|
systemctl stop firewalld
|
|
|
|
|
|
### ENV ###
|
|
DISTGITHOME="/srv/git/"
|
|
|
|
### COMMON CONFIG ###
|
|
|
|
echo ACTION: configuration
|
|
mkdir /etc/dist-git/
|
|
chmod 0755 /etc/dist-git/
|
|
cp files/dist_git_main.conf /etc/dist-git/dist-git.conf
|
|
mod 0755 /etc/dist-git/dist-git.conf
|
|
|
|
echo ACTION: install all the packages:
|
|
yum install -y git httpd gitolite3 cgit perl-Sys-Syslog git-daemon python-requests /usr/sbin/semanage
|
|
|
|
echo ACTION: httpd config dir:
|
|
echo "include \"conf.d/dist-git/*.conf\"" > /etc/httpd/conf.d/dist-git.conf
|
|
mkdir /etc/httpd/conf.d/dist-git
|
|
|
|
# echo ACTION: install the mod_ssl config:
|
|
# echo "LoadModule ssl_module modules/mod_ssl.so" > /etc/httpd/conf.d/ssl.conf
|
|
|
|
echo ACTION: SELinux httpd_use_nfs
|
|
# this is not important for the basic setup
|
|
setsebool -P httpd_use_nfs true
|
|
|
|
### DIST GIT ###
|
|
|
|
echo ACTION: root directory
|
|
mkdir -p $DISTGITHOME/rpms
|
|
chmod 0755 $DISTGITHOME
|
|
groupadd packager
|
|
chown :packager $DISTGITHOME/rpms
|
|
chmod 2775 $DISTGITHOME/rpms
|
|
|
|
echo ACTION: selinux context
|
|
semanage fcontext -a -t httpd_git_content_t "/srv/git(/.*)?"
|
|
restorecon -R /srv/git/
|
|
|
|
echo ACTION: dist git scripts
|
|
for SCRIPT in setup_git_package mkbranch pkgdb2-clone pkgdb_sync_git_branches.py
|
|
do
|
|
cp files/$SCRIPT /usr/local/bin/
|
|
chown root:root /usr/local/bin/$SCRIPT
|
|
chmod 0755 /usr/local/bin/$SCRIPT
|
|
done
|
|
|
|
echo ACTION: httpd config for dist git
|
|
cp files/git-smart-http.conf /etc/httpd/conf.d/dist-git/
|
|
|
|
echo ACTION: cron job pkgdb_sync_git_branches
|
|
# tbd
|
|
|
|
|
|
### GITOLITE ###
|
|
|
|
echo ACTION: gen-acls group and user
|
|
groupadd gen-acls
|
|
useradd -g gen-acls -G packager -s /bin/bash -d $DISTGITHOME gen-acls
|
|
|
|
echo ACTION: directories
|
|
mkdir /var/log/gitolite
|
|
chown root:packager /var/log/gitolite
|
|
chmod 2775 /var/log/gitolite
|
|
|
|
mkdir -p /etc/gitolite/conf
|
|
chown gen-acls:gen-acls /etc/gitolite/conf
|
|
chmod 0755 /etc/gitolite/conf
|
|
|
|
mkdir /etc/gitolite/logs
|
|
chown gen-acls:packager /etc/gitolite/logs
|
|
chmod 0775 /etc/gitolite/logs
|
|
|
|
mkdir -p /etc/gitolite/local/VREF
|
|
chown gen-acls:packager /etc/gitolite/local/VREF
|
|
chmod 0775 /etc/gitolite/local/VREF
|
|
|
|
echo ACTION: gitolite config
|
|
cp files/gitolite.rc /etc/gitolite/
|
|
chmod 0755 /etc/gitolite/gitolite.rc
|
|
|
|
echo ACTION: repositories symlink
|
|
ln -s $DISTGITHOME/rpms/ $DISTGITHOME/repositories
|
|
|
|
echo ACTION: gitolite.rc symlink
|
|
ln -s /etc/gitolite/gitolite.rc $DISTGITHOME/.gitolite.rc
|
|
|
|
echo ACTION: gitolite config symlink
|
|
ln -s /etc/gitolite/ $DISTGITHOME/.gitolite
|
|
|
|
echo ACTION: update-block-push-origin symlink
|
|
ln -s /usr/share/git-core/update-block-push-origin /etc/gitolite/local/VREF/update-block-push-origin
|
|
|
|
echo ACTION: genacls.sh script
|
|
cp files/genacls.sh /usr/local/bin/
|
|
chmod 0755 /usr/local/bin/genacls.sh
|
|
|
|
echo ACTION: genacls.pkgdb script
|
|
cp files/genacls.pkgdb /usr/local/bin/
|
|
chmod 0755 /usr/local/bin/genacls.pkgdb
|
|
|
|
echo ACTION: genacl daily cron job
|
|
# tbd
|
|
|
|
echo ACTION: admin users
|
|
echo "adam" > /etc/gitolite/admins
|
|
chown gen-acls:packager /etc/gitolite/admins
|
|
chmod 0660 /etc/gitolite/admins
|
|
|
|
echo ACTION: Fix permissions on the Gitolite stuff
|
|
mkdir /etc/gitolite/hooks
|
|
chown :packager /etc/gitolite/hooks
|
|
chmod 0770 /etc/gitolite/hooks
|
|
|
|
mkdir /etc/gitolite/hooks/common
|
|
chown :packager /etc/gitolite/hooks/common
|
|
chmod 0770 /etc/gitolite/hooks/common
|
|
|
|
touch /etc/gitolite/hooks/common/update
|
|
chown :packager /etc/gitolite/hooks/common/update
|
|
chmod 0755 /etc/gitolite/hooks/common/update
|
|
|
|
|
|
### CGIT ###
|
|
|
|
echo ACTION: config file
|
|
cp files/cgitrc /etc/cgitrc
|
|
|
|
echo ACTION: httpd config
|
|
cp files/redirect.conf /etc/httpd/conf.d/dist-git/
|
|
|
|
# cgit/make_pkgs_list
|
|
echo ACTION: make pkgs list script
|
|
touch $DISTGITHOME/pkgs-git-repos-list
|
|
chown apache:apache $DISTGITHOME/pkgs-git-repos-list
|
|
chmod 0644 $DISTGITHOME/pkgs-git-repos-list
|
|
cp files/make-cgit-pkgs-list.sh /usr/local/bin/
|
|
chmod 0755 /usr/local/bin/make-cgit-pkgs-list.sh
|
|
# tbd: cron job
|
|
|
|
# cgit/clean_lock_cron
|
|
cp files/clean-lock.cron /etc/cron.d/cgit-clean-lock.cron
|
|
chmod 0644 /etc/cron.d/cgit-clean-lock.cron
|
|
|
|
# git/server
|
|
rm -f /usr/lib/systemd/system/git@.service
|
|
cp files/git@.service /usr/lib/systemd/system/git@.service
|
|
chmod 0644 /usr/lib/systemd/system/git@.service
|
|
|
|
|
|
### LOOKASIDE ###
|
|
|
|
echo ACTION: lookaside cache
|
|
mkdir -p /srv/cache/lookaside/pkgs
|
|
chown apache:apache /srv/cache/lookaside/pkgs
|
|
|
|
cp files/lookaside.conf /etc/httpd/conf.d/dist-git/
|
|
cp files/lookaside-upload.conf /etc/httpd/conf.d/dist-git/
|
|
|
|
mkdir /srv/web
|
|
cp files/dist-git-upload.cgi /srv/web/upload.cgi
|
|
chmod 0755 /srv/web/upload.cgi
|
|
|
|
|
|
### OTHERS ###
|
|
groupadd cvsadmin
|
|
groupadd fedora-arm
|
|
groupadd fedora-sparc
|
|
groupadd fedora-ia64
|
|
groupadd fedora-s390
|
|
groupadd fedora-ppc
|
|
groupadd provenpackager
|
|
groupadd eclipse-sig
|
|
groupadd gnome-sig
|
|
groupadd infra-sig
|
|
groupadd kde-sig
|
|
groupadd python-sig
|
|
groupadd robotics-sig
|
|
|
|
git config --global user.name "John Root Doe"
|
|
git config --global user.email thebigbigboss@example.com
|
|
|
|
systemctl restart httpd
|
|
systemctl start git.socket
|
|
|
|
|
|
# user frank
|
|
useradd frank
|
|
USER="frank"
|
|
RSA="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC68iXNohFGki3huodI6FJi4ivRqkt8Dx/XWel8qmMuqezCoWNQN9w1mNvKaIfPGZCjBtLcKawNgliYvrOpBydHIgqMwXkw4rv3NBPDHKw5XVS4YsSZVdgE5JaEcLR85ahU4r25bfBP/Av0os0TkUzO9ij/6wNXGWpLs1611B2zI4IB0xpp9CVY4aEU3zgbDCHEMSqJZ39M4mJD2iitXpMF/yhvf4Z7jRWa2539HUXVvPp72rCQCgyvhJdcagQBHPWGT8gwipIL+RapF2Hyz+t8/zbQh1L+fwIL2w1tzSjq5SkdPlrNJjdW4XD56aUItRgjZJzwX12wLJY+CFwYqfTP frank@localhost.localdomain"
|
|
|
|
mkdir /home/$USER/.ssh
|
|
echo "command=\"HOME=/srv/git/ /usr/share/gitolite3/gitolite-shell $USER\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty $RSA" > /home/$USER/.ssh/authorized_keys
|
|
chown -R $USER:$USER /home/$USER/.ssh
|
|
usermod -aG packager $USER
|
|
|
|
# packages
|
|
/usr/local/bin/genacls.sh
|
|
/usr/local/bin/make-cgit-pkgs-list.sh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|