<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">

  <channel>
    <title>Vagrant on @johtaniの日記 3rd</title>
    <link>https://blog.johtani.info/tags/vagrant/</link>
    <description>Recent content in Vagrant on @johtaniの日記 3rd</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <lastBuildDate>Thu, 06 Feb 2014 23:09:00 +0900</lastBuildDate><atom:link href="https://blog.johtani.info/tags/vagrant/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>すずけんさんのメモを元にVagrantでElasticsearchクラスタを起動してみた</title>
      <link>https://blog.johtani.info/blog/2014/02/06/es-cluster-start-using-vagrant-and-puppet/</link>
      <pubDate>Thu, 06 Feb 2014 23:09:00 +0900</pubDate>
      
      <guid>https://blog.johtani.info/blog/2014/02/06/es-cluster-start-using-vagrant-and-puppet/</guid>
      <description>&lt;p&gt;すずけんさんがVagrant+puppet使って、VM起動してElasticsearchのクラスタを組んでる記事を書いているのを見て、試してみたくなりました。
ということで、VagrantとかPuppetなに？くらいの私ですが、クラスタを起動するところまで行ったので、その時のメモを残しておきます。&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;すずけんさんがVagrant+puppet使って、VM起動してElasticsearchのクラスタを組んでる記事を書いているのを見て、試してみたくなりました。
ということで、VagrantとかPuppetなに？くらいの私ですが、クラスタを起動するところまで行ったので、その時のメモを残しておきます。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id=&#34;元記事とか参考&#34;&gt;元記事とか参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://suzuken.hatenablog.jp/entry/2014/02/04/215959&#34;&gt;Vagrant環境にpuppet moduleを利用してさくっとelasticsearchをインストールする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://suzuken.hatenablog.jp/entry/2014/02/05/232543&#34;&gt;Vagrant環境にpuppetを利用してさくっとelasticsearchのclusterを作成する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/elasticsearch/puppet-elasticsearch&#34;&gt;puppet-elasticsearch&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;なんとなくの理解&#34;&gt;なんとなくの理解&lt;/h2&gt;
&lt;p&gt;VagrantやPuppetについては、何度か勉強会で話を聞いてはいたのですが、
想像していたレベルだったので良い機会でした。
今のところの認識はこんな感じです。&lt;/p&gt;
&lt;h3 id=&#34;vagrant&#34;&gt;Vagrant&lt;/h3&gt;
&lt;p&gt;VMを起動したり、VM周りの設定をあれこれできるツール。
VMのネットワーク設定や、インスタンス名？などを指定できる。&lt;/p&gt;
&lt;h3 id=&#34;puppet&#34;&gt;Puppet&lt;/h3&gt;
&lt;p&gt;起動後のVM（VMとは限らないか。）のゲストOS側の設定周りやアプリのインストールなどを
実行できるツール。&lt;/p&gt;
&lt;h2 id=&#34;詰まった箇所&#34;&gt;詰まった箇所&lt;/h2&gt;
&lt;p&gt;すずけんさんのブログを元に作業をしましたが、自分がVagrantやPuppetに疎いため、以下の部分で躓いたので、備忘録のために残しておきました。&lt;/p&gt;
&lt;h3 id=&#34;その１puppetのファイルの場所&#34;&gt;その１：Puppetのファイルの場所&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;search01.vm.local&lt;/code&gt;のVMを設定（というか、elasticsearchのインストール？）するときに、&lt;code&gt;manifests/search.app&lt;/code&gt;と&lt;code&gt;roles/search/manifests/init.pp&lt;/code&gt;ファイルが必要で作成します。&lt;/p&gt;
&lt;p&gt;このファイルの配置場所は&lt;code&gt;/vagrant&lt;/code&gt;配下に作成する必要がありました。
&lt;code&gt;ssh search01.vm.local&lt;/code&gt;でVMにログインした場合は&lt;code&gt;/home/vagrant&lt;/code&gt;にログインしており、この場所でファイルを作ってもPuppetがエラーを吐いたためです。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;と思ったのですが&lt;/strong&gt;、あれ？これひょっとしてVagrantfileがあるところにディレクトリとファイル作ると勝手にVMにコピーしてくれるんですか？destroyして、upしたら、ファイルが勝手にコピーされてる。ひょっとして、&lt;code&gt;/vagrant&lt;/code&gt;ってディレクトリはVagrantfileがあるディレクトリを共有してたりするのかな？そのうち、Vagrantについても調べてみようかな。&lt;/p&gt;
&lt;h3 id=&#34;その２ネットワーク周り&#34;&gt;その２：ネットワーク周り&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;curl http://192.168.10.114:9200/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;をホストOSから実行してみましたがうまく行きませんでした。。。
ネットワーク周りの設定だと思うんですが。
少なくとも「sshによるログイン」「ping」コマンドの応答は返ってきてます。&lt;/p&gt;
&lt;p&gt;また、VM内でcurlコマンドを実行したらレスポンスが返ってきました。&lt;/p&gt;
&lt;p&gt;なんで？ってツイートしたら各所から「iptables」という単語が飛んできて、
service止めたら大正解でした。まぁ、そうですよね。基本ですよね。。。&lt;/p&gt;
&lt;p&gt;ということで、Puppetがよくわかっていませんが、ググって変更してみました。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;manifests/search.app&lt;/code&gt;に以下を追加&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;include iptables
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;roles/iptables/manifests/init.pp&lt;/code&gt;&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;class iptables {
  service { &amp;#39;iptables&amp;#39;:
    enable =&amp;gt; false,
    ensure =&amp;gt; stopped,
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;iptablesを停止するmanifests？です（良くないことなんですが、よくわかってない）。&lt;/p&gt;
&lt;p&gt;ということで、ローカルで1個のVM起動して、elasticsearchにアクセスできることは確認できました。&lt;/p&gt;
&lt;p&gt;と、書いてるそばから、元記事が修正されてしまいましたｗ&lt;/p&gt;
&lt;h2 id=&#34;クラスタ編変更点&#34;&gt;クラスタ編（変更点）&lt;/h2&gt;
&lt;p&gt;クラスタを組むときに、追加でプラグインを入れたので&lt;code&gt;roles/search/manifests/init.pp&lt;/code&gt;は次のようにしました。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;class search {
  class { &amp;#39;elasticsearch&amp;#39;:
    package_url =&amp;gt; &amp;#39;https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.0.0.RC2.noarch.rpm&amp;#39;,
    java_install =&amp;gt; true,
    config =&amp;gt; {
      &amp;#39;cluster&amp;#39; =&amp;gt; {
        &amp;#39;name&amp;#39; =&amp;gt; &amp;#39;test-es-cluster&amp;#39;
      },
      &amp;#39;network.host&amp;#39; =&amp;gt; &amp;#39;_eth1:ipv4_&amp;#39;,,
      &amp;#39;marvel.agent.exporter.es.hosts&amp;#39; =&amp;gt; [&amp;#39;192.168.10.114:9200&amp;#39;,&amp;#39;192.168.10.115:9200&amp;#39;]
    }
  }

  elasticsearch::plugin{&amp;#39;elasticsearch/marvel/latest&amp;#39;:
    module_dir =&amp;gt; &amp;#39;marvel&amp;#39;
  }

  elasticsearch::plugin{&amp;#39;mobz/elasticsearch-head&amp;#39;:
    module_dir =&amp;gt; &amp;#39;head&amp;#39;
  }

  elasticsearch::plugin{&amp;#39;royrusso/elasticsearch-HQ&amp;#39;:
    module_dir =&amp;gt; &amp;#39;HQ&amp;#39;
  }

  elasticsearch::plugin{&amp;#39;elasticsearch/elasticsearch-analysis-kuromoji/2.0.0.RC1&amp;#39;:
    module_dir =&amp;gt; &amp;#39;analysis-kuromoji&amp;#39;
  }

  elasticsearch::plugin{&amp;#39;info.johtani/elasticsearch-extended-analyze/1.0.0.RC1&amp;#39;:
    module_dir =&amp;gt; &amp;#39;extended-analyze&amp;#39;
  }

  elasticsearch::plugin{&amp;#39;polyfractal/elasticsearch-inquisitor&amp;#39;:
    module_dir =&amp;gt; &amp;#39;inquisitor&amp;#39;
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;とりあえず、今日はクラスタ組んでMarvelやプラグインの動作確認でおしまいです。&lt;/p&gt;
&lt;h2 id=&#34;疑問点&#34;&gt;疑問点&lt;/h2&gt;
&lt;p&gt;いくつか疑問点が。試してみてもないんでなんとも言えませんが。気が向いたら、調べて追記するかも。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;:private_network&lt;/code&gt;はVirtualBox内で完結する（Macから外には影響しない）ネットワークが構築される？たぶん、VagrantというよりはVM、仮想化周りの知識なんだろうけど&lt;/li&gt;
&lt;li&gt;どこから再開可能？elasticsearch.ymlの設定を書き換えた場合に、最後のコマンドだけ実行するとちゃんとやりなしてくれたりするのかな？&lt;/li&gt;
&lt;li&gt;VMのディスク増やすのもVagrantでできるんかな？まぁ、できると思うけど。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:forwarded_port&lt;/code&gt;のauto_correctとかわかってない。&lt;/li&gt;
&lt;li&gt;JVMをSunのJVMでかつ、7u25に変更したいのだがどうしたものか？(現時点での推奨バージョン)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;感想&#34;&gt;感想&lt;/h2&gt;
&lt;p&gt;Vagrantって便利ですね。あれ？って思ったら、destroyして、やり直すのがすごく簡単です。
元記事があるので、なんとなくですが、構成とかどうすればいいかがわかるのは本当に助かりました。
これで、あれこれと検証する環境が簡単に構築できることがわかったので、色々と楽できるかも。ありがとうございます、すずけんさん！&lt;/p&gt;
</content:encoded>
    </item>
    
  </channel>
</rss>
