default_domain = .yandex.ru
#default_dir = /var/www/ppc.yandex.ru


hosts_check = 1
hosts =

include /etc/yandex-direct/clus.hosts

host_group:HTTP = FRONTEND, PPCSOAP, INTAPI
host_group:PERL = FRONTEND, PPCSOAP, PPCBACK, PPCSCRIPTS, PPCEXPORT, INTAPI
host_group:PPCDATA_ALL = PPCDATA%
host_group:MYSQL = PPCDATA_ALL, PPCDICT, PPCLOG, PPCPRICELOG, PPCMONITOR, RBAC_PXC
host_group:PPCDEVTEST = PPCDEV, PPCTEST



### Commands

cmd:PERL:webinterfaces = if [ "%1" = "stop" ]; then touch /var/www/ppc.yandex.ru/protected/run/web_stop.flag && echo "stopped..."; elif [ "%1" = "start" ]; then rm -f /var/www/ppc.yandex.ru/protected/run/web_stop.flag && echo "started..."; elif [ "%1" = "status" ]; then test -f /var/www/ppc.yandex.ru/protected/run/web_stop.flag && echo "stopped" || echo "started"; else echo "unknown command %1"; fi

cmd:PERL:distribute-settings~local = rsync -va /var/www/ppc.yandex.ru/perl/settings/Settings.pm %HOST:/var/www/ppc.yandex.ru/perl/settings/Settings.pm
cmd:PERL:distribute-db-config~local = rsync -va /var/www/ppc.yandex.ru/etc/db-config.json %HOST:/var/www/ppc.yandex.ru/etc/db-config.json
cmd:PERL:db-config-checksum = md5sum /etc/yandex-direct/db-config.json


cmd:HTTP:slb-stop = iptables -I INPUT -s 10.0.0.1 -j DROP
cmd:HTTP:slb-start = iptables -D INPUT -s 10.0.0.1 -j DROP

cmd:HTTP:ip-block-list = sudo iptables -n -L | grep DROP || echo -
cmd:HTTP:ip-block = iptables -I INPUT -s %1 -j DROP
cmd:HTTP:ip-unblock = iptables -D INPUT -s %1 -j DROP

cmd:apt-get = sudo apt-get %1
cmd:apt-get-update = DEBIAN_FRONTEND=noninteractive sudo apt-get update
cmd:apt-get-update-force = DEBIAN_FRONTEND=noninteractive sudo apt-get update || echo ignore errors
cmd:apt-get-install = DEBIAN_FRONTEND=noninteractive sudo apt-get -y install %1
cmd:PERL:apt-get-install-direct = test -f /var/www/ppc.yandex.ru/protected/monitor/limtest.locked || DEBIAN_FRONTEND=noninteractive dpkg -l yandex-direct\*|grep -E ^ii|grep -Ev 'tools-clus|direct-deploy|direct-commander|yandex-direct-zookeeper|yandex-direct-slb-flapgraphs|java|push-client-config|send-logs-to-logbroker|dscribe-upload-|queryrecdata|yandex-direct-dna|yandex-direct-jdk11|tvmtool'|awk "{print \$2 \"$2=%1\"}"|xargs sudo apt-get install --force-yes -y
cmd:PERL:apt-get-install-direct-confnew = test -f /var/www/ppc.yandex.ru/protected/monitor/limtest.locked || DEBIAN_FRONTEND=noninteractive dpkg -l yandex-direct\*|grep -E ^ii|grep -Ev 'tools-clus|direct-deploy|direct-commander|yandex-direct-zookeeper|yandex-direct-slb-flapgraphs|java|push-client-config|send-logs-to-logbroker|dscribe-upload-|queryrecdata|yandex-direct-dna|yandex-direct-jdk11|tvmtool'|awk "{print \$2 \"$2=%1\"}"|xargs sudo apt-get install --force-yes -y -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confmiss"
# analog of apt-get-install-direct, but with --download-only
cmd:PERL:apt-get-install-d-direct = test -f /var/www/ppc.yandex.ru/protected/monitor/limtest.locked || DEBIAN_FRONTEND=noninteractive dpkg -l yandex-direct\*|grep -E ^ii|grep -Ev 'tools-clus|direct-deploy|direct-commander|yandex-direct-zookeeper|yandex-direct-slb-flapgraphs|java|push-client-config|send-logs-to-logbroker|dscribe-upload-|queryrecdata|yandex-direct-dna|yandex-direct-jdk11|tvmtool'|awk "{print \$2 \"$2=%1\"}"|xargs sudo apt-get install --force-yes -y -d
cmd:FRONTEND:apt-get-install-commander = DEBIAN_FRONTEND=noninteractive dpkg -l yandex-direct-commander\*|grep -E ^ii|awk "{print \$2 \"$2=%1\"}"|xargs sudo apt-get install --force-yes -y
cmd:apt-get-install-force-yes = DEBIAN_FRONTEND=noninteractive sudo apt-get install --force-yes -y %1
cmd:SANDBOX:apt-get-install-sandbox = DEBIAN_FRONTEND=noninteractive dpkg -l yandex-direct\*|grep -E ^ii |grep -Ev 'java|push-client-config|send-logs-to-logbroker|dscribe-upload-|queryrecdata|yandex-direct-jdk11|tvmtool' |awk "{print \$2 \"$2=%1\"}"|xargs sudo apt-get install --force-yes -y
cmd:SANDBOX:apt-get-install-sandbox-confnew = DEBIAN_FRONTEND=noninteractive dpkg -l yandex-direct\*|grep -E ^ii |grep -Ev 'java|push-client-config|send-logs-to-logbroker|dscribe-upload-|queryrecdata|yandex-direct-jdk11|tvmtool' |awk "{print \$2 \"$2=%1\"}"|xargs sudo apt-get install --force-yes -y -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-confmiss"

