VagrantからAnsibleへの代替理由
4161 ワード
VagrantからAnsibleへの代替理由 Vagrantに存在する問題 Ansibleが解決した問題 宣言性 抽象性 収束性 べき乗等性 省力化 Vagrantの問題点構築手順不明確構築手順はVagrantFileによって書かれ、最終的にshellのスクリプトによって実現される.①異なる人が異なるシナリオロジックを書き,理解性が弱まる②少しの構成変更が生じた場合は,実装者に任せる必要がある. 設定項目はVagrantFileで書かれた構築手順を追加できず、最初からの構築過程を実現しているが、既に構築済みの環境でのみ設定項目の追加を実現したい場合は、当然-vagrant provision-のコマンドで実現できるが、基本的にはスクリプトの分岐処理で実装され、最終的には統一された仕様にはならない. 構築手順の環境フロー用性が悪いVagrantFileで書かれた構築手順は,基本的にローカル環境の構築を実現しており,異なる環境の依存設定値が異なり,環境配置によって異なるVagrantFileが必要である.
Ansibleが解決した問題
宣言性
スクリプトに依存せず、分かりやすい.
抽象性
最大化された共通化を実現し、移植性を向上させる.
しゅうそくせい
記述だけで開発者はオブジェクトの状態を把握しやすい.
べき乗等性
省力化携帯性は、光ディスクミラーファイルなどを携帯するのではなく、テキストファイルだけで各環境の共有が可能である. reviewはcheckテキストファイルの採点により、reviewしやすい. バージョン管理バージョン管理バージョン管理ソフトウェアによってテキストファイルを管理します. ソースコードは、様々な公開ソースコードを開示する.
# -*- 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
Ansibleが解決した問題
宣言性
, playbook 。 。
service:
name:nginx
state:started
スクリプトに依存せず、分かりやすい.
抽象性
,ansible 。
RedHat Ubuntu , yum apt-get, , ansbie 。
最大化された共通化を実現し、移植性を向上させる.
しゅうそくせい
, 。
, , ,ansible , 。
記述だけで開発者はオブジェクトの状態を把握しやすい.
べき乗等性
playbook , 。
, , , 。
省力化