いまさらだけどプロビジョニングツールについて調べてみた
プロビジョニングとは?
ネットワークやコンピュータの設備を,必要になったときすぐに利用できるよう準備しておくことを指す よって、プロビジョニングツールはそれらをいい感じにやるためのツール。
プロビジョニングという一言の中に、大きく3つのレイヤが存在する
Bootstrapping - OSをインストール/設定
PXE boot
ネットワークブートの規格 触ってみた→PXEブートでCentOSをリモートインストールした - インフラと亀と
-
OSをインストールする際に通常であれば、タイムゾーンの設定・言語・キーボード配列・入れるパッケージなど、ぽちぽち手動でやるものを、Kickstartファイルの内容に沿って自動で行う。 PXEの設定(pxelinux.cfg)で使いたいKickstartファイルを指定し叩いたりする。 調べてみた→Kickstartを調べてみた - インフラと亀と
Cobbler
PXEを使用する際に、本来であればTFTPサーバ・NFSサーバ・DHCPサーバ・HTTPサーバなどをすべて個別でセットアップし、相互に利用するため何かと大変な設定をしなくてはいけないが、それを簡単にやるためのツール 触ってみた→Cobbler使ってみた - インフラと亀と
-
開発環境の構築・共有を簡単にする。 仮想マシンをboxという形にパッケージングし、+Vagrantfileという設定ファイルをもとに独自の設定を継ぎ足して、簡単に仮想マシンを作る→潰す→作るができる。
-
米Amazon提供のlaaSサービス。いろいろある
-
Amazon Simple Storage Service 名前のごとくストレージ
-
OpenStack
AWSを参考に作られたOSSのプライベートクラウドインフラ構築の仕組み 中身は全然しらべれてない
Packer
Vagrantのboxを便利につくるためのツール VirtualBoxが便利になる→Vagrant Vagrantが便利になる→Packer
Docker
Linux上で独立した別のLinuxシステムを起動する、コンテナ型の仮想化ソフトウェア ちなみにKVMやESXiはハイパーバイザー型。
★ハイパーバイザー型とコンテナ型の違い
ハイパーバイザー型
物理的なハードウェア上で直接ハイパーバイザが動作し、その上に各VMが動作する
コンテナ型
OSの上でコンテナ管理ソフトウェアが動作し、その上で各コンテナが動作する。
どういう時にコンテナ型を使うか?コンテナ型の強みは重複したOSの要素(用意したい仮想システム中で違いがない部分)を排除することで、非常に小さなコンテナにまとめることができるので、一台のサーバに高密度に載せることができる。 ので、リソースの使用効率が良い。 詳細は別記事で学習する
Configuration - ミドルウェアをインストール/設定
Puppet
Ruby製。外部DSLといって実装はRubyだが、設定の記述はPuppet独自の記述となる。 クラサバ構成で、各マシンの構成を集中管理できる。ユーザやグループ作成、パッケージのインストール設定など自動化する クラサバ構成なので、サーバの用意とクライアントへのインストール必須
Chef
Ansible
大きなお特徴としてクライアント側に何も入れなくていい(厳密にはPythonとSSHログインは必須) 設定ファイルの記述が楽(らしい)
Orchestration - アプリケーションのデプロイ(?)
- Capistrano など
各ツールは個別に触っていく・・・