PackerのログからAMI IDを取得するコードがInvokeのタスクに書かれていた。全然書いた記憶がないのだけど(すごい忙しかったという記憶だけはある)blameしてみると自分なのできっと妖精さんが書いたのだろう。。。
ami_id = commands.getoutput("ruby -e 'puts `tail -n1 /tmp/packer.log`.split(\": \").last'")
書きなおすとしたらこうかな。Pythonはたまにしか書かないのでもっと良い書き方がある気がする。
with open("/tmp/packer.log", "r") as file:
xs = file.read().split("\n")
ami_id = [x for x in xs if x][-1].split(": ")[-1]
別にtailコマンド使うのは良い気がしてきた。
ami_id = commands.getoutput("tail -n1 /tmp/packer.log").split(": ")[-1]
追記:これだ
ami_id = commands.getoutput("tail -n1 /tmp/packer.log | sed -e 's/^ami: //'")