You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by ly...@apache.org on 2016/05/04 15:53:04 UTC

incubator-metron git commit: METRON-130 Create pre-loaded Hadoop Image for Devs (dlyle65535) closes apache/incubator-metron#101

Repository: incubator-metron
Updated Branches:
  refs/heads/master 91bb445e4 -> fd2d209ca


METRON-130 Create pre-loaded Hadoop Image for Devs (dlyle65535) closes apache/incubator-metron#101


Project: http://git-wip-us.apache.org/repos/asf/incubator-metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metron/commit/fd2d209c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metron/tree/fd2d209c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metron/diff/fd2d209c

Branch: refs/heads/master
Commit: fd2d209ca9f5848a2aa63ad70f8113e2e52d0fee
Parents: 91bb445
Author: dlyle65535 <dl...@gmail.com>
Authored: Wed May 4 11:51:03 2016 -0400
Committer: David Lyle <dl...@gmail.com>
Committed: Wed May 4 11:51:03 2016 -0400

----------------------------------------------------------------------
 .../inventory/dev-vagrant/group_vars/all        | 86 ------------------
 metron-deployment/inventory/dev-vagrant/hosts   | 52 -----------
 .../inventory/devimage-vagrant/group_vars/all   | 87 ++++++++++++++++++
 .../inventory/devimage-vagrant/hosts            | 52 +++++++++++
 metron-deployment/playbooks/metron_install.yml  |  1 +
 .../roles/ambari_config/tasks/main.yml          | 24 ++++-
 .../roles/ambari_master/tasks/main.yml          |  8 +-
 .../vagrant/devimage-vagrant/README.md          | 61 +++++++++++++
 .../vagrant/devimage-vagrant/Vagrantfile        | 94 ++++++++++++++++++++
 .../vagrant/devimage-vagrant/ansible.cfg        | 27 ++++++
 .../devimage-vagrant/launch_dev_image.sh        | 21 +++++
 .../devimage-vagrant/run_ansible_role.sh        | 20 +++++
 .../devimage-vagrant/run_enrichment_role.sh     | 20 +++++
 13 files changed, 407 insertions(+), 146 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/inventory/dev-vagrant/group_vars/all
