VagrantからAnsibleへの代替理由


VagrantからAnsibleへの代替理由
  • Vagrantに存在する問題
  • Ansibleが解決した問題
  • 宣言性
  • 抽象性
  • 収束性
  • べき乗等性
  • 省力化
  • Vagrantの問題点
  • 構築手順不明確構築手順はVagrantFileによって書かれ、最終的にshellのスクリプトによって実現される.①異なる人が異なるシナリオロジックを書き,理解性が弱まる②少しの構成変更が生じた場合は,実装者に任せる必要がある.
  • # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    Vagrant.configure(2) do |config|
      config.vm.box = "centos/7"
      config.vm.hostname = "demo"
      config.vm.network :private_network, ip: "192.168.33.10"
      config.vm.synced_folder ".", "/home/vagrant/sync", disabled: true
      config.vm.provision "shell", inline: $script
    end
    
    $script = <<SCRIPT
      yum -y install epel-release
      yum -y install nginx
      echo "hello, vagrant" > /usr/share/nginx/html/index.html
      systemctl start nginx
    SCRIPT
    
  • 設定項目はVagrantFileで書かれた構築手順を追加できず、最初からの構築過程を実現しているが、既に構築済みの環境でのみ設定項目の追加を実現したい場合は、当然-vagrant provision-のコマンドで実現できるが、基本的にはスクリプトの分岐処理で実装され、最終的には統一された仕様にはならない.
  • 構築手順の環境フロー用性が悪いVagrantFileで書かれた構築手順は,基本的にローカル環境の構築を実現しており,異なる環境の依存設定値が異なり,環境配置によって異なるVagrantFileが必要である.

  • Ansibleが解決した問題
    宣言性
                    ,    playbook                 。         。
    
      
    service:
        name:nginx
        state:started
    

    スクリプトに依存せず、分かりやすい.
    抽象性
                            ,ansible    。
    
      
         RedHat   Ubuntu ,       yum  apt-get,        ,     ansbie    。
    

    最大化された共通化を実現し、移植性を向上させる.
    しゅうそくせい
                  ,          。
    
      
           ,                ,         ,ansible ,       。
    

    記述だけで開発者はオブジェクトの状態を把握しやすい.
    べき乗等性
         playbook    ,       。
    
      
           ,     ,     ,              。
    

    省力化
  • 携帯性は、光ディスクミラーファイルなどを携帯するのではなく、テキストファイルだけで各環境の共有が可能である.
  • reviewはcheckテキストファイルの採点により、reviewしやすい.
  • バージョン管理バージョン管理バージョン管理ソフトウェアによってテキストファイルを管理します.
  • ソースコードは、様々な公開ソースコードを開示する.