В AWS есть SSM. Очень хороший инструмент для решения многих задачек.
Мне пока потребовалась одна - выполнять shell скрипт, или команду, например, из Jenkins на одной или нескольких EC2.
Машина, которая будет инициировать отправку команды (например, это будет Jenkins) должна иметь IAM Role с прицепленными полиси: AmazonEC2RoleforSSM и AmazonSSMFullAccess.
Плюс надо сделать Trusted между SSM и EC2.
Далее в Jenkins делаем Item Free. Добавляем Build Step: Exec shell:
aws ssm send-command --instance-ids "i-0b12c25f7661c960c" "i-0604a3b004aa96dfc" \
--document-name "AWS-RunShellScript" --comment "IP config" \
--parameters commands="/etc/init.d/squid reload" \
--output text \
--region eu-west-1
Если нужно выполнить на одной EC2 - оставляем только один ID. Если нужно вычислять этот ID -
это совсем другая статья и история но делается не сложно. Важно понимать также пару вещей.
Не более 50-ти IDs в одну команду. Лучше передать список Ids как List объект в питоне.
Мне пока потребовалась одна - выполнять shell скрипт, или команду, например, из Jenkins на одной или нескольких EC2.
Машина, которая будет инициировать отправку команды (например, это будет Jenkins) должна иметь IAM Role с прицепленными полиси: AmazonEC2RoleforSSM и AmazonSSMFullAccess.
Плюс надо сделать Trusted между SSM и EC2.
Далее в Jenkins делаем Item Free. Добавляем Build Step: Exec shell:
aws ssm send-command --instance-ids "i-0b12c25f7661c960c" "i-0604a3b004aa96dfc" \
--document-name "AWS-RunShellScript" --comment "IP config" \
--parameters commands="/etc/init.d/squid reload" \
--output text \
--region eu-west-1
Если нужно выполнить на одной EC2 - оставляем только один ID. Если нужно вычислять этот ID -
это совсем другая статья и история но делается не сложно. Важно понимать также пару вещей.
Не более 50-ти IDs в одну команду. Лучше передать список Ids как List объект в питоне.
Комментариев нет:
Отправить комментарий