----------------------------------------------------------------------
diff --git a/metron-deployment/inventory/dev-vagrant/group_vars/all b/metron-deployment/inventory/dev-vagrant/group_vars/all
deleted file mode 100644
index b85f327..0000000
--- a/metron-deployment/inventory/dev-vagrant/group_vars/all
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-#  Licensed to the Apache Software Foundation (ASF) under one or more
-#  contributor license agreements.  See the NOTICE file distributed with
-#  this work for additional information regarding copyright ownership.
-#  The ASF licenses this file to You under the Apache License, Version 2.0
-#  (the "License"); you may not use this file except in compliance with
-#  the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-#
-
-#Ambari variables
-ambari_host: "{{ groups.ambari_master[0] }}"
-hdp_host_group: "{{ groups.ambari_slave }}"
-ambari_port: 8080
-ambari_user: admin
-ambari_password: admin
-cluster_type: single_node_vm
-
-# hbase
-pcap_hbase_table: pcap
-tracker_hbase_table: access_tracker
-threatintel_hbase_table: threatintel
-enrichment_hbase_table: enrichment
-
-# metron variables
-metron_version: 0.1BETA
-metron_directory: /usr/metron/{{ metron_version }}
-java_home: /usr/jdk64/jdk1.8.0_40
-bro_version: "2.4.1"
-fixbuf_version: "1.7.1"
-yaf_version: "2.8.0"
-daq_version: "2.0.6-1"
-pycapa_repo: "https://github.com/OpenSOC/pycapa.git"
-pycapa_home: "/opt/pycapa"
-snort_version: "2.9.8.0-1"
-snort_alert_csv_path: "/var/log/snort/alert.csv"
-
-#data directories - only required to override defaults
-zookeeper_data_dir: "/data1/hadoop/zookeeper"
-namenode_checkpoint_dir: "/data1/hadoop/hdfs/namesecondary"
-namenode_name_dir: "/data1/hadoop/hdfs/namenode"
-datanode_data_dir: "/data1/hadoop/hdfs/data,/data2/hadoop/hdfs/data"
-journalnode_edits_dir: "/data1/hadoop/hdfs/journalnode"
-nodemanager_local_dirs: "/data1/hadoop/yarn/local"
-timeline_ldb_store_path: "/data1/hadoop/yarn/timeline"
-timeline_ldb_state_path: "/data1/hadoop/yarn/timeline"
-nodemanager_log_dirs: "/data1/hadoop/yarn/log"
-jhs_recovery_store_ldb_path: "/data1/hadoop/mapreduce/jhs"
-storm_local_dir: "/data1/hadoop/storm"
-kafka_log_dirs: "/data1/kafka-log"
-elasticsearch_data_dir: "/data1/elasticsearch,/data2/elasticsearch"
-
-ambari_server_mem: 512
-threat_intel_bulk_load: False
-
-#Sensors
-install_pycapa: False
-install_bro: False
-install_snort: False
-install_yaf: False
-pcap_replay: True
-sniff_interface: eth1
-pcap_replay_interface: "{{ sniff_interface }}"
-storm_topologies:
-    - "{{ metron_directory }}/config/topologies/bro/remote.yaml"
-    - "{{ metron_directory }}/config/topologies/snort/remote.yaml"
-    - "{{ metron_directory }}/config/topologies/yaf/remote.yaml"
-    - "{{ metron_directory }}/config/topologies/enrichment/remote.yaml"
-pcapservice_port: 8081
-
-#Search
-install_elasticsearch: True
-install_solr: False
-solr_collection_name: Metron
-solr_number_shards: 1
-solr_replication_factor: 1
-elasticsearch_transport_port: 9300
-elasticsearch_network_interface: eth1
-elasticsearch_web_port: 9200
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/inventory/dev-vagrant/hosts
----------------------------------------------------------------------
diff --git a/metron-deployment/inventory/dev-vagrant/hosts b/metron-deployment/inventory/dev-vagrant/hosts
deleted file mode 100644
index 528094b..0000000
--- a/metron-deployment/inventory/dev-vagrant/hosts
+++ /dev/null
@@ -1,52 +0,0 @@
-#
-#  Licensed to the Apache Software Foundation (ASF) under one or more
-#  contributor license agreements.  See the NOTICE file distributed with
-#  this work for additional information regarding copyright ownership.
-#  The ASF licenses this file to You under the Apache License, Version 2.0
-#  (the "License"); you may not use this file except in compliance with
-#  the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-#
-
-[ambari_master]
-node1
-
-[ambari_slave]
-node1
-
-[hadoop_client]
-node1
-
-[enrichment]
-node1
-
-[search]
-node1
-
-[web]
-node1
-
-[sensors]
-node1
-
-[mysql]
-node1
-
-[pcap_server]
-node1
-
-[metron:children]
-enrichment
-search
-web
-sensors
-mysql
-hadoop_client
-pcap_server

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/inventory/devimage-vagrant/group_vars/all
----------------------------------------------------------------------
diff --git a/metron-deployment/inventory/devimage-vagrant/group_vars/all b/metron-deployment/inventory/devimage-vagrant/group_vars/all
new file mode 100644
index 0000000..ac83692
--- /dev/null
+++ b/metron-deployment/inventory/devimage-vagrant/group_vars/all
@@ -0,0 +1,87 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+
+#Ambari variables
+ambari_host: "{{ groups.ambari_master[0] }}"
+hdp_host_group: "{{ groups.ambari_slave }}"
+ambari_port: 8080
+ambari_user: admin
+ambari_password: admin
+cluster_type: single_node_vm
+
+# hbase
+pcap_hbase_table: pcap
+tracker_hbase_table: access_tracker
+threatintel_hbase_table: threatintel
+enrichment_hbase_table: enrichment
+
+# metron variables
+metron_version: 0.1BETA
+metron_directory: /usr/metron/{{ metron_version }}
+java_home: /usr/jdk64/jdk1.8.0_40
+bro_version: "2.4.1"
+fixbuf_version: "1.7.1"
+yaf_version: "2.8.0"
+daq_version: "2.0.6-1"
+pycapa_repo: "https://github.com/OpenSOC/pycapa.git"
+pycapa_home: "/opt/pycapa"
+snort_version: "2.9.8.0-1"
+snort_alert_csv_path: "/var/log/snort/alert.csv"
+
+#data directories - only required to override defaults
+zookeeper_data_dir: "/data1/hadoop/zookeeper"
+namenode_checkpoint_dir: "/data1/hadoop/hdfs/namesecondary"
+namenode_name_dir: "/data1/hadoop/hdfs/namenode"
+datanode_data_dir: "/data1/hadoop/hdfs/data,/data2/hadoop/hdfs/data"
+journalnode_edits_dir: "/data1/hadoop/hdfs/journalnode"
+nodemanager_local_dirs: "/data1/hadoop/yarn/local"
+timeline_ldb_store_path: "/data1/hadoop/yarn/timeline"
+timeline_ldb_state_path: "/data1/hadoop/yarn/timeline"
+nodemanager_log_dirs: "/data1/hadoop/yarn/log"
+jhs_recovery_store_ldb_path: "/data1/hadoop/mapreduce/jhs"
+storm_local_dir: "/data1/hadoop/storm"
+kafka_log_dirs: "/data1/kafka-log"
+elasticsearch_data_dir: "/data1/elasticsearch,/data2/elasticsearch"
+
+ambari_server_mem: 512
+threat_intel_bulk_load: False
+
+#Sensors
+install_pycapa: False
+install_bro: False
+install_snort: False
+install_yaf: False
+pcap_replay: True
+sniff_interface: eth1
+pcap_replay_interface: "{{ sniff_interface }}"
+storm_topologies:
+    - "{{ metron_directory }}/config/topologies/bro/remote.yaml"
+    - "{{ metron_directory }}/config/topologies/snort/remote.yaml"
+    - "{{ metron_directory }}/config/topologies/yaf/remote.yaml"
+    - "{{ metron_directory }}/config/topologies/enrichment/remote.yaml"
+pcapservice_port: 8081
+
+#Search
+install_elasticsearch: True
+install_solr: False
+solr_collection_name: Metron
+solr_number_shards: 1
+solr_replication_factor: 1
+elasticsearch_transport_port: 9300
+elasticsearch_network_interface: eth1
+elasticsearch_web_port: 9200
+

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/inventory/devimage-vagrant/hosts
----------------------------------------------------------------------
diff --git a/metron-deployment/inventory/devimage-vagrant/hosts b/metron-deployment/inventory/devimage-vagrant/hosts
new file mode 100644
index 0000000..528094b
--- /dev/null
+++ b/metron-deployment/inventory/devimage-vagrant/hosts
@@ -0,0 +1,52 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+
+[ambari_master]
+node1
+
+[ambari_slave]
+node1
+
+[hadoop_client]
+node1
+
+[enrichment]
+node1
+
+[search]
+node1
+
+[web]
+node1
+
+[sensors]
+node1
+
+[mysql]
+node1
+
+[pcap_server]
+node1
+
+[metron:children]
+enrichment
+search
+web
+sensors
+mysql
+hadoop_client
+pcap_server

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/playbooks/metron_install.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/playbooks/metron_install.yml b/metron-deployment/playbooks/metron_install.yml
index 4654cfc..877f9b8 100644
--- a/metron-deployment/playbooks/metron_install.yml
+++ b/metron-deployment/playbooks/metron_install.yml
@@ -69,6 +69,7 @@
 - hosts: sensors
   become: true
   roles:
