2014年12月29日月曜日

AWS SDK for Javaとpercolを使ってEC2のインスタンスにログインする

このエントリーをはてなブックマークに追加 はてなブックマーク - AWS SDK for Javaとpercolを使ってEC2のインスタンスにログインする

既にRubyだとやってる人がいて便利そうだったので、Groovy(Java)でも書いてみた。

gist

@Grapes([
@Grab(group='commons-codec', module='commons-codec', version='1.10'),
@Grab(group='com.amazonaws', module='aws-java-sdk', version='1.9.13')
])
import com.amazonaws.services.ec2.*
import com.amazonaws.auth.*
import com.amazonaws.auth.profile.*
import com.amazonaws.regions.*
credentials = new ProfileCredentialsProvider().getCredentials()
ec2 = new AmazonEC2Client(credentials)
ec2.setRegion(Region.getRegion(Regions.AP_NORTHEAST_1))
result = ec2.describeInstances()
result.reservations.instances.each {
println "${it.tags[0].value[0]}\t${it.state.name[0]}\t${it.publicDnsName[0]}"
}
view raw ec2list.groovy hosted with ❤ by GitHub

使うとき

  • ~/.ssh/configにログイン対象のEC2のユーザー名、KeyPair、ホスト名を予め指定しておくこと
  • ~/.aws/credentialsの設定をしておくこと。AWS CLIでconfigure設定をすればOKだと思われる。
  • groovy ec2list.groovy| percol | cut -f 3 | xargs -o -n 1 ssh
  • 上記コマンドで対象のEC2にSSHログインできる
  • いちいちコマンドを打つのが面倒なので適当にalias設定をしておくととても便利

参考資料

0 件のコメント:

コメントを投稿