Service/mirrors: Difference between revisions
→For mirror administrators: Add tutorial commands |
Added a tutorial |
||
| Line 22: | Line 22: | ||
All you need is a web server with enough bandwidth to serve the files. To set up a new mirror, the site administrator needs to: | All you need is a web server with enough bandwidth to serve the files. To set up a new mirror, the site administrator needs to: | ||
* | * First lets make a directory to store the data: | ||
mkdir /rsync | |||
mkdir /rsync/download.sugarlabs.org | |||
* Then lets use rsync to download the data (warning: takes a long time) | |||
rsync -avzh rsync://download.sugarlabs.org/pub /rsync/download.sugarlabs.org | rsync -avzh rsync://download.sugarlabs.org/pub /rsync/download.sugarlabs.org | ||
* | * Save the rsync command as a shell script and make it executable: | ||
echo "rsync -avzh rsync://download.sugarlabs.org/pub /rsync/download.sugarlabs.org" > /rsync/download.sugarlabs.org/sync.sh | |||
chmod 774 /rsync/download.sugarlabs.org/sync.sh | |||
echo "0 */2 * * * rsync | * Then lets make this to sync automatically. We can use a cron job to do that. You could make sync every 2 hours: | ||
echo "0 */2 * * * /rsync/download.sugarlabs.org/sync.sh" > asloSyncCronJob.txt | |||
crontab asloSyncCronJob.txt | crontab asloSyncCronJob.txt | ||
* Publish the files via HTTP | If you don't want it to sync every 2 hours, have a look at [https://www.digitalocean.com/community/tutorials/how-to-use-cron-to-automate-tasks-on-a-vps a cron tutorial] to change that value. | ||
* Publish the files via HTTP. Look at your http server documentation on how to do that. You could set up a virtual host to serve these files: [https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts in nginx] [https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts in apache] | |||
* Setup a rsync mirror so we can view the status of your mirror. To do so, create a rsyncd.conf file and open it: | |||
sudo nano rsyncd.conf | |||
Then insert the following config: | |||
log file = /rsync/log | |||
[sugarlabs] | |||
path = /rsync/download.sugarlabs.org | |||
comment = PUT SOME INFORMATION HERE - LIKE A MOTD | |||
read only = true | |||
list = yes | |||
Save and quit nano. Then start rsyncd so it can serve your files: | |||
rsync --daemon --config=/etc/rsyncd.conf | |||
* Alert the [[Infrastructure_Team/Contacts|Sugar Labs System Administrators]] that they would like their mirror into rotation, including the following information in the request: | * Alert the [[Infrastructure_Team/Contacts|Sugar Labs System Administrators]] that they would like their mirror into rotation, including the following information in the request: | ||
** Name and URL of the mirror operator (e.g. organization) | ** Name and URL of the mirror operator (e.g. organization) | ||
** Name and email address of the administrative contact | ** Name and email address of the administrative contact | ||
** [http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2] country code of the server location | ** [http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 ISO 3166-1 alpha-2] country code of the server location | ||
** HTTP base URL of the files on the mirror (typically http://mirrors.example.org/sugarlabs/) | ** HTTP base URL of the files on the mirror (typically http://mirrors.example.org/sugarlabs/) | ||
** rsync base URL of the files on the mirror (typically rsync://mirrors.example.org/sugarlabs/) | ** rsync base URL of the files on the mirror (typically rsync://mirrors.example.org/sugarlabs/) | ||