"Up" with vagrant and docker
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

"Up" with vagrant and docker

  • 1,241 views
Uploaded on

Introduction for Vagrant and Docker provider. ...

Introduction for Vagrant and Docker provider.
This presentation is prepared for Docker Meetup Tokyo 2014 #1 in 12, Feb, 2014 at National Institute of Informatics.

Copyright 2014, NTT Data Corporation.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,241
On Slideshare
1,233
From Embeds
8
Number of Embeds
1

Actions

Shares
Downloads
17
Comments
1
Likes
9

Embeds 8

http://www.slideee.com 8

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Docker Meetup Tokyo 2014 #1 "Up" with Vagrant and Docker Hiroshi Miura(@miurahr) NTTデータ 基盤システム事業本部 Copyright © 2013 NTT DATA Corporation
  • 2. Disclaimer ● ● ● Any product name, service name, software name and other marks a re trade mark or registered mark of corresponding companies. This presentation is in a purpose of providing current information on emerging technologies and there is no grantee of correctness and/o r persistence of features in any future. A presenter and NTT Data Corporation provide information in as-is b asis and have no responsiveness for results that you got according to information in this presentation material. Copyright © 2013 NTT DATA Corporation 2
  • 3. Copyright © 2013 NTT DATA Corporation 3
  • 4. Introduction to Vagrant Vagrantのご紹介 vagrantup.com Copyright © 2013 NTT DATA Corporation 4
  • 5. What is Vagrant ● 開発環境を仮想マシンやコンテナ、クラウドに作成 ● 商用環境とできるだけ同一の環境をつくることを優先 ● アプリ・リポジトリに設定がおいてあることがおおい ● Mitchell Hashimoto氏が作者 ● Rubyで書かれている ● 基本はOracleVM VirtualBoxとAWS EC2 ● 有償オプションで、VMWare Fusion Copyright © 2013 NTT DATA Corporation 5
  • 6. Vagrant Users ● 今までの典型的なVagrantユーザ像 – Webデベロッパー – MacBook AirかMacBook Pro利用者が多い – VirtualBoxでUbuntu利用が多い – 提供先はAWSやVPS上へホスト – Ruby/RoR使いが多い – Github利用者が多い Copyright © 2013 NTT DATA Corporation 6
  • 7. Vagrant Users ● 新しいタイプのユーザ – – – – – インフラエンジニア RHEL, CentOSまたはWindows利用者 vCenter, OpenStack等をデプロイ Puppet, Chef, またはAnsible使い OpenFlowに興味 Copyright © 2013 NTT DATA Corporation 7
  • 8. Vagrant Plugins ● Vagrant 1.1+からプラグイン可能となる(2013.2〜) – – Provisioner: ゲスト設定方法の提供 – host/guest: OSサポート – ● Provider: 仮想マシン等ドライブの提供 Synced_folder: フォルダ同期方法の提供 Vagrant 1.4からDocker provisionerが標準提供  Copyright © 2013 NTT DATA Corporation 8
  • 9. Vagrant provisioner ● Shell, Puppet, Chefでの設定が標準で可能 ● Puppet: スタンドアロン、Client/Server可 – スタンドアロンでは以下にマウント ● ● /tmp/puppet-manifest /tmp/puppet-modules ● Chef: Chef-solo, Client/Server可 ● Shell: インライン、外部シェル可能 ● Salt, Docker... Copyright © 2013 NTT DATA Corporation 9
  • 10. Vagrant installation ● VirtualBoxインストール ● Vagrantインストーラダウンロード – Mac, Windows, Linux(CentOS/RHEL, Ubuntu/Debian) ● Vagrantインストール ● Vagrant box入手(自動取得も可能) ● 作業ディレクトリ作成し、コマンド実行 Copyright © 2013 NTT DATA Corporation 10
  • 11. What is Vagrant box ● ● 事前に作られたVMイメージや相当物 さまざまなプラットホームが用意され、公開もされてい る ● 自身でつくることも可能 ● プロバイダー毎に形式が相違 ● 変換も可能(development in progress) Copyright © 2013 NTT DATA Corporation 11
  • 12. Find your Boxes ● Catalog siteでURL入手 – ● vagrantbox.es コマンドの実行 $ vagrant box add <boxname> <url> ● 設定に記載する方法もある config.vm.box_url= "<URL>" Copyright © 2013 NTT DATA Corporation 12
  • 13. Environment creation ● プロジェクト内に設定"Vagrantfile"を作成 $ vagrant init Copyright © 2013 NTT DATA Corporation 13
  • 14. Vagrantfile例 # -*- mode: ruby -*# vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "precise64" config.vm.box_url = "http://domain.com/path/to/above.box" config.vm.network :forwarded_port, guest: 80, host: 8080 config.vm.network :private_network, ip: "192.168.33.10" config.vm.provider :kvm do |kvm| kvm.gui = "true" kvm.image_type = "qcow2" kvm.memory_size = "512m" kvm.core_number = 2 kvm.cpu_model = 'i686' end config.vm.provision :shell, inline: <<-SH set -x export DEBIAN_FRONTEND=noninteractive sudo apt-get update sudo apt-get install -y apache SH end Copyright © 2013 NTT DATA Corporation 14
  • 15. Vagrant eco-system ● Vagrant Plugin 開発コミュニティ 種類 プロジェクト 機能 provider Vagrant-KVM provider Vagrant-LXC provider Vagrant-libvirt libvirtを用いて、遠隔ホストで Xen,KVM等を利用可能にする provider Vagrant-AWS AWS上で利用可能にする Command Vagrant-mutate Boxの形式を変換する Command Sahara スナップショットを操作する Copyright © 2013 NTT DATA Corporation LinuxとKVMをホスト環境とし て利用可能にする LinuxホストのLXCで利用する 15
  • 16. Vagrant eco-system ● バラエティに富んだ開発コミュニティ 種類 プロジェクト 機能 provisioner vagrant-cachier ゲストOSを判定して、 OS package/gem file等のキャッシュを永続化する provisioner vagrant-dns vagrant-hostmanager 管理対象に合わせてDNS/host設定を更新 する provisioner vagrant-ansible Ansibleでコンフィグを行う provider vagrant-rackspace RackSpaceでのマシン管理を可能にする provider vagrant-parallels parallels 上でマシン管理 provider vagrant-digitalocean DigitalOcean上のマシン管理を可能にする box repository vagrantbox.es public boxのリポジトリ Copyright © 2013 NTT DATA Corporation 16
  • 17. Copyright © 2013 NTT DATA Corporation 17
  • 18. Vagrant and Docker ● 基本的なアイディア – Vagrant上でDocker環境をデプロイ ゲストに自動的にDockerをインストール – ゲストに自動的にDockerイメージを導入 Docker Provisioner – ● – Vagrant 1.1-1.3: 外部プラグイン – Vagrant 1.4+ (Dec., 2013) 標準装備 Copyright © 2013 NTT DATA Corporation 18
  • 19. Docker provisioner ● ● ● ● ゲストOSを自動判別して、適切なDockerのパッケージをゲ ストにインストール Docker稼働環境を、好みの仮想環境上にコマンド一発で作 成できる Puppet等の知識は不要 Docker環境が構築された後は、vagrant sshでログインして 、dockerコマンドで操作できる Container image Vagrant Container image 手軽にDocker環境を試すのに最適! Docker Box Images (Fedora, Ubuntu, etc) Host OS/Hypervisor Copyright © 2013 NTT DATA Corporation 19
  • 20. Vagrantfile example for Docker Ubuntu RaringをゲストOSとしてVM上にインストールして、docker環境を整え、 busybox docker imageを導入する Vagrant.configure("2") do |config| config.vm.box = "raring" config.vm.box_url = “https://dl.dropboxusercontent.com/u/547671/thinkstackraring64.box” if Vagrant.has_plugin?("vagrant-cachier") config.cache.auto_detect = true end config.vm.provision :shell, inline: <<-SH set -x export DEBIAN_FRONTEND=noninteractive sudo apt-get update SH config.vm.provision "docker" do |d| d.pull_images "busybox" end end Copyright © 2013 NTT DATA Corporation 20
  • 21. Packer ● ● VagrantのHashicorpが開発するプロダクト 一つのレシピから、複数のゲストイメージを生 成可能 – VirtualBox – VMWare – Libvirt/KVM – LXC – Docker ● Dockerのテンプレートや、Vagrant BOX(bento plugin)の生成 ● Shell, Puppetなど、従来からのお気に入りの方法で定義できる Copyright © 2013 NTT DATA Corporation 21
  • 22. 全体 イメージ Container images 開発環境 Provisioner (Puppet, Chef, Docker) Vagrant Box Images (Fedora, Ubuntu, etc) Provider (VirtualBox, KVM, LXC Libvirt, AWS) Command (Snapshot mutate) Host OS/Hypervisor(VB, VMware, KVM) PACKER RubyGems Pypi, etc レシピ PuppetShell Copyright © 2013 NTT DATA Corporation Box Images (Fedora, Ubuntu, etc) Remote Host LXC image OS package repository Provisioner (Puppet, Chef, Docker) docker repository Docker template VM image Vagrant box repository 22
  • 23. Contact miurahr at nttdata co jp @miurahr (Twitter/LinkedIn/Github) Copyright © 2011 NTT DATA Corporation Copyright © 2013 NTT DATA Corporation