There's an echo in my head

日々のメモ。

ec2ssh 3.xでも2.xと同じフォーマットでHostを出力する

mirakui/ec2sshの2.x系ではHostの末尾がregionだったのに対して、3.x系ではAZに変わっていた。

# 2.x
Host tag-name.ap-northeast-1
  HostName ec2-54-NNN-NNN-NNN.ap-northeast-1.compute.amazonaws.com

# 3.x
Host tag-name.ap-northeast-1a
  HostName ec2-54-NNN-NNN-NNN.ap-northeast-1.compute.amazonaws.com

knife-soloのJSONファイルがこのHostと一致させる必要があったのでなかなか移行できずずっと見送っていたのだけれど、よく考えたら出力するときにAZ末尾のaやcを削ってしまえばいいことに気がついた。

というわけで3.x系での~/.ec2sshhost_line部分を少し書き換えたところ、2.xと同じように出力されるようになった。

host_line <<EOS
Host <%= tags['Name'] %>.<%= availability_zone %>
  HostName <%= dns_name || private_ip_address %>
EOS

host_line <<EOS
Host <%= tags['Name'] %>.<%= availability_zone.sub(/[abc]$/, "") %>
  HostName <%= dns_name || private_ip_address %>
EOS

めでたしめでたし。

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。