cmd:FRONTEND:apache-network = netstat -na|grep -E '10.[0-9\.]+:80'|awk '{print $5, $6}'|perl -pe 's/:\d+//'|grep -v TIME_WAIT|sort|uniq -c|sort -n|tail -5

cmd:FRONTEND:url-domain = cd /var/www/ppc.yandex.ru/protected/; perl -MCommon -MData::Dumper -e 'print Dumper [ Common::get_url_domain("%1") ]'
cmd:FRONTEND:update-news = cd protected; ./getNews.pl --target rss --target json --target db

cmd:PERL:nginx-stop = echo "no nginx on %HOST"
cmd:PERL:nginx-start = echo "no nginx on %HOST"
cmd:PERL:nginx-reload = echo "no nginx on %HOST"
cmd:PERL:nginx-restart = echo "no nginx on %HOST"
cmd:PERL:nginx-upgrade = echo "no nginx on %HOST"
cmd:FRONTEND:nginx-stop = sudo /etc/init.d/direct-accel stop
cmd:FRONTEND:nginx-start = sudo /etc/init.d/direct-accel start
cmd:FRONTEND:nginx-reload = sudo /etc/init.d/direct-accel reload
cmd:FRONTEND:nginx-restart = sudo /etc/init.d/direct-accel restart
cmd:FRONTEND:nginx-upgrade = sudo /etc/init.d/direct-accel upgrade
cmd:PPCSOAP:nginx-stop = sudo /etc/init.d/soap-direct-accel stop
cmd:PPCSOAP:nginx-start = sudo /etc/init.d/soap-direct-accel start
cmd:PPCSOAP:nginx-reload = sudo /etc/init.d/soap-direct-accel reload;
cmd:PPCSOAP:nginx-restart = sudo /etc/init.d/soap-direct-accel restart;
cmd:PPCSOAP:nginx-upgrade = sudo /etc/init.d/soap-direct-accel upgrade;
cmd:SANDBOX:nginx-stop = sudo /etc/init.d/soap-direct-accel stop
cmd:SANDBOX:nginx-start = sudo /etc/init.d/soap-direct-accel start
cmd:SANDBOX:nginx-reload = sudo /etc/init.d/soap-direct-accel reload
cmd:SANDBOX:nginx-restart = sudo /etc/init.d/soap-direct-accel restart
cmd:SANDBOX:nginx-upgrade = sudo /etc/init.d/soap-direct-accel upgrade
cmd:INTAPI:nginx-stop = sudo /etc/init.d/intapi-direct-accel stop
cmd:INTAPI:nginx-start = sudo /etc/init.d/intapi-direct-accel start
cmd:INTAPI:nginx-reload = sudo /etc/init.d/intapi-direct-accel reload
cmd:INTAPI:nginx-restart = sudo /etc/init.d/intapi-direct-accel restart
cmd:INTAPI:nginx-upgrade = sudo /etc/init.d/intapi-direct-accel upgrade

