Есть AWS ASG с ECS. Там не понятно сколько инстансев.
Задача - выполнить очистку opcache на каждом php5-fpm через sock.
Получить все адреса активных инстансев в ASG я уже описывал как. Кратко:
ASGName="awseb-xxxxxx-stack-AWSEBAutoScalingGroup-YYYYYYYYYY"
aws ec2 describe-instances --filters "Name=tag:aws:autoscaling:groupName,Values=${ASGName}" "Name=instance-state-name,Values=running" --region us-west-2 | jq "
.Reservations[].Instances[].PrivateIpAddress"|cut -d "\"" -f 2 >/tmp/origins.lst
далее такой скрипт:
#!/bin/sh
for host in $(cat /tmp/origins.lst);
do ssh -i my_key.pem ec2-user@$host << EOF
sudo -i
docker exec \$(docker ps -aqf "name=ecs-aws") bash -c 'cd /tmp; curl -sO http://gordalina.github.io/cachetool/downloads/cachetool.phar; /usr/bin/php cachetool.phar o
pcache:reset --fcgi=/var/run/php5-fpm.sock'
EOF
done
Задача - выполнить очистку opcache на каждом php5-fpm через sock.
Получить все адреса активных инстансев в ASG я уже описывал как. Кратко:
ASGName="awseb-xxxxxx-stack-AWSEBAutoScalingGroup-YYYYYYYYYY"
aws ec2 describe-instances --filters "Name=tag:aws:autoscaling:groupName,Values=${ASGName}" "Name=instance-state-name,Values=running" --region us-west-2 | jq "
.Reservations[].Instances[].PrivateIpAddress"|cut -d "\"" -f 2 >/tmp/origins.lst
далее такой скрипт:
#!/bin/sh
for host in $(cat /tmp/origins.lst);
do ssh -i my_key.pem ec2-user@$host << EOF
sudo -i
docker exec \$(docker ps -aqf "name=ecs-aws") bash -c 'cd /tmp; curl -sO http://gordalina.github.io/cachetool/downloads/cachetool.phar; /usr/bin/php cachetool.phar o
pcache:reset --fcgi=/var/run/php5-fpm.sock'
EOF
done
PS:
docker ps -aqf "name=ecs-aws" - у меня был Beanstalk с преконфигурённым MultiDocker container platform. Это означает, что у меня запущено как минимум два контейнера. первый - это ecs-agent а второй уже мой рабочий php5-fpm. По фильтру ecs-aws выбирается как раз НЕ agent, то есть мой контейнер.
PSS:
очистить memcache полностью:
telnet memcache 11211
flush_all
quit
Комментариев нет:
Отправить комментарий