+    - ambari_gather_facts
     - { role: tap_interface, when: install_tap | default(False) == True }
     - { role: pycapa, when: install_pycapa | default(True) == True }
     - { role: bro, when: install_bro | default(True) == True }

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/roles/ambari_config/tasks/main.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/roles/ambari_config/tasks/main.yml b/metron-deployment/roles/ambari_config/tasks/main.yml
index 81c0906..8a65aee 100644
--- a/metron-deployment/roles/ambari_config/tasks/main.yml
+++ b/metron-deployment/roles/ambari_config/tasks/main.yml
@@ -26,6 +26,13 @@
   retries: 5
   delay: 10
 
+- name : check if ambari-server is up on {{ ambari_host }}:{{ambari_port}}
+  wait_for :
+    host: "{{ ambari_host }}"
+    port: "{{ ambari_port }}"
+    delay: 120
+    timeout: 300
+
 - name: Deploy cluster with Ambari; http://{{ groups.ambari_master[0] }}:{{ ambari_port }}
   ambari_cluster_state:
     host: "{{ groups.ambari_master[0] }}"
@@ -38,8 +45,23 @@
     configurations: "{{ configurations }}"
     wait_for_complete: True
     blueprint_var: "{{ blueprint }}"
+#
+# Workaround for Kafka not starting
+# Fire off async start followed by
+# Sync start -execution will pause until
+# final start completes.
+#
+- name: Start the ambari cluster - no wait
+  ambari_cluster_state:
+    host: "{{ groups.ambari_master[0] }}"
+    port: "{{ ambari_port }}"
+    username: "{{ ambari_user }}"
+    password: "{{ ambari_password }}"
+    cluster_name: "{{ cluster_name }}"
+    cluster_state: started
+    wait_for_complete: False
 
