pengwk / blog

用 Issue 的方式写博客
0 stars 0 forks source link

在多个 AWS EC2 instance 上运行命令 #30

Open pengwk opened 3 years ago

pengwk commented 3 years ago
#!/bin/bash

appservers=( $(aws ec2 describe-instances --filters "Name=tag:server_type,Values=appserver" --filters "Name=tag:asg_service,Values=sso" | jq -r '.Reservations[].Instances[].PrivateIpAddress') )

for appserver in "${appservers[@]}"
do
  echo "Run root install in appserver: $appserver"
  ssh pengweikang@$appserver "sudo bash /srv/script.sh"
done

使用 tag 搜索到机器,jq 提取 IP 地址,然后 ssh 执行。

将 IP 地址变成数组的过程挺有意思的

pengwk commented 3 years ago

Shell 的数组

数组使用括号,元素之间使用括号分割。

array=(item1 item2)

循环

for item in "${array[*]}"
do
    echo $item
done

一行命令

shell 中使用 ; 不同语句的分割。

for item in "${array[*]}";do echo $item; done