X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Frole%2Fmanifests%2Fcryptoportfolio%2Fbot.pp;h=fd3ece37947cedf1c645174a84e67aec8ff25869;hb=96f8d0f037f8b8e93315e864bdaf661f45e3c472;hp=7b62ae0120f60acb6224f6a360fc70adfc539494;hpb=2859008efe8f0a75344c7ba1c9c6e4d589f92da3;p=perso%2FImmae%2FProjets%2FPuppet.git diff --git a/modules/role/manifests/cryptoportfolio/bot.pp b/modules/role/manifests/cryptoportfolio/bot.pp index 7b62ae0..fd3ece3 100644 --- a/modules/role/manifests/cryptoportfolio/bot.pp +++ b/modules/role/manifests/cryptoportfolio/bot.pp @@ -3,6 +3,7 @@ class role::cryptoportfolio::bot inherits role::cryptoportfolio { $cf_bot_app = "${home}/bot" $cf_bot_app_conf = "${home}/bot_config.ini" + $cf_bot_app_conf_hourly = "${home}/bot_config_hourly.ini" $cf_bot_app_reports = "${home}/bot_reports" ensure_packages(["python", "python-pip"]) @@ -15,11 +16,11 @@ class role::cryptoportfolio::bot inherits role::cryptoportfolio { require => User["$user:"], } - archive { "${home}/trader_${bot_version}.tar.gz": - path => "${home}/trader_${bot_version}.tar.gz", - source => "https://git.immae.eu/releases/cryptoportfolio/trader/trader_${bot_version}.tar.gz", + archive { "${home}/trader_${trader_version}.tar.gz": + path => "${home}/trader_${trader_version}.tar.gz", + source => "https://git.immae.eu/releases/cryptoportfolio/trader/trader_${trader_version}.tar.gz", checksum_type => "sha256", - checksum => $bot_sha256, + checksum => $trader_sha256, cleanup => false, extract => true, user => $user, @@ -49,7 +50,7 @@ class role::cryptoportfolio::bot inherits role::cryptoportfolio { content => template("role/cryptoportfolio/bot_config.ini.erb"), require => [ User["$user:"], - Archive["${home}/trader_${bot_version}.tar.gz"], + Archive["${home}/trader_${trader_version}.tar.gz"], ], } @@ -58,7 +59,7 @@ class role::cryptoportfolio::bot inherits role::cryptoportfolio { environment => ["HOME=${home}","PATH=/usr/bin/","CRON_TZ=UTC"], require => [ File[$cf_bot_app_conf], - Archive["${home}/trader_${bot_version}.tar.gz"] + Archive["${home}/trader_${trader_version}.tar.gz"] ], jobs => [ { @@ -80,13 +81,61 @@ class role::cryptoportfolio::bot inherits role::cryptoportfolio { ], } + if ($environment == "production") { + $monitored_key = 3 + @profile::monitoring::local_service { "Last redis report is less than 2 hours old": + local => { + check_command => "check_date!redis-cli -s $redis_host GET /cryptoportfolio/$monitored_key/latest/date!2" + } + } + + @profile::monitoring::local_service { "Last bot report is less than one week old": + sudos => { + "naemon-cryptoportfolio-bot" => "naemon ALL=($user) NOPASSWD: /usr/bin/find $cf_bot_app_reports -mindepth 1 -maxdepth 1 -printf %T@?n", + }, + local => { + check_command => "check_last_file_date!$cf_bot_app_reports!168!$user", + }, + } + } + + if versioncmp($trader_version, "v1.3") >= 0 { + file { $cf_bot_app_conf_hourly: + owner => $user, + group => $group, + mode => "0600", + content => template("role/cryptoportfolio/bot_config_hourly.ini.erb"), + require => [ + User["$user:"], + Archive["${home}/trader_${trader_version}.tar.gz"], + ], + } + + cron::job::multiple { "py-cryptoportfolio-hourly": + ensure => present, + environment => ["HOME=${home}","PATH=/usr/bin/"], + require => [ + File[$cf_bot_app_conf_hourly], + Archive["${home}/trader_${trader_version}.tar.gz"] + ], + jobs => [ + { + command => "cd $cf_bot_app ; python main.py --config $cf_bot_app_conf_hourly", + user => $user, + minute => 30, + description => "Print the current state to redis", + }, + ], + } + } + unless empty($webhook_url) { exec { "bot-slack-notify": refreshonly => true, environment => [ "P_PROJECT=Trader", "P_WEBHOOK=${webhook_url}", - "P_VERSION=${bot_version}", + "P_VERSION=${trader_version}", "P_HOST=${web_host}", "P_HTTPS=${web_ssl}", ],