wakateweb vagrant aws

Post on 22-Jul-2015

5.203 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

※動作保証外

top related