カメニッキ

カメとインコと釣りの人です

いまさらだけどプロビジョニングツールについて調べてみた

プロビジョニングとは?

ネットワークやコンピュータの設備を,必要になったときすぐに利用できるよう準備しておくことを指す よって、プロビジョニングツールはそれらをいい感じにやるためのツール

プロビジョニングという一言の中に、大きく3つのレイヤが存在する

Bootstrapping - OSをインストール/設定

  • PXE boot

    ネットワークブートの規格 触ってみた→PXEブートでCentOSをリモートインストールした - インフラと亀と

  • Kickstart

    OSをインストールする際に通常であれば、タイムゾーンの設定・言語・キーボード配列・入れるパッケージなど、ぽちぽち手動でやるものを、Kickstartファイルの内容に沿って自動で行う。 PXEの設定(pxelinux.cfg)で使いたいKickstartファイルを指定し叩いたりする。 調べてみた→Kickstartを調べてみた - インフラと亀と

  • Cobbler

    PXEを使用する際に、本来であればTFTPサーバ・NFSサーバ・DHCPサーバ・HTTPサーバなどをすべて個別でセットアップし、相互に利用するため何かと大変な設定をしなくてはいけないが、それを簡単にやるためのツール 触ってみた→Cobbler使ってみた - インフラと亀と

  • Vagrant

    開発環境の構築・共有を簡単にする。 仮想マシンをboxという形にパッケージングし、+Vagrantfileという設定ファイルをもとに独自の設定を継ぎ足して、簡単に仮想マシンを作る→潰す→作るができる。

  • AWS

    Amazon提供のlaaSサービス。いろいろある

  • 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

    同じくRuby製。こちらの記述はRubyそのもの。

  • Ansible

    大きなお特徴としてクライアント側に何も入れなくていい(厳密にはPythonSSHログインは必須) 設定ファイルの記述が楽(らしい)

Orchestration - アプリケーションのデプロイ(?)

ツールは個別に触っていく・・・