cmd:PERL:apache-reload = echo "no apache on %HOST"
cmd:FRONTEND:apache-reload = sudo /etc/init.d/ppc.yandex.ru reload
cmd:FRONTEND:apache-stop = sudo /etc/init.d/ppc.yandex.ru stop
cmd:FRONTEND:apache-start = sudo /etc/init.d/ppc.yandex.ru start
cmd:FRONTEND:apache-slb-restart = sudo iptruler all down; sleep 20; sudo /etc/init.d/ppc.yandex.ru stop; sleep 60; sudo /etc/init.d/ppc.yandex.ru start; sleep 20; sudo iptruler all up

cmd:SANDBOX:apache-reload = sudo /etc/init.d/soap.direct.yandex.ru reload
cmd:SANDBOX:apache-stop = sudo /etc/init.d/soap.direct.yandex.ru stop
cmd:SANDBOX:apache-start = sudo /etc/init.d/soap.direct.yandex.ru start
cmd:SANDBOX:apache-slb-restart = sudo iptruler all down; sleep 20; sudo /etc/init.d/soap.direct.yandex.ru stop; sleep 60; sudo /etc/init.d/soap.direct.yandex.ru start; sleep 20; sudo iptruler all up

cmd:SANDBOX:fake-reload = sudo /etc/init.d/fake-services.direct.yandex.ru reload
cmd:SANDBOX:fake-restart = sudo /etc/init.d/fake-services.direct.yandex.ru restart

cmd:INTAPI:apache-reload = sudo /etc/init.d/intapi.direct.yandex.ru reload
cmd:INTAPI:apache-slb-restart = sudo iptruler all down; sleep 20; sudo /etc/init.d/intapi.direct.yandex.ru stop; sleep 60; sudo /etc/init.d/intapi.direct.yandex.ru start; sleep 20; sudo iptruler all up

cmd:PPCSOAP:apache-reload = sudo /etc/init.d/soap.direct.yandex.ru reload
cmd:PPCSOAP:apache-slb-restart = sudo iptruler all down; sleep 20; sudo /etc/init.d/soap.direct.yandex.ru stop; sleep 60; sudo /etc/init.d/soap.direct.yandex.ru start; sleep 20; sudo iptruler all up

cmd:FRONTEND:apache-status =  wget -qO - http://127.0.0.1:1080/server-status|grep -A 10 'Server uptime'|perl -pe 's/<.*?>//g'

cmd:PERL:js-templater-start = echo "no js-templater on %HOST"
cmd:PERL:js-templater-stop = echo "no js-templater on %HOST"
cmd:PERL:js-templater-restart = echo "no js-templater on %HOST"
# sv -w определяет таймаут, с которым ожидается выполнение команды
cmd:FRONTEND:js-templater-start = sudo sv -w 10 start js-templater
cmd:FRONTEND:js-templater-stop = sudo sv -w 10 force-stop js-templater
cmd:FRONTEND:js-templater-restart = sudo /usr/local/bin/js-templater-restart

cmd:MYSQL:lm = lm %1 %2
cmd:MYSQL:apply-grants = /usr/bin/mysql-multiple-run
cmd:PPCDATA1:lm-ppcdata1 = lm ppcdata1 %2

#################################
# lfw shortcuts

cmd:PPCDATA1:lfw-ppcdata1-close = lfw ppcdata1 -write
cmd:PPCDATA1:lfw-ppcdata1-open = lfw ppcdata1 +write
cmd:PPCDATA1:lfw-ppcdata1-status = lfw ppcdata1

cmd:PPCDICT:lfw-ppcdict-close = lfw ppcdict -write
cmd:PPCDICT:lfw-ppcdict-open = lfw ppcdict +write
cmd:PPCDICT:lfw-ppcdict-status = lfw ppcdict

cmd:PPCLOG:lfw-ppclog-close = lfw ppclog -write
cmd:PPCLOG:lfw-ppclog-open = lfw ppclog +write
cmd:PPCLOG:lfw-ppclog-status = lfw ppclog

cmd:PPCPRICELOG:lfw-ppcpricelog-close = lfw ppcpricelog -write
cmd:PPCPRICELOG:lfw-ppcpricelog-open = lfw ppcpricelog +write
cmd:PPCPRICELOG:lfw-ppcpricelog-status = lfw ppcpricelog

cmd:PPCMONITOR:lfw-ppcmonitor-close = lfw ppcmonitor -write
cmd:PPCMONITOR:lfw-ppcmonitor-open = lfw ppcmonitor +write
cmd:PPCMONITOR:lfw-ppcmonitor-status = lfw ppcmonitor