-- name: Start the ambari cluster
+- name: Start the ambari cluster - wait
   ambari_cluster_state:
     host: "{{ groups.ambari_master[0] }}"
     port: "{{ ambari_port }}"

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/roles/ambari_master/tasks/main.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/roles/ambari_master/tasks/main.yml b/metron-deployment/roles/ambari_master/tasks/main.yml
index 25c3784..ea00844 100644
--- a/metron-deployment/roles/ambari_master/tasks/main.yml
+++ b/metron-deployment/roles/ambari_master/tasks/main.yml
@@ -41,11 +41,5 @@
 - name: start ambari server
   service:
     name: ambari-server
-    state: restarted
+    state: started
 
-- name : check if ambari-server is up on {{ ambari_host }}:{{ambari_port}}
-  wait_for :
-    host: "{{ ambari_host }}"
-    port: "{{ ambari_port }}"
-    delay: 120
-    timeout: 300

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/vagrant/devimage-vagrant/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/vagrant/devimage-vagrant/README.md b/metron-deployment/vagrant/devimage-vagrant/README.md
new file mode 100644
index 0000000..af66682
--- /dev/null
+++ b/metron-deployment/vagrant/devimage-vagrant/README.md
@@ -0,0 +1,61 @@
+Developer Image for Apache Metron on Virtualbox
+===============================================
+
+This image is designed for more rapid deployment of Metron for use by Metron developers. It uses a base image that has been pre-loaded with Ambari and HDP. 
+
+Getting Started
+---------------
+
+### Prerequisites
+
+As with the Singlenode Full Image, the computer used to deploy Apache Metron will need to have the following components installed.
+
+ - [Ansible](https://github.com/ansible/ansible) 2.0.0.2
+ - [Vagrant](https://www.vagrantup.com) 1.8.1
+ - [Virtualbox](virtualbox.org) 5.0.16
+ - Python 2.7.11
+ - Maven 3.3.9
+
+
+### Launch the Metron Development Image
+
+Now that the hard part is done, start the Metron deployment process.
+
+1. Build Metron
+
+  ```
+  cd metron-platform
+  mvn clean package -DskipTests
+  ```
+
+2. Deploy Metron
+
+  ```
+  cd metron-deployment/vagrant/devimage-vagrant
+  ./launch_dev_image.sh
+  ```
+
+  Should the process fail before completing the deployment, the following command will continue the deployment process without re-instantiating the host.
+
+  ```
+  vagrant --ansible-tags="hdp-deploy,metron" provision
+  ```
+
+### Work with Metron
+
+As you build out new capabilities for Metron, you will need to re-deploy the Storm topologies. To do so, first HALT the running Storm topologies and then run:
+
+``` 
+./run_enrichment_role.sh 
+```
+
+Remember Navigate to the following resources to explore your newly minted Apache Metron environment.
+
+ - [Metron](http://node1:8080)
+ - [Ambari](http://node1:5000)
+
+Connecting to the host through SSH is as simple as running the following command.
+
+   ```
+   vagrant ssh
+   ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/vagrant/devimage-vagrant/Vagrantfile
----------------------------------------------------------------------
diff --git a/metron-deployment/vagrant/devimage-vagrant/Vagrantfile b/metron-deployment/vagrant/devimage-vagrant/Vagrantfile
new file mode 100644
index 0000000..29e91b0
--- /dev/null
+++ b/metron-deployment/vagrant/devimage-vagrant/Vagrantfile
@@ -0,0 +1,94 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+require 'getoptlong'
+
+ansibleTags=''
+ansibleSkipTags=''
+
+begin
+   opts = GetoptLong.new(
+     [ '--ansible-tags', GetoptLong::OPTIONAL_ARGUMENT ],
+     [ '--ansible-skip-tags', GetoptLong::OPTIONAL_ARGUMENT ]
+   )
+
+   opts.quiet = TRUE
+
+   opts.each do |opt, arg|
+     case opt
+       when '--ansible-tags'
+         ansibleTags=arg
+       when '--ansible-skip-tags'
+         ansibleSkipTags=arg
+     end
+   end
+rescue Exception => ignored
+#Ignore to allow other opts to be passed to Vagrant
+end
+
+puts " Running with ansible-tags: " + ansibleTags.split(",").to_s if ansibleTags != ''
+puts " Running with ansible-skip-tags: " + ansibleSkipTags.split(",").to_s if ansibleSkipTags != ''
+
+hosts = [{
+    hostname: "node1",
+    ip: "192.168.66.121",
+    memory: "8192",
+    cpus: 4,
+    promisc: 2  # enables promisc on the 'Nth' network interface
+}]
+
+Vagrant.configure(2) do |config|
+
+  # all hosts built on centos 6
+  config.vm.box = "metron/hdp-base"
+  config.ssh.insert_key = true
+
+  # enable the hostmanager plugin
+  config.hostmanager.enabled = true
+  config.hostmanager.manage_host = true
+
+  # host definition
+  hosts.each_with_index do |host, index|
+    config.vm.define host[:hostname] do |node|
+
+      # host settings
+      node.vm.hostname = host[:hostname]
+      node.vm.network "private_network", ip: host[:ip]
+
+      # vm settings
+      node.vm.provider "virtualbox" do |vb|
+        vb.memory = host[:memory]
+        vb.cpus = host[:cpus]
+
+        # enable promisc mode on the network interface
+        if host.has_key?(:promisc)
+          vb.customize ["modifyvm", :id, "--nicpromisc#{host[:promisc]}", "allow-all"]
+        end
+      end
+    end
+  end
+
+  if ansibleSkipTags != '' or ansibleTags != ''
+    config.vm.provision :ansible do |ansible|
+        ansible.playbook = "../../playbooks/metron_full_install.yml"
+        ansible.sudo = true
+        ansible.tags = ansibleTags.split(",") if ansibleTags != ''
+        ansible.skip_tags = ansibleSkipTags.split(",") if ansibleSkipTags != ''
+        ansible.inventory_path = "../../inventory/singlenode-vagrant"
+    end
+  end
+
+end

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/vagrant/devimage-vagrant/ansible.cfg
----------------------------------------------------------------------
diff --git a/metron-deployment/vagrant/devimage-vagrant/ansible.cfg b/metron-deployment/vagrant/devimage-vagrant/ansible.cfg
new file mode 100644
index 0000000..74f3fdf
--- /dev/null
+++ b/metron-deployment/vagrant/devimage-vagrant/ansible.cfg
@@ -0,0 +1,27 @@
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more
+#  contributor license agreements.  See the NOTICE file distributed with
+#  this work for additional information regarding copyright ownership.
+#  The ASF licenses this file to You under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with
+#  the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+[defaults]
+host_key_checking = false
+library = ../../extra_modules
+roles_path = ../../roles
+pipelining = True
+log_path = ./ansible.log
+
+
+# fix for "ssh throws 'unix domain socket too long' " problem
+[ssh_connection]
+control_path = %(directory)s/%%h-%%p-%%r

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/vagrant/devimage-vagrant/launch_dev_image.sh
----------------------------------------------------------------------
diff --git a/metron-deployment/vagrant/devimage-vagrant/launch_dev_image.sh b/metron-deployment/vagrant/devimage-vagrant/launch_dev_image.sh
new file mode 100755
index 0000000..dc91679
--- /dev/null
+++ b/metron-deployment/vagrant/devimage-vagrant/launch_dev_image.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+vagrant --ansible-tags="hdp-deploy,metron" up
+

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/vagrant/devimage-vagrant/run_ansible_role.sh
----------------------------------------------------------------------
diff --git a/metron-deployment/vagrant/devimage-vagrant/run_ansible_role.sh b/metron-deployment/vagrant/devimage-vagrant/run_ansible_role.sh
new file mode 100755
index 0000000..0e5d831
--- /dev/null
+++ b/metron-deployment/vagrant/devimage-vagrant/run_ansible_role.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+vagrant --ansible-tags="$@" provision

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/fd2d209c/metron-deployment/vagrant/devimage-vagrant/run_enrichment_role.sh
----------------------------------------------------------------------
diff --git a/metron-deployment/vagrant/devimage-vagrant/run_enrichment_role.sh b/metron-deployment/vagrant/devimage-vagrant/run_enrichment_role.sh
new file mode 100755
index 0000000..e26bc16
--- /dev/null
+++ b/metron-deployment/vagrant/devimage-vagrant/run_enrichment_role.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+./run_ansible_role.sh enrichment