Сценарии запуска не являются здесь хорошим решением, поскольку они будут выполняться каждый раз при загрузке экземпляра. Даже если установка агента мониторинга Stackdriver умна и не переустанавливает агент, если он уже установлен (может быть, и делает, я не знаю), использование сценария запуска здесь не кажется уместным. Если вы хотите устанавливать его при каждой загрузке (возможно, чтобы он обновлялся), это может быть решением, но в вашем случае (устанавливайте один раз на все ваши существующие виртуальные машины), вероятно, есть лучшие решения.
Если у вас есть root-доступ к вашим виртуальным машинам и вы используете Google Cloud SDK, вы можете просто повторять свои виртуальные машины и запускать удаленные команды через SSH для каждой из них, как в следующем примере, предполагающем, что все ваши виртуальные машины находятся в одном проекте $MY_PROJECT
(будьте осторожны, чтобы проверить это на небольшом подмножестве виртуальных машин, прежде чем запускать его на всех ваших виртуальных машинах в производственной среде, я не проверял это). Синтаксис действителен для Google Cloud SDK v243.0.0.
#!/usr/bin/env sh
REMOTE_COMMAND="curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh && \
sudo bash install-monitoring-agent.sh && \
sudo service stackdriver-agent restart"
for instance_name in $(gcloud --project "$MY_PROJECT" compute instances list --format="value(name)")
do
zone=$(gcloud --project "$MY_PROJECT" compute instances list \
--filter="name=($instance_name)" \
--format="value(zone)")
gcloud --project "$MY_PROJECT" compute ssh "$instance_name" \
--zone="$zone" \
--command "$REMOTE_COMMAND"
done
Это аналогично подключению к каждой виртуальной машине, запуску команды на этой виртуальной машине и отключению. Преимущество здесь в том, что это можно запустить с одного хоста, если вы можете подключиться к своим виртуальным машинам через SSH.
Если вы знакомы с Ansible или некоторыми другими инструментами подготовки, вероятно, существует лучшее решение, чем предыдущий сценарий оболочки. . Но если это одноразовое решение, и вам нужно быстрое и легкое решение, тогда используйте сценарий оболочки (однако будьте осторожны, чтобы протестировать его перед этим).
Для ваших будущих виртуальных машин Compute Engine, и если все ваши виртуальные машины имеют одинаковую конфигурацию, я рекомендую вам взглянуть на шаблоны экземпляров или изображения. Вы можете создать определенный шаблон экземпляра или образ с предустановленным агентом мониторинга Stackdriver и создать все свои будущие виртуальные машины на основе этого шаблона/образа экземпляра.
person
norbjd
schedule
24.07.2019