- 環境設定をコードとして表現できるプロビジョニングツール『MItamae』
- 2018/06/05
- Category:
以前記載したVagrantの記事より、Vagrantを使うことで開発環境構築の効率化をすることができるようになりましたが、面倒なアプリケーションのインストールや設定が必要であるという問題が残ったままであることを示しました。
今回はアプリケーションのインストール・設定を解決する方法として、プロビジョニングツールの紹介をします。
プロビジョニングツールとは
OSへのアプリケーションインストール・設定を自動化するツールとイメージしてもらえれば問題ありません。
大きな特徴としては、設定内容をコードとして表現できるところです。
Infrastructure as a codeという言葉をご存じでしょうか。
インフラ(開発基盤となるOSやミドルウェアの設定等)をコードで表現することで、何度でも、自動的に環境構築ができるというものです。プロビジョニングツールにはChefやAnsibleなど代表的なものがありますが、今回はそのなかでもシンプルに使えるMItamaeを紹介します。
MItamaeとは
実はMItamaeにはitamaeという前身があります。
itamaeはクックパッドで開発・利用されているプロビジョニングツールで、MItamaeはitamaeのフォーク版となります。
実際のところ、itamaeとMItamaeは使用方法はまったく同じです(同じになるよう開発されている)。では、どこが違うのでしょうか?
itamaeはrubyで開発されており、動作させるために複数のライブラリのインストールが必要なのに対して、MItamaeは1つの実行ファイルのみで依存ライブラリが必要ないところです。
面倒な事前準備なしにMItamaeのファイルと設定ファイルのみで良いので、見通しが良くなります。どのように使うのか?
MItamaeはmrubyで記述されており、設定もrubyぽく記述できます。
例として、パッケージ管理システムからライブラリをインストールする例を紹介します。execute “update yum” do
user “root”
command “yum -y update”
end%w[gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel git libtool autoconf automake cmake gcc-c++ make pkgconfig unzip texinfo libevent-devel].each do |pkg|
package “#{pkg}” do
user “root”
action :install
end
end……いきなり面倒そうなコードが出てきてとまどうかもしれませんね。
こちらをrecipe.rbというファイルに保存して、以下のコマンドを実行すると、CentOSのパッケージ管理システムであるyumでのライブラリアップデート、指定したライブラリの新規インストールが実行されます。MItamae local recipe.rb
上記の要領で、必要な設定すべてをコードとして記述すれば、Vagrantをインストールし、仮想マシンでMItamaeを実行すれば開発環境の構築が完了します。
まとめ
前回のVagrantの紹介と合わせて、開発環境構築の自動化という切り口でMItamaeを紹介しました。
面倒な作業は自動化して、開発に集中できるようにしていきましょう!最先端技術を扱うエンジニアが在籍するソリューション事業部はこちら
●Wantedly掲載情報(本当にやりたいことに辿り着きたい技術大好きエンジニア募集!)
●Wantedly掲載情報(エンジニア想いの環境でJavaやPHPにチャレンジしたいエンジニア募集!)
●Wantedly掲載情報(Angular/Reactを極めたいフロントエンジニア大募集!!)
BLOG CATEGORY
- すべて
- COMPILE RECORD
- CPR STUDIO
- お知らせ
- COMPILE RECORDからのお知らせ
- CPR STUDIOからのお知らせ
- SOLUTION
- SOLUTIONからのお知らせ
- DESIGN
- DESIGNからのお知らせ
ARCHIVE
- 2021年6月
- 2020年4月
- 2019年11月
- 2019年10月
- 2019年9月
- 2019年8月
- 2019年6月
- 2019年5月
- 2019年4月
- 2019年2月
- 2019年1月
- 2018年12月
- 2018年11月
- 2018年10月
- 2018年9月
- 2018年8月
- 2018年7月
- 2018年6月
- 2018年5月
- 2018年4月
- 2018年3月
- 2018年2月
- 2018年1月
- 2017年12月
- 2017年11月
- 2017年10月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年4月
- 2017年3月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年11月
- 2016年10月
- 2016年9月
- 2016年8月
- 2016年7月
- 2016年6月
- 2016年5月
- 2016年4月
- 2016年3月
- 2016年2月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月