diff --git a/docs/simplesamlphp-automated_metadata.md b/docs/simplesamlphp-automated_metadata.md index 9cf0bc352254ae6b0d9a7c5466df075fe8a355b8..54eba451099d4108c77a6968d694e109f400116a 100644 --- a/docs/simplesamlphp-automated_metadata.md +++ b/docs/simplesamlphp-automated_metadata.md @@ -26,7 +26,7 @@ Preparations You need to enable the following modules: - 1. cron + 1. [cron](./cron:cron) 2. metarefresh The cron module allows you to do tasks regularly, by setting up a cron job that calls a hook in SimpleSAMLphp. @@ -193,47 +193,14 @@ Remember that the `type` parameter here must match the `outputFormat` in the con Configuring the cron module --------------------------- +See the [cron module documentation](./cron:cron) to configure `cron` -Once we have configured metarefresh, we can edit the configuration file for the cron module: - - [root@simplesamlphp simplesamlphp]# vi config/module_cron.php - -The configuration should look similar to this: - - $config = array ( -        'key' => 'RANDOM_KEY', -        'allowed_tags' => array('daily', 'hourly', 'frequent'), -        'debug_message' => TRUE, -        'sendemail' => TRUE, - - ); - -Bear in mind that the key is used as a security feature, to restrict access to your cron. Therefore, you need to make sure that the string here is a random key available to no one but you. Additionally, make sure that you include here the appropriate tags that you previously told metarefresh -to use in the `cron` directive. - -Next, use your web browser to go to `https://YOUR_SERVER/simplesaml/module.php/cron/croninfo.php`. Make sure to properly set your server's address, as well as use HTTP or HTTPS accordingly, and also to specify the correct path to the root of your SimpleSAMLphp installation. - -Now, copy the cron configuration suggested: - - # Run cron [daily] - 02 0 * * * curl --silent "https://YOUR_SERVER/simplesaml/module.php/cron/cron.php?key=RANDOM_KEY&tag=daily" > /dev/null 2>&1 - # Run cron [hourly] - 01 * * * * curl --silent "https://YOUR_SERVER/simplesaml/module.php/cron/cron.php?key=RANDOM_KEY&tag=hourly" > /dev/null 2>&1 - -Finally, add it to your crontab by going back to the terminal, and editing with: - - [root@simplesamlphp config]# crontab -e - -This will open up your favourite editor. If an editor different than the one you use normally appears, exit, and configure the `EDITOR` variable -to tell the command line which editor it should use: - - [root@simplesamlphp config]# export EDITOR=emacs - -If you want to force the metadata to be refreshed manually, you can do so by going back to the cron page in the web interface. Then, just follow -the appropriate links to execute the cron jobs you want. The page will take a while loading, and eventually show a blank page. It is so because -the commands are intended to be run from cron, and therefore they produce no output. If this operation seems to run fine, navigate to the **SimpleSAMLphp Front page** › **Federation**. Here you will see a list of all the Identity Providers trusted. They will be listed with information about the maximum duration of their cached version, such as *(expires in 96.0 hours)*. +Once you have invoked cron, and if this operation seems to run fine, navigate to the **SimpleSAMLphp Front page** › **Federation**. Here you will see a list of all the Identity Providers trusted. They will be listed with information about the maximum duration of their cached version, such as *(expires in 96.0 hours)*. +You *may* need to adjust the below php.ini setings if the metadata files you consume are quite large. +* `memory_limit` +* `max_execution_time` Metadata duration ----------------- diff --git a/modules/cron/docs/cron.md b/modules/cron/docs/cron.md new file mode 100644 index 0000000000000000000000000000000000000000..d75db3b8c83297992760adac349b2dd6753a6177 --- /dev/null +++ b/modules/cron/docs/cron.md @@ -0,0 +1,82 @@ +Cron +============================= + +<!-- + This file is written in Markdown syntax. + For more information about how to use the Markdown syntax, read here: + http://daringfireball.net/projects/markdown/syntax +--> + + +<!-- {{TOC}} --> + +Introduction +------------ + +The cron module allows you to do tasks regularly, by setting up a cron +job that calls a hook in SimpleSAMLphp. This will invoke +`hooks/hook_cron.php` in any enabled modules + + +Preparations +------------ + +You need to enable the module and copy the `config-templates` files of the module into the global `config/` directory. + + [root@simplesamlphp] cd /var/simplesamlphp + [root@simplesamlphp simplesamlphp] touch modules/cron/enable + [root@simplesamlphp simplesamlphp] cp modules/cron/config-templates/*.php config/ + + +Configuring the cron module +--------------------------- + +The configuration (`config/module_cron.php`) should look similar to this: + + $config = array ( +        'key' => 'RANDOM_KEY', +        'allowed_tags' => array('daily', 'hourly', 'frequent'), +        'debug_message' => TRUE, +        'sendemail' => TRUE, + + ); + +Bear in mind that the key is used as a security feature, to restrict +access to your cron. Therefore, you need to make sure that the string +here is a random key available to no one but you. Additionally, make +sure that you include here the appropriate tags - for example any tags +that you previously told metarefresh to use in the `cron` directive. + +Triggering Cron via HTTP +--------------------------- + +`cron` functionality can be invoked by making an HTTP request to the +cron module. Use your web browser to go to +`https://YOUR_SERVER/simplesaml/module.php/cron/croninfo.php`. Make +sure to properly set your server's address, as well as use HTTP or +HTTPS accordingly, and also to specify the correct path to the root of +your SimpleSAMLphp installation. + +Now, copy the cron configuration suggested on that page: + + # Run cron [daily] + 02 0 * * * curl --silent "https://YOUR_SERVER/simplesaml/module.php/cron/cron.php?key=RANDOM_KEY&tag=daily" > /dev/null 2>&1 + # Run cron [hourly] + 01 * * * * curl --silent "https://YOUR_SERVER/simplesaml/module.php/cron/cron.php?key=RANDOM_KEY&tag=hourly" > /dev/null 2>&1 + +Finally, add it to your crontab by going back to the terminal, and editing with: + + [root@simplesamlphp config]# crontab -e + +This will open up your favourite editor. If an editor different than +the one you use normally appears, exit, and configure the `EDITOR` +variable to tell the command line which editor it should use: + + [root@simplesamlphp config]# export EDITOR=emacs + +If you want to trigger a job manually, you can do +so by going back to the cron page in the web interface. Then, just +follow the appropriate links to execute the cron jobs you want. The +page will take a while loading, and eventually show a blank page. + +