create beginning of playbook

This commit is contained in:
Andrew Wang 2021-09-03 21:27:41 -04:00
parent 1d9fae9d78
commit ebbc0534fb
4 changed files with 428 additions and 0 deletions

8
mirror/README.md Normal file
View File

@ -0,0 +1,8 @@
# Mirror
AFter setting up the vm this playbook will setup mirror's services
## Instructions
Install ansible then run the playbook
```
apt install -y ansible
ansible-playbook main.yml
```

46
mirror/main.yml Normal file
View File

@ -0,0 +1,46 @@
---
# https://wiki.csclub.uwaterloo.ca/Mirror
# unsure that hosts does
- hosts: 127.0.0.1
tasks:
- name: install dependencies
apt:
pkg:
- zfsutils-linux
- nginx
- rsync
- proftpd
state: latest
update_cache: true
- name: create zfs mountpoint
file:
# double check
path: /mirror/root/.cscmirror
state: directory
mode: 0777
- name: create and mount zpool
# double check
# may be better to use the /dev/disk/by-id/... instead
commmand: zpool create -f -m /mirror/root/.cscmirror cscmirror raidz2 /dev/vdc /dev/vdd /dev/vde /dev/vdf
# may need to mount it (also check that it will automount on boot)
# zfs mount -a
- name: add rsync config
# right now we will just take configs from mirror
# later we will edit them as required
#
# create specific folder for each service
template:
src: rsync/rsyncd.conf.j2
dest: /etc/rsyncd.conf
owner: root
group: root
mode: 0644
template:
src: rsync/rsyncd-filter.conf.j2
dest: /etc/rsyncd-filter.conf
owner: root
group: root
mode: 0644
notify: restart rsync

View File

@ -0,0 +1 @@
- .~tmp~

373
mirror/rsync/rsyncd.conf.j2 Normal file
View File

