Download - wakateweb vagrant aws
vagrant-awsにプルリしたらマージされた話
自己紹介
• 名前:岩崎 裕馬
• Twitter:@yuma_iwasaki
• 所属:株式会社Speee • 好きなこと:食べ歩き • 愛称:ランチコンダクター
アジェンダ
• vagrant-awsとは? • プルリした内容について • 見つけた時の経緯 • その他 • Tips
vagrant-awsとは?
vagrant-awsとは?
• VagrantでAWSの操作を行うことができるようになるプラグイン
• 「vagrant up —provider=aws」だけで
EC2インスタンスの起動が行える。
通常のVagrant
vagrant-aws
プルリした内容について
これだけです
内容としてはREADMEのみですが、
これを見つけるにも色々経緯があったので その点をお話したいと思います。
見つけた時の経緯
見つけた時の経緯• AMI起動時にEBSのサイズの指定を行えないか探していた。
• 指定できない場合はawscliを使用するか、
EBSのサイズ毎のAMIを作るしかないと考えていた。
どうしてもvagrant-aws内で
やりたかったので思いついたことは
_人人人人人人人人人人人人人_
> 機能がなければ作ればいい!! <
‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y‾
とりあえず、ソースを読みました
見たことない設定があるんですけど・・・ (しかも探しているやつっぽい)
とりあえず、ググりました
こんなものやhttps://github.com/mitchellh/vagrant-aws/issues/119
こんなものまで見つかりましたhttp://docs.aws.amazon.com/AWSCloudFormation/latest/
UserGuide/aws-properties-ec2-blockdev-mapping.html
そして、無事にEBSの
ボリュームサイズの変更ができるようになりました
実装サンプル
その他
vagrant-awsを本番運用で使用するのは?
オススメできません
オススメできない理由
• vagrant-awsだけでは要件を満たせない場合があったりして、結局、awscli等を使うことになるため。
例えば、EIPを割り当てたい場合
(awscli)# 付与するEIPを定義EIP=“xxx.xxx.xxx.xxx”# インスタンスのIDを取得INSTANCE_ID=`cat .vagrant/machines/default/aws/id | sed “s/$//g"`# EIPの付与 aws associate-address --instance-id ${INSTANCE_ID} —public-ip ${EIP}
こういった場合はawscli等で最初から取り組んでおいた方が
いいと思います。
vagrant-awsのオススメの使用方法
ヌーラボのインフラ運用最前線 ~イミュータブルを目指して
http://nulab-inc.com/ja/blog/nulab/nulab-immutable-infrastructure_1/
オススメの使用方法
vagrant-aws :インスタンス起動
: プロビジョニング
vagrant-serverspec :テスト
vagrant-ami :AMI作成
それぞれを組み合わせることにより、
テスト済みのAMIの作成が可能
先程のvagrant-awsでの
EIPの割り当てについて
_人人人人人人人人人人人人人_
> 機能がなければ作ればいい!! <
‾Y^Y^Y^Y^Y^Y^Y^Y^Y^Y‾
作りました
Vagrantfile
# 変更前(自ら指定したIPアドレスに設定できなかった)aws.elastic_ip = true!# 変更後(IPアドレスの指定ができる!)aws.elastic_ip = ‘xxx.xxx.xxx.xxx’
プルリ投げましたhttps://github.com/mitchellh/vagrant-aws/pull/248
あとマージされるのを待つのみ!
Tips
インスタンスが起動している場合、「.vagrant/
machines/default/aws/id」には
awsのインスタンスIDが入っているので
「cat .vagrant/machines/default/aws/id」にて
簡単にインスタンスIDの取得が可能
どういうことか?
Vagrantfile
# 変更前(自ら指定したIPアドレスに設定できなかった)echo ‘[起動済AWSのインスタンスID]’ >.vagrant/machines/default/aws/id!# インスタンスへのSSH接続が可能vagrant ssh# インスタンスの終了が可能vagrant destroy
※動作保証外