diff --git a/css/custom.css b/css/custom.css new file mode 100644 index 0000000..f3be9ee --- /dev/null +++ b/css/custom.css @@ -0,0 +1,9 @@ +.reveal h3 { + padding-top: 20px; +} +.reveal .point { + padding-top: 40px; +} +.reveal .slides { + text-align: left; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..0ec3268 --- /dev/null +++ b/index.html @@ -0,0 +1,251 @@ + + + + + + + reveal.js + + + + + + + + + + + + + +
+
+
+

Ansible と Vagrant
ことはじめ

+

開発環境の理想と現実

+

+ Created by Terakawa Koji +

+
+ +
+

目標

+
    +
  • 統一された開発環境
  • +
  • 誰でもすぐに開発開始
  • +
  • 秘伝のタレ『ダメ、絶対。』
  • +
+
+ +
+

課題1. 開発環境を統一したい

+

理想

+

全員分、サーバを用意する

+
+

現実

+

仮想環境による環境統一

+
+

→ Virtualbox

+
+ +
+

Virtualboxとは?

+

コンピュータ上に仮想的なコンピュータ(VM : Vertical Machine)を作成し、動作させることができる。

+

VMは独立したコンピュータとして振舞うため、異なる環境上で同じ開発環境を構築することが可能になる。

+

類似ソフト:Hyper-V、VMwareなど

+

OSレベルでの開発環境を統一

+
+ +
+

課題2. 仮想環境の設定が煩雑

+

理想

+

セットアップ要員を配備する

+
+

現実

+

ツールによって、自動化 / 明文化

+
+

→ Vagrant

+
+ +
+

Vagrantとは?

+

VMやAWSのEC2などパブリック・クラウド上の仮想マシンの設定を行うためのラッパーツール。

+

ネットワーク、フォルダ同期、SSHなどの設定周りを設定ファイルとして記述できるため、共有/管理が容易になる。

+

仮想環境の設定を統一

+
+ +
+

課題3. システムの初期設定に時間がかかる

+

理想

+

完璧な手順書を用意しておく

+
+

現実

+

構成管理ツールによって、自動化 / 明文化

+
+

→ Ansible など

+
+ +
+

Ansibleとは?

+

ミドルウェア(apache、PHPなど)のインストールや、システムのセットアップなどを自動化する。

+

yamlという書式で記述するため、管理がしやすい。

+

類似ソフト:Chef、Puppet など

+

仮想環境をミドルウェアレベルで統一

+
+ +
+

ここまでのまとめ

+

開発マシンには、VirtualboxとVagrantをインストールしておけばいい。

+

非プログラマでもらくらくセットアップ。

+

バージョン管理ソフトとの相性も◎

+

プロジェクトにアサインされたその日から開発できる

+
+ +
+

Vagrant ことはじめ

+
    +
  • + コマンド +
      +
    • vagrant up
    • +
    • vagrant status
    • +
    • vagrant ssh
    • +
    • vagrant halt
    • +
    • vagrant destory
    • +
    +
  • +
  • Vagrantfile の書き方
  • +
+
+ +
+

Vagrant コマンド(1)

+
    +
  • + vagrant up +

    + 仮想マシンの起動 +

    +
  • +
  • + vagrant status +

    + 仮想マシンの状態を確認 +

    +
  • +
  • + vagrant ssh +

    + 仮想マシンにログイン +

    +
  • +
+
+ +
+

Vagrant コマンド(2)

+
    +
  • + vagrant halt +

    + 仮想マシンの終了 +

    +
  • +
  • + vagrant destory +

    + 仮想マシンの削除 +

    +
  • +
+
+ +
+

Vagrantfileの書き方

+

FabarCastell プロジェクトで使用したVagrantfile

+

+# Vagrantのバージョンを指定
+VAGRANTFILE_API_VERSION = "2"
+# Vagrantプラグインの vagrant-cachier があれば、キャッシュを使うという記述
+# このプラグインを使用することで、yumなどでキャッシュが作成され
+# プロビジョニング速度が向上する
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+  if Vagrant.has_plugin?("vagrant-cachier")
+    config.cache.scope = :box
+  end
+
+  # VMの定義名を指定
+  # 複数のVMを動かす際に必須になる
+  config.vm.define :develop do |develop|
+    develop.vm.hostname = "develop"
+    # 使用するbox 後述
+    develop.vm.box = "bento/centos6.5"
+    develop.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box"
+
+    # ネットワーク設定1 ホストとゲスト間のネットワーク設定
+    develop.vm.network :private_network, ip: "192.168.33.20"
+
+    # ネットワーク設定2 グローバル(LAN内)で使用できるネットワーク設定
+#    develop.vm.network :public_network, ip: "192.168.1.26"
+#    develop.vm.network :public_network, :bridge => "en1: Thunderbolt Ethernet"
+
+    # ディレクトリの共有設定 ホストとゲストPCでディレクトリを同期します。
+    develop.vm.synced_folder "./develop", "/var/www/html/", :mount_options => ['dmode=775', 'fmode=664']
+    develop.vm.synced_folder "./develop", "/vagrant", :mount_options => ['dmode=775', 'fmode=775']
+    develop.vm.synced_folder "./ansible", "/vagrant/ansible", :mount_options => ['dmode=775', 'fmode=664']
+
+    # プロビジョニング設定
+    develop.vm.provision "shell", :path => "ansible/provision.sh"
+  end
+end
+					
+
+ +
+

Ansible ことはじめ

+

Infrastructure as Code インフラのコード化

+

+ 必須ファイル +

    +
  • hosts
  • +
  • playbook.yml
  • +
+

+
+ +
+

hosts

+

プロビジョニングを実行する対象マシン

+

+[web]
+192.168.33.20
+					
+
+
+
+ + + + + + +