Difference between revisions of "Mirrors"
m (Moving some stuff to the push specific configuration as they are not required for pull) |
m (Markup fixes) |
||
Line 8: | Line 8: | ||
===Figures=== | ===Figures=== | ||
− | ==== | + | ====Hard disk size==== |
− | The amount of physical | + | The amount of physical hard disk size taken up by the contribs.org data will be about 30Gb, the [http://mirror.contribs.org/smeserver/release /release] tree, which holds the iso images and the repositories, accounts for about 6Gb of said amount. The [http://mirror.contribs.org/smeserver/contribs /contribs] tree will account for a little over 1Gb of the total. |
The obsolete directory accounts for 16Gb, and the testing directory which include the next version SME8 is 7Gb big. | The obsolete directory accounts for 16Gb, and the testing directory which include the next version SME8 is 7Gb big. | ||
Line 21: | Line 21: | ||
====Preparing your system==== | ====Preparing your system==== | ||
− | <ol><li>Create a storage location for mirror | + | <ol><li>Create a storage location for mirror<br/> |
− | + | <pre>mkdir -p /path/to/your/data/store/</pre> | |
</li><li>Create a new user to perform sync<br/>If you are running SME Server you can create the user through the server-manager panel. | </li><li>Create a new user to perform sync<br/>If you are running SME Server you can create the user through the server-manager panel. | ||
</li><li>Now it is time to download the ftpsync script and all files it requires: | </li><li>Now it is time to download the ftpsync script and all files it requires: | ||
Line 29: | Line 29: | ||
tar zxof ftpsync.tgz | tar zxof ftpsync.tgz | ||
</li><li>Change the ownership of the directories to the new user | </li><li>Change the ownership of the directories to the new user | ||
− | chown -R | + | chown -R {user} bin etc log .ssh {/path/to/your/data/store/} |
</li><li>Now we have installed and set things up as is required but we will need to update the configuration file to point to the storage location of the data (TO) in the config file (etc/ftpsync.conf). Use your favorite text editor for it.</li></ol> | </li><li>Now we have installed and set things up as is required but we will need to update the configuration file to point to the storage location of the data (TO) in the config file (etc/ftpsync.conf). Use your favorite text editor for it.</li></ol> | ||
====Testing your setup==== | ====Testing your setup==== | ||
<ol><li>Now it is time to perform the initial sync (and test that script does what it needs to) | <ol><li>Now it is time to perform the initial sync (and test that script does what it needs to) | ||
− | + | <pre>su - user -s /bin/bash | |
− | + | ~/bin/ftpsync</pre> | |
</li><li>Now check heck the logs to see if there are any errors. Since the initial sync will take a lot of time you can best do this in a second terminal window: | </li><li>Now check heck the logs to see if there are any errors. Since the initial sync will take a lot of time you can best do this in a second terminal window: | ||
cd ~/log | cd ~/log | ||
Line 63: | Line 63: | ||
{{Incomplete}} | {{Incomplete}} | ||
<ol><li>, but you will need to enable bash as the shell for this user. | <ol><li>, but you will need to enable bash as the shell for this user. | ||
− | db accounts setprop | + | db accounts setprop {user} Shell /bin/bash |
− | signal-event user-modify | + | signal-event user-modify {user} |
</li><li>Append the keys to the authorized_keys file of the user | </li><li>Append the keys to the authorized_keys file of the user | ||
cat .ssh/pushmirror-*.pub >> .ssh/authorized_keys | cat .ssh/pushmirror-*.pub >> .ssh/authorized_keys | ||
Line 71: | Line 71: | ||
We prefer you configure your mirror to be setup as a push mirror, but if you can not do so or have other ways for not doing so you can just schedule a cron job to run every 2 hours that does the exact same sync command you do to get the mirror in the first place, you can add a comment like in the example below: | We prefer you configure your mirror to be setup as a push mirror, but if you can not do so or have other ways for not doing so you can just schedule a cron job to run every 2 hours that does the exact same sync command you do to get the mirror in the first place, you can add a comment like in the example below: | ||
− | 1 */2 * * * | + | 1 */2 * * * {user} ~/bin/ftpsync |
====Advertising your mirror==== | ====Advertising your mirror==== |
Revision as of 18:34, 13 July 2011
Status of the contribs.org mirrors
To view the status of contribs.org mirrors, look at http://mirror.contribs.org/mirrors.
Accessing the contribs.org mirros
To access the contribs.org download mirrors, always use the URL http://mirror.contribs.org. The current releases can be found at http://mirror.contribs.org/smeserver/releases/, the contribs section can be found at: http://mirror.contribs.org/smeserver/contribs/
Figures
Hard disk size
The amount of physical hard disk size taken up by the contribs.org data will be about 30Gb, the /release tree, which holds the iso images and the repositories, accounts for about 6Gb of said amount. The /contribs tree will account for a little over 1Gb of the total. The obsolete directory accounts for 16Gb, and the testing directory which include the next version SME8 is 7Gb big.
If you are short in space you can easily save 16Gb with --exclude="obsolete/" and 7Gb more with --exclude="testing/"
Bandwith
Due to the small number of mirrors, the bandwidth routed to your servers will be in the order of 200Gb/month on average, which translates to about 80kB/s.
How to become a mirror site?
If you or your company has some spare bandwidth and would like to be included in mirror.contribs.org, become a mirror by following these steps:
Preparing your system
- Create a storage location for mirror
mkdir -p /path/to/your/data/store/
- Create a new user to perform sync
If you are running SME Server you can create the user through the server-manager panel. - Now it is time to download the ftpsync script and all files it requires: wget http://contribs.org/ftpsync.tgz
- Extract the tarball in users directory tar zxof ftpsync.tgz
- Change the ownership of the directories to the new user chown -R {user} bin etc log .ssh {/path/to/your/data/store/}
- Now we have installed and set things up as is required but we will need to update the configuration file to point to the storage location of the data (TO) in the config file (etc/ftpsync.conf). Use your favorite text editor for it.
Testing your setup
- Now it is time to perform the initial sync (and test that script does what it needs to)
su - user -s /bin/bash ~/bin/ftpsync
- Now check heck the logs to see if there are any errors. Since the initial sync will take a lot of time you can best do this in a second terminal window: cd ~/log cat rsync-ftpsync.error.0
Configuring the web server
You will need to configure your web server to make the files available to the public.
For that you need to enable the FollowSymLinks option in the apache config file.
If your mirror is hosted on a SME Server 7.x (or higher version), in an ibay, you should issue the following commands after creating the ibay:
db accounts setprop {ibayname} FollowSymLinks enabled signal-event ibay-modify {ibayname}
Keeping your mirror up-to-date
The ftpsync script allows for two sync methods: push or pull.
We prefer you configure your mirror to be setup as a push mirror because:
- Sync only happens when there are changes
- Changes are propagated as close to real-time as possible
- Changes can be staged (sync data first, repodata second)
- Less out of sync mirrors for yum
Configuring for push
- , but you will need to enable bash as the shell for this user. db accounts setprop {user} Shell /bin/bash signal-event user-modify {user}
- Append the keys to the authorized_keys file of the user cat .ssh/pushmirror-*.pub >> .ssh/authorized_keys
- name of site
- primary contact name/email
- location/country
- bandwidth available to mirror
- URL to site (for freshness checks and yum)
- hostname to connect to (for ssh)
- port to connect to (for ssh)
- username to connect with (for ssh)
Configuring for pull
We prefer you configure your mirror to be setup as a push mirror, but if you can not do so or have other ways for not doing so you can just schedule a cron job to run every 2 hours that does the exact same sync command you do to get the mirror in the first place, you can add a comment like in the example below:
1 */2 * * * {user} ~/bin/ftpsync
Advertising your mirror
After your mirror is synced and working properly the last thing you need to do is let us know by filing a bug report on bugs.contribs.org under the website category or by following this link . Please include the following in the bug report:
Configuration options
The ftpsync configuration script has a number of options you can configure. You might have already seen some of them when you had to adjust the storage location in the configuration process. The configuration file is well documented but we will discuss some of the features here.