@ -0,0 +1,373 @@
uid = nobody
gid = nogroup
use chroot = yes
max connections = 100
socket options = SO_KEEPALIVE
motd file = /mirror/root/include/motd.msg
log file = /var/log/rsync.log
dont compress = *
refuse options = c delete
read only = true
[mirror]
path = /mirror/root
comment = Everything
hosts allow = 129.97.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 2620:101:f000::/47, fd74:6b6a:8eca::/47
filter = merge /etc/rsyncd-filter.conf
[alpine]
path = /mirror/root/alpine
comment = Alpine Linux
filter = merge /etc/rsyncd-filter.conf
[almalinux]
path = /mirror/root/almalinux
comment = AlmaLinux
filter = merge /etc/rsyncd-filter.conf
[apache]
path = /mirror/root/apache
comment = Apache software distribution
filter = merge /etc/rsyncd-filter.conf
[archlinux]
path = /mirror/root/archlinux
comment = The Arch Linux archive
filter = merge /etc/rsyncd-filter.conf
[centos]
path = /mirror/root/centos
comment = CentOS archive
filter = merge /etc/rsyncd-filter.conf
[ceph]
path = /mirror/root/ceph
comment = Ceph
log file = /var/log/rsync.ceph.log
filter = merge /etc/rsyncd-filter.conf
[CPAN]
path = /mirror/root/CPAN
comment = Comprehensive Perl Archive Network
filter = merge /etc/rsyncd-filter.conf
[CRAN]
path = /mirror/root/CRAN
comment = complete CRAN ftp area
filter = merge /etc/rsyncd-filter.conf
[CTAN]
path = /mirror/root/CTAN
comment = Comprehensive TeX Archive Network
filter = merge /etc/rsyncd-filter.conf
[cygwin]
path = /mirror/root/cygwin
comment = cygwin ftp area
filter = merge /etc/rsyncd-filter.conf
[damnsmalllinux]
path = /mirror/root/damnsmalllinux
comment = Damn Small Linux
filter = merge /etc/rsyncd-filter.conf
[debian]
path = /mirror/root/debian
comment = Debian Linux
filter = merge /etc/rsyncd-filter.conf
[debian-backports]
path = /mirror/root/debian-backports
comment = Backports.org
filter = merge /etc/rsyncd-filter.conf
[debian-cd]
path = /mirror/root/debian-cd
comment = Debian CD images
filter = merge /etc/rsyncd-filter.conf
[debian-multimedia]
path = /mirror/root/debian-multimedia
comment = Debian multimedia repository
filter = merge /etc/rsyncd-filter.conf
[debian-security]
path = /mirror/root/debian-security
comment = Debian security archive
filter = merge /etc/rsyncd-filter.conf
[eclipse]
path = /mirror/root/eclipse
comment = Eclipse Mirror
filter = merge /etc/rsyncd-filter.conf
[emacsconf]
path = /mirror/root/emacsconf
comment = EmacsConf Mirror
filter = merge /etc/rsyncd-filter.conf
[emdebian]
path = /mirror/root/emdebian
comment = emdebian archive
filter = merge /etc/rsyncd-filter.conf
[fedora]
path = /mirror/root/fedora
comment = Fedora
filter = merge /etc/rsyncd-filter.conf
[fedora-enchilada]
path = /mirror/root/fedora
comment = the ENTIRE Fedora Repository
filter = merge /etc/rsyncd-filter.conf
[FreeBSD]
path = /mirror/root/FreeBSD
comment = FreeBSD archive
filter = merge /etc/rsyncd-filter.conf
[gentoo-distfiles]
path = /mirror/root/gentoo-distfiles
comment = Gentoo Linux source tree
filter = merge /etc/rsyncd-filter.conf
[gentoo-portage]
path = /mirror/root/gentoo-portage
comment = Gentoo Linux Portage tree mirror
exclude = distfiles
filter = merge /etc/rsyncd-filter.conf
[gnome]
path = /mirror/root/gnome
comment = GNOME Project
filter = merge /etc/rsyncd-filter.conf
[gnu]
path = /mirror/root/gnu
comment = The GNU archive
filter = merge /etc/rsyncd-filter.conf
[gutenberg]
path = /mirror/root/gutenberg
comment = Project Gutenberg
filter = merge /etc/rsyncd-filter.conf
[kali]
path = /mirror/root/kali
comment = Kali Linux
filter = merge /etc/rsyncd-filter.conf
[kali-images]
path = /mirror/root/kali-images
comment = Kali Linux Images
filter = merge /etc/rsyncd-filter.conf
[kde]
path = /mirror/root/kde
comment = KDE
filter = merge /etc/rsyncd-filter.conf
[kde-applicationdata]
path = /mirror/root/kde-applicationdata
comment = KDE
filter = merge /etc/rsyncd-filter.conf
[kdeftp]
path = /mirror/root/kde
comment = KDE ftp area
filter = merge /etc/rsyncd-filter.conf
[kernel.org]
path = /mirror/root/kernel.org
comment = The kernel.org archive
filter = merge /etc/rsyncd-filter.conf
[linuxmint]
path = /mirror/root/linuxmint
comment = Linux Mint
filter = merge /etc/rsyncd-filter.conf
[linuxmint-packages]
path = /mirror/root/linuxmint-packages
comment = Linux Mint packages
filter = merge /etc/rsyncd-filter.conf
[MacPorts]
path = /mirror/root/MacPorts
comment = MacPorts
filter = merge /etc/rsyncd-filter.conf
[macports]
path = /mirror/root/MacPorts
comment = MacPorts
filter = merge /etc/rsyncd-filter.conf
[mysql]
path = /mirror/root/mysql
comment = MySQL mirror
filter = merge /etc/rsyncd-filter.conf
[NetBSD]
path = /mirror/root/NetBSD
comment = NetBSD
filter = merge /etc/rsyncd-filter.conf
[nongnu]
path = /mirror/root/nongnu
comment = The non-GNU archive
filter = merge /etc/rsyncd-filter.conf
[OpenBSD]
path = /mirror/root/OpenBSD
comment = OpenBSD
filter = merge /etc/rsyncd-filter.conf
[openoffice]
path = /mirror/root/openoffice
comment = openoffice.org file tree
filter = merge /etc/rsyncd-filter.conf
[opensuse]
path = /mirror/root/opensuse
comment = opensuse-full
filter = merge /etc/rsyncd-filter.conf
[puppylinux]
path = /mirror/root/puppylinux
comment = Puppy Linux
filter = merge /etc/rsyncd-filter.conf
[racket]
path = /mirror/root/racket
comment = Racket
filter = merge /etc/rsyncd-filter.conf
[plt-bundles]
path = /mirror/root/racket/plt-bundles
comment = plt-bundles
filter = merge /etc/rsyncd-filter.conf
[racket-installers]
path = /mirror/root/racket/racket-installers
comment = racket-installers
filter = merge /etc/rsyncd-filter.conf
[raspbian]
path = /mirror/root/raspbian
comment = Raspberry Pi
filter = merge /etc/rsyncd-filter.conf
[raspberrypi]
path = /mirror/root/raspberrypi
comment = raspberrypi
filter = merge /etc/rsyncd-filter.conf
[qtproject]
path = /mirror/root/qtproject
comment = Qt Project
filter = merge /etc/rsyncd-filter.conf
[sage]
path = /mirror/root/sage
comment = Sage Computer Algebra System
filter = merge /etc/rsyncd-filter.conf
[saltstack]
path = /mirror/root/saltstack
comment = Saltstack
filter = merge /etc/rsyncd-filter.conf
[slackware]
path = /mirror/root/slackware
comment = Slackware Linux
filter = merge /etc/rsyncd-filter.conf
[tdf]
path = /mirror/root/tdf
comment = The Document Foundation
filter = merge /etc/rsyncd-filter.conf
[ubuntu]
path = /mirror/root/ubuntu
comment = Ubuntu Archive
filter = merge /etc/rsyncd-filter.conf
[ubuntu-ports]
path = /mirror/root/ubuntu-ports
comment = Ubuntu-ports Archive
filter = merge /etc/rsyncd-filter.conf
[ubuntu-ports-releases]
path = /mirror/root/ubuntu-ports
comment = Ubuntu-ports Release CD Images
filter = merge /etc/rsyncd-filter.conf
[ubuntu-releases]
path = /mirror/root/ubuntu-releases
comment = Ubuntu Release CD Images
filter = merge /etc/rsyncd-filter.conf
[xiph]
path = /mirror/root/xiph
comment = Xiph
filter = merge /etc/rsyncd-filter.conf
[x.org]
path = /mirror/root/x.org
comment = X.org archive
filter = merge /etc/rsyncd-filter.conf
[xorg-archive]
path = /mirror/root/x.org
comment = X.Org archive
filter = merge /etc/rsyncd-filter.conf
[xubuntu-releases]
path = /mirror/root/xubuntu-releases
comment = Xubuntu Release CD Images
filter = merge /etc/rsyncd-filter.conf
[csclub]
path = /mirror/root/csclub
comment = CS Club Files
filter = merge /etc/rsyncd-filter.conf
[mprelease]
path = /mirror/root/MacPorts/release
comment= MacPorts Release
filter = merge /etc/rsyncd-filter.conf
[mpdistfiles]
path = /mirror/root/MacPorts/mpdistfiles
comment= MacPorts Dist files
filter = merge /etc/rsyncd-filter.conf
[vlc]
path = /mirror/root/vlc
comment = VideoLAN Project
filter = merge /etc/rsyncd-filter.conf
[ipfire]
path = /mirror/root/ipfire
comment = IPFire Project
filter = merge /etc/rsyncd-filter.conf
[manjaro]
path = /mirror/root/manjaro
comment = Manjaro Linux
filter = merge /etc/rsyncd-filter.conf
[parabola]
path = /mirror/root/parabola
comment = Parabola GNU/Linux-libre
filter = merge /etc/rsyncd-filter.conf
[hyperbola]
path = /mirror/root/hyperbola
comment = Hyperbola
filter = merge /etc/rsyncd-filter.conf
[trisquel]
path = /mirror/root/trisquel
comment = Trisquel GNU/Linux
filter = merge /etc/rsyncd-filter.conf