You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by rm...@apache.org on 2016/04/26 16:46:33 UTC

[45/51] [partial] incubator-metron git commit: METRON-113 Project Reorganization (merrimanr) closes apache/incubator-metron#88

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/roles/yaf/meta/main.yml
----------------------------------------------------------------------
diff --git a/deployment/roles/yaf/meta/main.yml b/deployment/roles/yaf/meta/main.yml
deleted file mode 100644
index ff366b8..0000000
--- a/deployment/roles/yaf/meta/main.yml
+++ /dev/null
@@ -1,23 +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.
-#
----
-dependencies:
-  - ambari_gather_facts
-  - build-tools
-  - java_jdk
-  - libselinux-python
-  - kafka-client

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/roles/yaf/tasks/fixbuf.yml
----------------------------------------------------------------------
diff --git a/deployment/roles/yaf/tasks/fixbuf.yml b/deployment/roles/yaf/tasks/fixbuf.yml
deleted file mode 100644
index 9cd9244..0000000
--- a/deployment/roles/yaf/tasks/fixbuf.yml
+++ /dev/null
@@ -1,37 +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.
-#
----
-- name: Download fixbuf
-  get_url:
-    url: "http://tools.netsa.cert.org/releases/libfixbuf-{{fixbuf_version}}.tar.gz"
-    dest: "/tmp/libfixbuf-{{fixbuf_version}}.tar.gz"
-
-- name: Extract fixbuf tarball
-  unarchive:
-    src: "/tmp/libfixbuf-{{fixbuf_version}}.tar.gz"
-    dest: /tmp
-    copy: no
-    creates: "/tmp/libfixbuf-{{fixbuf_version}}"
-
-- name: Compile and Install fixbuf
-  shell: "{{item}}"
-  args:
-    chdir: "/tmp/libfixbuf-{{fixbuf_version}}"
-  with_items:
-    - ./configure
-    - make
-    - make install

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/roles/yaf/tasks/main.yml
----------------------------------------------------------------------
diff --git a/deployment/roles/yaf/tasks/main.yml b/deployment/roles/yaf/tasks/main.yml
deleted file mode 100644
index 15f67f6..0000000
--- a/deployment/roles/yaf/tasks/main.yml
+++ /dev/null
@@ -1,19 +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.
-#
----
-- include: fixbuf.yml
-- include: yaf.yml

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/roles/yaf/tasks/yaf.yml
----------------------------------------------------------------------
diff --git a/deployment/roles/yaf/tasks/yaf.yml b/deployment/roles/yaf/tasks/yaf.yml
deleted file mode 100644
index 10d3205..0000000
--- a/deployment/roles/yaf/tasks/yaf.yml
+++ /dev/null
@@ -1,60 +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.
-#
----
-- name: Download yaf
-  get_url:
-    url: "http://tools.netsa.cert.org/releases/yaf-{{yaf_version}}.tar.gz"
-    dest: "/tmp/yaf-{{yaf_version}}.tar.gz"
-
-- name: Extract yaf tarball
-  unarchive:
-    src: "/tmp/yaf-{{yaf_version}}.tar.gz"
-    dest: /tmp
-    copy: no
-    creates: /usr/local/bin/yaf
-
-- name: Compile and install yaf
-  shell: "{{item}}"
-  args:
-    chdir: "/tmp/yaf-{{yaf_version}}"
-    creates: /usr/local/bin/yaf
-  with_items:
-    - ./configure --enable-applabel --enable-plugins
-    - make
-    - make install
-
-- name: Create yaf home directory
-  file:
-    path: "{{ yaf_home }}"
-    state: directory
-    mode: 0755
-
-- name: Install yaf start script
-  template: src=start-yaf.sh dest={{ yaf_home }}/start-yaf.sh mode=0755
-
-- name: Install init.d service script
-  template: src=yaf dest=/etc/init.d/yaf mode=0755
-
-- name: Register the service with systemd
-  shell: systemctl enable pcap-replay
-  when: ansible_distribution == "CentOS" and ansible_distribution_major_version == "7"
-
-- name: Turn on promiscuous mode for {{ sniff_interface }}
-  shell: "ip link set {{ sniff_interface }} promisc on"
-
-- name: Start yaf
-  service: name=yaf state=restarted args="{{ yaf_args }}"

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/roles/yaf/templates/start-yaf.sh
----------------------------------------------------------------------
diff --git a/deployment/roles/yaf/templates/start-yaf.sh b/deployment/roles/yaf/templates/start-yaf.sh
deleted file mode 100644
index 9660e72..0000000
--- a/deployment/roles/yaf/templates/start-yaf.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env 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.
-#
-
-#
-# a very simply metron probe that captures the output of yaf - yet another
-# flowmeter - and sends the output to kafka so that it can be consumed
-# by metron
-#
-{{ yaf_bin }} --in {{ sniff_interface }} --live pcap "${@:1}" | {{ yafscii_bin }} --tabular | {{ kafka_prod }} --broker-list {{ kafka_broker_url }} --topic {{ yaf_topic }}

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/roles/yaf/templates/yaf
----------------------------------------------------------------------
diff --git a/deployment/roles/yaf/templates/yaf b/deployment/roles/yaf/templates/yaf
deleted file mode 100644
index 18bc4ac..0000000
--- a/deployment/roles/yaf/templates/yaf
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env 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.
-#
-# yaf daemon
-# chkconfig: 345 20 80
-# description: Runs yaf - yet another flowmeter
-# processname: yaf
-#
-NAME=yaf
-DESC="Executes yaf - yet another flowmeter"
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-DAEMON_PATH="{{ yaf_home }}"
-DAEMON="{{ yaf_start }}"
-DAEMONOPTS="${@:2}"
-
-case "$1" in
-  start)
-    printf "%-50s" "Starting $NAME..."
-
-    # kick-off the daemon
-    cd $DAEMON_PATH
-    PID=`$DAEMON $DAEMONOPTS > /dev/null 2>&1 & echo $!`
-    if [ -z $PID ]; then
-        printf "%s\n" "Fail"
-    else
-        echo $PID > $PIDFILE
-        printf "%s\n" "Ok"
-    fi
-  ;;
-
-  status)
-    printf "%-50s" "Checking $NAME..."
-    if [ -f $PIDFILE ]; then
-      PID=`cat $PIDFILE`
-      if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
-        printf "%s\n" "Process dead but pidfile exists"
-      else
-        echo "Running"
-      fi
-    else
-      printf "%s\n" "Service not running"
-    fi
-  ;;
-
-  stop)
-    printf "%-50s" "Stopping $NAME"
-    PID=`cat $PIDFILE`
-    cd $DAEMON_PATH
-    if [ -f $PIDFILE ]; then
-        kill -HUP $PID
-        killall $NAME
-        printf "%s\n" "Ok"
-        rm -f $PIDFILE
-    else
-        printf "%s\n" "pidfile not found"
-    fi
-  ;;
-
-  restart)
-    $0 stop
-    $0 start
-  ;;
-
-  *)
-    echo "Usage: $0 {status|start|stop|restart}"
-    exit 1
-esac

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/roles/yum-update/tasks/main.yml
----------------------------------------------------------------------
diff --git a/deployment/roles/yum-update/tasks/main.yml b/deployment/roles/yum-update/tasks/main.yml
deleted file mode 100644
index 4db6297..0000000
--- a/deployment/roles/yum-update/tasks/main.yml
+++ /dev/null
@@ -1,26 +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.
-#
----
-- name: Yum Update Packages
-  yum:
-    name: "*"
-    state: latest
-    update_cache: yes
-  register: result
-  until: result.rc == 0
-  retries: 5
-  delay: 10

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/multinode-vagrant/.gitignore
----------------------------------------------------------------------
diff --git a/deployment/vagrant/multinode-vagrant/.gitignore b/deployment/vagrant/multinode-vagrant/.gitignore
deleted file mode 100644
index 8000dd9..0000000
--- a/deployment/vagrant/multinode-vagrant/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-.vagrant

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/multinode-vagrant/Vagrantfile
----------------------------------------------------------------------
diff --git a/deployment/vagrant/multinode-vagrant/Vagrantfile b/deployment/vagrant/multinode-vagrant/Vagrantfile
deleted file mode 100644
index 61d656f..0000000
--- a/deployment/vagrant/multinode-vagrant/Vagrantfile
+++ /dev/null
@@ -1,65 +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.
-#
-
-hosts = [
-  { hostname: "node1", ip: "192.168.66.101", memory: "2048", cpus: 2 },
-  { hostname: "node2", ip: "192.168.66.102", memory: "2048", cpus: 2 },
-  { hostname: "node3", ip: "192.168.66.103", memory: "2048", cpus: 2 },
-  { hostname: "node4", ip: "192.168.66.104", memory: "2048", cpus: 2 }
-]
-
-Vagrant.configure(2) do |config|
-
-  # all hosts built on centos 6
-  config.vm.box = "bento/centos-6.7"
-  config.ssh.insert_key = false
-
-  # enable the hostmanager plugin
-  config.hostmanager.enabled = true
-  config.hostmanager.manage_host = true
-
-  # define each host
-  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]
-      end
-
-      # enable promisc mode on the network interface
-      if host.has_key?(:promisc)
-        vb.customize ["modifyvm", :id, "--nicpromisc#{host[:promisc]}", "allow-all"]
-      end
-
-      # provisioning; only after all hosts created
-      if index == hosts.size - 1
-        node.vm.provision :ansible do |ansible|
-          ansible.playbook = "../../playbooks/metron_full_install.yml"
-          ansible.sudo = true
-          ansible.inventory_path = "../../inventory/multinode-vagrant"
-          ansible.limit = "all"
-        end
-      end
-    end
-  end
-end

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/multinode-vagrant/ansible.cfg
----------------------------------------------------------------------
diff --git a/deployment/vagrant/multinode-vagrant/ansible.cfg b/deployment/vagrant/multinode-vagrant/ansible.cfg
deleted file mode 100644
index 7a41ec8..0000000
--- a/deployment/vagrant/multinode-vagrant/ansible.cfg
+++ /dev/null
@@ -1,22 +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.
-#
-[defaults]
-host_key_checking = false
-library = ../../extra_modules
-roles_path = ../../roles
-pipelining = True
-log_path = ./ansible.log

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/packet-capture/Vagrantfile
----------------------------------------------------------------------
diff --git a/deployment/vagrant/packet-capture/Vagrantfile b/deployment/vagrant/packet-capture/Vagrantfile
deleted file mode 100644
index 1303712..0000000
--- a/deployment/vagrant/packet-capture/Vagrantfile
+++ /dev/null
@@ -1,69 +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.
-#
-
-Vagrant.configure("2") do |config|
-
-  # enable hostmanager
-  config.hostmanager.enabled = true
-  config.hostmanager.manage_host = true
-
-  #
-  # source
-  #
-  config.vm.define "source" do |node|
-
-    # host settings
-    node.vm.hostname = "source"
-    node.vm.box = "bento/centos-7.1"
-    node.ssh.insert_key = "true"
-    node.vm.network :private_network, ip: "192.168.33.10", netmask: "255.255.255.0"
-
-    # provider
-    node.vm.provider "virtualbox" do |vb|
-      vb.memory = 1024
-      vb.cpus = 1
-    end
-  end
-
-  #
-  # sink
-  #
-  config.vm.define "sink" do |node|
-
-    # host settings
-    node.vm.hostname = "sink"
-    node.vm.box = "bento/centos-7.1"
-    node.ssh.insert_key = "true"
-    node.vm.network "public_network"
-    node.vm.network :private_network, ip: "192.168.33.11", netmask: "255.255.255.0"
-
-    # provider
-    node.vm.provider "virtualbox" do |vb|
-      vb.memory = 4096
-      vb.cpus = 3
-
-      # network adapter settings; [Am79C970A|Am79C973|82540EM|82543GC|82545EM|virtio]
-      vb.customize ["modifyvm", :id, "--nicpromisc2", "allow-all"]
-      vb.customize ["modifyvm", :id, "--nictype2","82545EM"]
-    end
-  end
-
-  # provision hosts
-  config.vm.provision :ansible do |ansible|
-    ansible.playbook = "playbook.yml"
-  end
-end

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/packet-capture/ansible.cfg
----------------------------------------------------------------------
diff --git a/deployment/vagrant/packet-capture/ansible.cfg b/deployment/vagrant/packet-capture/ansible.cfg
deleted file mode 100644
index 9c650c2..0000000
--- a/deployment/vagrant/packet-capture/ansible.cfg
+++ /dev/null
@@ -1,22 +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.
-#
-
-[defaults]
-host_key_checking = false
-library = ../../extra_modules
-roles_path = ../../roles
-pipelining = True

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/packet-capture/playbook.yml
----------------------------------------------------------------------
diff --git a/deployment/vagrant/packet-capture/playbook.yml b/deployment/vagrant/packet-capture/playbook.yml
deleted file mode 100644
index 7a5128c..0000000
--- a/deployment/vagrant/packet-capture/playbook.yml
+++ /dev/null
@@ -1,43 +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.
-#
----
-#
-# produces network traffic
-#
-- hosts: source
-  become: yes
-  vars:
-    pcap_replay_interface: "enp0s8"
-  roles:
-    - role: pcap_replay
-
-#
-# consumes network traffic
-#
-- hosts: sink
-  become: yes
-  vars:
-      dpdk_device: ["00:08.0"]
-      dpdk_target: "x86_64-native-linuxapp-gcc"
-      num_huge_pages: 512
-      pcapture_portmask: 0xf
-      pcapture_topic: pcap
-      kafka_broker_url: localhost:9092
-  roles:
-    - role: librdkafka
-    - role: kafka-broker
-    - role: packet-capture

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/singlenode-vagrant/.gitignore
----------------------------------------------------------------------
diff --git a/deployment/vagrant/singlenode-vagrant/.gitignore b/deployment/vagrant/singlenode-vagrant/.gitignore
deleted file mode 100644
index 8000dd9..0000000
--- a/deployment/vagrant/singlenode-vagrant/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-.vagrant

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/singlenode-vagrant/Vagrantfile
----------------------------------------------------------------------
diff --git a/deployment/vagrant/singlenode-vagrant/Vagrantfile b/deployment/vagrant/singlenode-vagrant/Vagrantfile
deleted file mode 100644
index 98413d6..0000000
--- a/deployment/vagrant/singlenode-vagrant/Vagrantfile
+++ /dev/null
@@ -1,63 +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.
-#
-
-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 = "bento/centos-6.7"
-  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
-
-  # provisioning
-  config.vm.provision :ansible do |ansible|
-    ansible.playbook = "../../playbooks/metron_full_install.yml"
-    ansible.sudo = true
-    ansible.inventory_path = "../../inventory/singlenode-vagrant"
-  end
-end

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/deployment/vagrant/singlenode-vagrant/ansible.cfg
----------------------------------------------------------------------
diff --git a/deployment/vagrant/singlenode-vagrant/ansible.cfg b/deployment/vagrant/singlenode-vagrant/ansible.cfg
deleted file mode 100644
index 7a41ec8..0000000
--- a/deployment/vagrant/singlenode-vagrant/ansible.cfg
+++ /dev/null
@@ -1,22 +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.
-#
-[defaults]
-host_key_checking = false
-library = ../../extra_modules
-roles_path = ../../roles
-pipelining = True
-log_path = ./ansible.log

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/.gitignore
----------------------------------------------------------------------
diff --git a/metron-deployment/.gitignore b/metron-deployment/.gitignore
new file mode 100644
index 0000000..4dd9982
--- /dev/null
+++ b/metron-deployment/.gitignore
@@ -0,0 +1,2 @@
+keys/
+.vagrant
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/README.md b/metron-deployment/README.md
new file mode 100644
index 0000000..38ffb34
--- /dev/null
+++ b/metron-deployment/README.md
@@ -0,0 +1,97 @@
+# Overview
+This set of playbooks can be used to deploy an Ambari-managed Hadoop cluster, Metron services, or both using ansible
+playbooks. These playbooks currently only target RHEL/CentOS 6.x operating
+systems. 
+
+## Prerequisites
+The following tools are required to run these scripts:
+
+- Maven - https://maven.apache.org/
+- Git - https://git-scm.com/
+- Ansible - http://www.ansible.com/ (version 2.0 or greater)
+
+Currently Metron must be built from source.  Before running these scripts perform the following steps:
+
+1. Clone the Metron git repository with `git clone git@github.com:apache/incubator-metron.git`
+2. Navigate to `incubator-metron/metron-streaming` and run `mvn clean package`
+
+These scripts depend on two files for configuration:
+  
+- hosts - declares which Ansible roles will be run on which hosts
+- group_vars/all - various configuration settings needed to install Metron
+
+Examples can be found in the
+`incubator-metron/deployment/inventory/metron_example` directory and are a good starting point.  Copy this directory 
+into `incubator-metron/deployment/inventory/` and rename it to your `project_name`.  More information about Ansible files and directory 
+structure can be found at http://docs.ansible.com/ansible/playbooks_best_practices.html.
+
+## Ambari
+The Ambari playbook will install a Hadoop cluster with all the services and configuration required by Metron.  This
+section can be skipped if installing Metron on a pre-existing cluster.  
+
+Currently, this playbook supports building a local development cluster running on one node but options for other types
+ of clusters will be added in the future.
+
+### Setting up your inventory
+Make sure to update the hosts file in `incubator-metron/deployment/inventory/project_name/hosts` or provide an 
+alternate inventory file when you launch the playbooks, including the 
+ssh user(s) and ssh keyfile location(s). These playbooks expect two 
+host groups:
+
+- ambari_master
+- ambari_slaves
+
+### Running the playbook
+This playbook will install the Ambari server on the ambari_master, install the ambari agents on 
+the ambari_slaves, and create a cluster in Ambari with a blueprint for the required 
+Metron components.
+
+Navigate to `incubator-metron/deployment/playbooks` and run: 
+`ansible-playbook -i ../inventory/project_name ambari_install.yml`
+
+## Metron
+The Metron playbook will gather the necessary cluster settings from Ambari and install the Metron services.
+
+### Setting up your inventory
+Edit the hosts file at `incubator-metron/deployment/inventory/project_name/hosts`.  Declare where which hosts the 
+Metron services will be installed on by updating these groups:
+
+- enrichment - submits the topology code to Storm and requires a storm client
+- search - host where Elasticsearch will be run
+- web - host where the Metron UI and underlying services will run
+- sensors - host where network data will be collected and published to Kafka
+
+The Metron topologies depend on Kafka topics and HBase tables being created beforehand.  Declare a host that has Kafka
+ and HBase clients installed by updating this group:
+
+- hadoop_client
+
+If only installing Metron, these groups can be ignored:
+
+- ambari_master
+- ambari_slaves
+
+### Configuring group variables
+The Metron Ansible scripts depend on a set of variables.  These variables can be found in the file at 
+`incubator-metron/deployment/inventory/project_name/group_vars/all`.  Edit the ambari* variables to match your Ambari
+instance and update the java_home variable to match the java path on your hosts.
+
+### Running the playbook
+Navigate to `incubator-metron/deployment/playbooks` and run: 
+`ansible-playbook -i ../inventory/project_name metron_install.yml`
+
+## Vagrant
+A VagrantFile is included and will install a working version of the entire Metron stack.  The following is required to
+run this:
+
+- Vagrant - https://www.vagrantup.com/
+- Hostmanager plugin for vagrant - Run `vagrant plugin install vagrant-hostmanager` on the machine where Vagrant is
+installed
+
+Navigate to `incubator-metron/deployment/vagrant/singlenode-vagrant` and run `vagrant up`.  This also provides a good
+example of how to run a full end-to-end Metron install.
+
+
+## TODO
+- migrate existing MySQL/GeoLite playbook
+- Support Ubuntu deployments

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/.gitignore
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/.gitignore b/metron-deployment/amazon-ec2/.gitignore
new file mode 100644
index 0000000..9c214d2
--- /dev/null
+++ b/metron-deployment/amazon-ec2/.gitignore
@@ -0,0 +1,4 @@
+*.pem
+*.secret
+*.log
+*.retry

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/README.md
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/README.md b/metron-deployment/amazon-ec2/README.md
new file mode 100644
index 0000000..b4dcc6f
--- /dev/null
+++ b/metron-deployment/amazon-ec2/README.md
@@ -0,0 +1,211 @@
+Apache Metron on Amazon EC2
+===========================
+
+This project fully automates the provisioning of Apache Metron on Amazon EC2 infrastructure.  Starting with only your Amazon EC2 credentials, this project will create a fully-functioning, end-to-end, multi-node cluster running Apache Metron.
+
+Getting Started
+---------------
+
+### Prerequisites
+
+The host that will drive the provisioning process will need to have [Ansible](https://github.com/ansible/ansible), Python and PIP installed.  In most cases, a development laptop serves this purpose just fine.  Also, install the Python library `boto` and its dependencies.  
+
+```
+pip install boto six
+```
+
+Ensure that an SSH key has been generated and stored at `~/.ssh/id_rsa.pub`.  In most cases this key will already exist and no further action will be needed.
+
+### Create User
+
+1. Use Amazon's [Identity and Access Management](https://console.aws.amazon.com/iam/) tool to create a user account by navigating to `Users > Create New User`.  
+
+2. Grant the user permission by clicking on `Permissions > Attach Policy` and add the following policies.
+
+  ```
+  AmazonEC2FullAccess
+  AmazonVPCFullAccess
+  ```
+
+3. Create an access key for the user by clicking on `Security Credentials > Create Access Key`.  Save the provided access key values in a safe place.  These values cannot be retrieved from the web console at a later time.
+
+4. Use the access key by exporting its values to the shell's environment.  This allows Ansible to authenticate with Amazon EC2.  For example:
+
+  ```
+  export AWS_ACCESS_KEY_ID="AKIAI6NRFEO27E5FFELQ"
+  export AWS_SECRET_ACCESS_KEY="vTDydWJQnAer7OWauUS150i+9Np7hfCXrrVVP6ed"
+  ```
+
+### Deploy Metron
+
+1. Ensure that Metron's streaming topology uber-jar has been built.
+
+  ```
+  cd ../../metron-streaming
+  mvn clean package -DskipTests
+  ```
+
+2. Start the Metron playbook.  A full Metron deployment can consume up to 60 minutes.  Grab a coffee, relax and practice mindfulness meditation.  If the playbook fails mid-stream for any reason, simply re-run it.  
+
+  ```
+  export EC2_INI_PATH=conf/ec2.ini
+  ansible-playbook -i ec2.py playbook.yml
+  ```
+
+### Explore Metron
+
+1. After the deployment has completed successfully, a message like the following will be displayed.  Navigate to the specified resources to explore your newly minted Apache Metron environment.
+
+  ```
+  TASK [debug] *******************************************************************
+  ok: [localhost] => {
+      "Success": [
+          "Apache Metron deployed successfully",
+          "   Metron  @  http://ec2-52-37-255-142.us-west-2.compute.amazonaws.com:5000",
+          "   Ambari  @  http://ec2-52-37-225-202.us-west-2.compute.amazonaws.com:8080",
+          "   Sensors @  ec2-52-37-225-202.us-west-2.compute.amazonaws.com on tap0",
+          "For additional information, see https://metron.incubator.apache.org/'"
+      ]
+  }
+  ```
+
+2. Each of the provisioned hosts will be accessible from the internet. Connecting to one over SSH as the user `centos` will not require a password as it will authenticate with the pre-defined SSH key.  
+
+  ```
+  ssh centos@ec2-52-91-215-174.compute-1.amazonaws.com
+  ```
+
+Advanced Usage
+--------------
+
+### Multiple Environments
+
+This process can support provisioning of multiple, isolated environments.  Simply change the `env` settings in `conf/defaults.yml`.  For example, you might provision separate development, test, and production environments.
+
+```
+env: metron-test
+```
+
+### Selective Provisioning
+
+To provision only subsets of the entire Metron deployment, Ansible tags can be specified.  For example, to only deploy the sensors on an Amazon EC2 environment, run the following command.
+
+```
+ansible-playbook -i ec2.py playbook.yml --tags "ec2,sensors"
+```
+
+### Custom SSH Key
+
+
+By default, the playbook will attempt to register your public SSH key `~/.ssh/id_rsa.pub` with each provisioned host.  This enables Ansible to communicate with each host using an SSH connection.  If would prefer to use another key simply add the path to the public key file to the `key_file` property in `conf/defaults.yml`.
+
+For example, generate a new SSH key for Metron that will be stored at `~/.ssh/my-metron-key`.
+
+```
+$ ssh-keygen -q -f ~/.ssh/my-metron-key
+Enter passphrase (empty for no passphrase):
+Enter same passphrase again:
+```
+
+Add the path to the newly created SSH public key to `conf/defaults.yml`.
+
+```
+key_file: ~/.ssh/metron-private-key.pub
+```
+
+Common Errors
+-------------
+
+### Error: 'No handler was ready to authenticate...Check your credentials'
+
+```
+TASK [Define keypair] **********************************************************
+failed: [localhost] => (item=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXbcb1AlWsEPP
+  r9jEFrn0yun3PYNidJ/...david@hasselhoff.com) => {"failed": true, "item": "ssh-r
+  sa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXbcb1AlWsEPPr9jEFr... david@hasselhoff.com",
+  "msg": "No handler was ready to authenticate. 1 handlers were checked.
+  ['HmacAuthV4Handler'] Check your credentials"}
+```
+
+#### Solution 1
+
+This occurs when Ansible does not have the correct AWS access keys.  The following commands must return a valid access key that is defined within Amazon's [Identity and Access Management](https://console.aws.amazon.com/iam/) console.  
+
+```
+$ echo $AWS_ACCESS_KEY_ID
+AKIAI6NRFEO27E5FFELQ
+
+$ echo $AWS_SECRET_ACCESS_KEY
+vTDydWJQnAer7OWauUS150i+9Np7hfCXrrVVP6ed
+```
+
+#### Solution 2
+
+This error can occur if you have exported the correct AWS access key, but you are using `sudo` to run the Ansible playbook.  Do not use the `sudo` command when running the Ansible playbook.
+
+### Error: 'OptInRequired: ... you need to accept terms and subscribe'
+
+```
+TASK [metron-test: Instantiate 1 host(s) as sensors,ambari_master,metron,ec2] **
+fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
+"Instance creation failed => OptInRequired: In order to use this AWS Marketplace
+product you need to accept terms and subscribe. To do so please visit
+http://aws.amazon.com/marketplace/pp?sku=6x5jmcajty9edm3f211pqjfn2"}
+to retry, use: --limit @playbook.retry
+```
+
+#### Solution
+
+Apache Metron uses the [official CentOS 6 Amazon Machine Image](https://aws.amazon.com/marketplace/pp?sku=6x5jmcajty9edm3f211pqjfn2) when provisioning hosts. Amazon requires that you accept certain terms and conditions when using any Amazon Machine Image (AMI).  Follow the link provided in the error message to accept the terms and conditions then re-run the playbook.  
+
+### Error: 'PendingVerification: Your account is currently being verified'
+
+```
+TASK [metron-test: Instantiate 1 host(s) as sensors,ambari_master,metron,ec2] **
+fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
+"Instance creation failed => PendingVerification: Your account is currently
+being verified. Verification normally takes less than 2 hours. Until your
+account is verified, you may not be able to launch additional instances or
+create additional volumes. If you are still receiving this message after more
+than 2 hours, please let us know by writing to aws-verification@amazon.com. We
+appreciate your patience."}
+to retry, use: --limit @playbook.retry
+```
+
+#### Solution
+
+This will occur if you are attempting to deploy Apache Metron using a newly created Amazon Web Services account.  Follow the advice of the message and wait until Amazon's verification process is complete.  Amazon has some additional [advice for dealing with this error and more](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html).
+
+> Your account is pending verification. Until the verification process is complete, you may not be able to carry out requests with this account. If you have questions, contact [AWS Support](http://console.aws.amazon.com/support/home#/).
+
+### Error: 'Instance creation failed => InstanceLimitExceeded'
+
+```
+TASK [metron-test: Instantiate 3 host(s) as search,metron,ec2] *****************
+fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg":
+"Instance creation failed => InstanceLimitExceeded: You have requested more
+instances (11) than your current instance limit of 10 allows for the specified
+instance type. Please visit http://aws.amazon.com/contact-us/ec2-request to
+request an adjustment to this limit."}
+to retry, use: --limit @playbook.retry
+```
+
+#### Solution
+
+This will occur if Apache Metron attempts to deploy more host instances than allowed by your account.  The total number of instances required for Apache Metron can be reduced by editing `deployment/amazon-ec/playbook.yml`.  Perhaps a better alternative is to request of Amazon that this limit be increased.  Amazon has some additional [advice for dealing with this error and more](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html).
+
+> You've reached the limit on the number of instances you can run concurrently. The limit depends on the instance type. For more information, see [How many instances can I run in Amazon EC2](http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2). If you need additional instances, complete the [Amazon EC2 Instance Request Form](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-ec2-instances).
+
+### Error: 'SSH encountered an unknown error during the connection'
+
+```
+TASK [setup] *******************************************************************
+fatal: [ec2-52-26-113-221.us-west-2.compute.amazonaws.com]: UNREACHABLE! => {
+  "changed": false, "msg": "SSH encountered an unknown error during the
+  connection. We recommend you re-run the command using -vvvv, which will enable
+  SSH debugging output to help diagnose the issue", "unreachable": true}
+```
+
+#### Solution
+
+This most often indicates that Ansible cannot connect to the host with the SSH key that it has access to.  This could occur if hosts are provisioned with one SSH key, but the playbook is executed subsequently with a different SSH key.  The issue can be addressed by either altering the `key_file` variable to point to the key that was used to provision the hosts or by simply terminating all hosts and re-running the playbook.

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/ansible.cfg
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/ansible.cfg b/metron-deployment/amazon-ec2/ansible.cfg
new file mode 100644
index 0000000..c8f26c4
--- /dev/null
+++ b/metron-deployment/amazon-ec2/ansible.cfg
@@ -0,0 +1,28 @@
+#
+#  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
+remote_user = centos
+forks = 20
+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/0117987e/metron-deployment/amazon-ec2/conf/defaults.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/conf/defaults.yml b/metron-deployment/amazon-ec2/conf/defaults.yml
new file mode 100644
index 0000000..76c4b98
--- /dev/null
+++ b/metron-deployment/amazon-ec2/conf/defaults.yml
@@ -0,0 +1,80 @@
+#
+#  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.
+#
+---
+# ec2
+env: metron-test
+region: us-west-2
+instance_type: m4.xlarge
+image: ami-05cf2265
+volume_type: standard
+key_name: metron-key
+xvda_vol_size: 50
+xvdb_vol_size: 100
+xvdc_vol_size: 100
+
+# ambari
+ambari_host: "{{ groups.ambari_master[0] }}"
+ambari_port: 8080
+ambari_user: admin
+ambari_password: admin
+cluster_type: small_cluster
+
+# hbase
+pcap_hbase_table: pcap
+tracker_hbase_table: access_tracker
+threatintel_hbase_table: threatintel
+enrichment_hbase_table: enrichment
+
+# kafka
+num_partitions: 3
+retention_in_gb: 25
+
+# metron variables
+metron_version: 0.1BETA
+java_home: /usr/jdk64/jdk1.8.0_40
+pcapservice_port: 8081
+
+# sensors
+sensor_test_mode: True
+sniff_interface: tap0
+snort_alert_csv_path: "/var/log/snort/alert.csv"
+pcap_replay: True
+pcap_replay_interface: tap0
+install_tap: True
+pcap_path: /opt/pcap-replay
+
+# data directories
+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: "/data2/kafka-log"
+elasticsearch_data_dir: "/data1/elasticsearch,/data2/elasticsearch"
+
+#Search
+install_elasticsearch: True
+install_solr: False
+elasticsearch_transport_port: 9300
+elasticsearch_network_interface: eth0
+elasticsearch_web_port: 9200

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/conf/ec2.ini
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/conf/ec2.ini b/metron-deployment/amazon-ec2/conf/ec2.ini
new file mode 100755
index 0000000..646ffaf
--- /dev/null
+++ b/metron-deployment/amazon-ec2/conf/ec2.ini
@@ -0,0 +1,105 @@
+#
+#  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.
+#
+
+#
+# Ansible EC2 external inventory script settings.
+#
+# Refer to https://github.com/ansible/ansible/blob/devel/contrib/inventory/ec2.ini
+# for additional information on available settings
+#
+
+[ec2]
+
+# AWS regions to make calls to. Set this to 'all' to make request to all regions
+# in AWS and merge the results together. Alternatively, set this to a comma
+# separated list of regions. E.g. 'us-east-1,us-west-1,us-west-2'
+regions = all
+
+# When generating inventory, Ansible needs to know how to address a server.
+# Each EC2 instance has a lot of variables associated with it. Here is the list:
+#   http://docs.pythonboto.org/en/latest/ref/ec2.html#module-boto.ec2.instance
+# Below are 2 variables that are used as the address of a server:
+#   - destination_variable
+#   - vpc_destination_variable
+
+# This is the normal destination variable to use. If you are running Ansible
+# from outside EC2, then 'public_dns_name' makes the most sense. If you are
+# running Ansible from within EC2, then perhaps you want to use the internal
+# address, and should set this to 'private_dns_name'. The key of an EC2 tag
+# may optionally be used; however the boto instance variables hold precedence
+# in the event of a collision.
+destination_variable = public_dns_name
+
+# For server inside a VPC, using DNS names may not make sense. When an instance
+# has 'subnet_id' set, this variable is used. If the subnet is public, setting
+# this to 'ip_address' will return the public IP address. For instances in a
+# private subnet, this should be set to 'private_ip_address', and Ansible must
+# be run from within EC2. The key of an EC2 tag may optionally be used; however
+# the boto instance variables hold precedence in the event of a collision.
+# WARNING: - instances that are in the private vpc, _without_ public ip address
+# will not be listed in the inventory until You set:
+# vpc_destination_variable = private_ip_address
+#vpc_destination_variable = ip_address
+vpc_destination_variable = public_dns_name
+
+# To exclude RDS instances from the inventory, uncomment and set to False.
+#rds = False
+
+# To exclude ElastiCache instances from the inventory, uncomment and set to False.
+#elasticache = False
+
+# API calls to EC2 are slow. For this reason, we cache the results of an API
+# call. Set this to the path you want cache files to be written to. Two files
+# will be written to this directory:
+#   - ansible-ec2.cache
+#   - ansible-ec2.index
+cache_path = ~/.ansible/tmp
+
+# The number of seconds a cache file is considered valid. After this many
+# seconds, a new API call will be made, and the cache file will be updated.
+# To disable the cache, set this value to 0
+cache_max_age = 300
+
+# Organize groups into a nested/hierarchy instead of a flat namespace.
+nested_groups = False
+
+# Replace - tags when creating groups to avoid issues with ansible
+replace_dash_in_groups = True
+
+# If set to true, any tag of the form "a,b,c" is expanded into a list
+# and the results are used to create additional tag_* inventory groups.
+expand_csv_tags = False
+
+# The EC2 inventory output can become very large. To manage its size,
+# configure which groups should be created.
+group_by_instance_id = True
+group_by_region = True
+group_by_availability_zone = True
+group_by_ami_id = True
+group_by_instance_type = True
+group_by_key_pair = True
+group_by_vpc_id = True
+group_by_security_group = True
+group_by_tag_keys = True
+group_by_tag_none = True
+group_by_route53_names = True
+group_by_rds_engine = True
+group_by_rds_parameter_group = True
+group_by_elasticache_engine = True
+group_by_elasticache_cluster = True
+group_by_elasticache_parameter_group = True
+group_by_elasticache_replication_group = True

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/playbook.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/playbook.yml b/metron-deployment/amazon-ec2/playbook.yml
new file mode 100644
index 0000000..16d281d
--- /dev/null
+++ b/metron-deployment/amazon-ec2/playbook.yml
@@ -0,0 +1,80 @@
+#
+#  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.
+#
+---
+#
+# instantiate the hosts on amazon ec2
+#
+- hosts: localhost
+  vars_files:
+    - conf/defaults.yml
+  tasks:
+    - include: tasks/create-keypair.yml
+    - include: tasks/create-vpc.yml
+    - include: tasks/create-open-inbound-security-group.yml
+    - include: tasks/create-open-outbound-security-group.yml
+    - include: tasks/create-hosts.yml host_count=1 host_type=sensors,ambari_master,metron,ec2
+    - include: tasks/create-hosts.yml host_count=4 host_type=ambari_slave,ec2
+    - include: tasks/create-hosts.yml host_count=1 host_type=ambari_slave,hadoop_client,metron,ec2
+    - include: tasks/create-hosts.yml host_count=1 host_type=ambari_slave,enrichment,metron,ec2
+    - include: tasks/create-hosts.yml host_count=2 host_type=search,metron,ec2
+    - include: tasks/create-hosts.yml host_count=1 host_type=web,mysql,metron,ec2
+  tags:
+    - ec2
+
+#
+# wait for all ec2 hosts to come up
+#
+- hosts: ec2
+  become: True
+  vars_files:
+    - conf/defaults.yml
+  gather_facts: False
+  tasks:
+    - include: tasks/check-hosts.yml
+  tags:
+    - ec2
+    - wait
+
+#
+# mount additional data volumes on all ec2 hosts
+#
+- hosts: ec2
+  become: True
+  vars_files:
+    - conf/defaults.yml
+  tasks:
+    - include: tasks/mount-volume.yml vol_src=/dev/xvdb vol_mnt=/data1
+    - include: tasks/mount-volume.yml vol_src=/dev/xvdc vol_mnt=/data2
+    - include: tasks/check-volume.yml vol_name=xvda vol_src=/dev/xvda vol_size={{ xvda_vol_size }}
+  tags:
+    - ec2
+
+#
+# build the metron cluster
+#
+- include: ../playbooks/metron_full_install.yml
+
+#
+# provisioning report
+#
+- hosts: localhost
+  vars_files:
+    - conf/defaults.yml
+  tasks:
+    - include: tasks/provisioning-report.yml
+  tags:
+    - ec2

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/check-hosts.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/check-hosts.yml b/metron-deployment/amazon-ec2/tasks/check-hosts.yml
new file mode 100644
index 0000000..1a4b2c7
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/check-hosts.yml
@@ -0,0 +1,20 @@
+#
+#  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.
+#
+---
+- name: Wait for connectivity to host(s)
+  local_action: wait_for host={{ inventory_hostname }} state=started timeout=300 delay=10
+  become: False

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/check-volume.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/check-volume.yml b/metron-deployment/amazon-ec2/tasks/check-volume.yml
new file mode 100644
index 0000000..b7ac63d
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/check-volume.yml
@@ -0,0 +1,26 @@
+#
+#  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.
+#
+---
+- name: "Check size of volume {{ vol_src }}"
+  shell: "lsblk | grep part | grep {{ vol_name }} | awk '{ print $4}' | sed 's/[^0-9]//g'"
+  register: current_size
+
+- name: "Status of {{ vol_src }} volume"
+  debug: msg="volume={{ vol_src }} current={{ current_size.stdout|int }} expected={{ vol_size|int }}"
+
+- include: expand-volume.yml vol_src={{ vol_src }}
+  when: current_size.stdout|int < vol_size|int

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/create-hosts.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/create-hosts.yml b/metron-deployment/amazon-ec2/tasks/create-hosts.yml
new file mode 100644
index 0000000..39bae3a
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/create-hosts.yml
@@ -0,0 +1,54 @@
+#
+#  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.
+#
+---
+- name: "{{ env }}: Instantiate {{ host_count }} host(s) as {{ host_type }}"
+  ec2:
+    region: "{{ region }}"
+    instance_type: "{{ instance_type }}"
+    image: "{{ image }}"
+    key_name: "{{ env }}-{{ key_name }}"
+    assign_public_ip: True
+    group: ["{{ env }}-vpc-all-inbound","{{ env }}-vpc-all-outbound"]
+    vpc_subnet_id: "{{ vpc.subnets[0].id }}"
+    instance_tags:
+      Name: "[{{ env }}] {{ host_type }}"
+      type: "{{ host_type }}"
+      env: "{{ env }}"
+    exact_count: "{{ host_count }}"
+    count_tag:
+      type: "{{ host_type }}"
+      env: "{{ env }}"
+    volumes:
+    - device_name: /dev/sda1
+      volume_type: "{{ volume_type }}"
+      volume_size: "{{ xvda_vol_size }}"
+      delete_on_termination: true
+    - device_name: /dev/xvdb
+      volume_type: "{{ volume_type }}"
+      volume_size: "{{ xvdb_vol_size }}"
+      delete_on_termination: true
+    - device_name: /dev/xvdc
+      volume_type: "{{ volume_type }}"
+      volume_size: "{{ xvdc_vol_size }}"
+      delete_on_termination: true
+    wait: yes
+  register: ec2
+
+- name: Add host(s) to a hostgroup
+  add_host: hostname={{ item.public_dns_name }} groups={{ host_type }}
+  with_items: "{{ ec2.tagged_instances }}"
+  when: item.public_dns_name is defined

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/create-keypair.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/create-keypair.yml b/metron-deployment/amazon-ec2/tasks/create-keypair.yml
new file mode 100644
index 0000000..693039e
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/create-keypair.yml
@@ -0,0 +1,29 @@
+#
+#  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.
+#
+---
+- set_fact:
+    the_key_file: "{{ key_file | default('~/.ssh/id_rsa.pub') }}"
+
+- name: Define keypair
+  ec2_key:
+    name: "{{ env }}-{{ key_name }}"
+    region: "{{ region }}"
+    key_material: "{{ item }}"
+  with_file: "{{ the_key_file }}"
+
+- debug: msg="Created keypair '{{ env }}-{{ key_name }}' from '{{ the_key_file }}'"
+

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/create-open-inbound-security-group.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/create-open-inbound-security-group.yml b/metron-deployment/amazon-ec2/tasks/create-open-inbound-security-group.yml
new file mode 100644
index 0000000..67e89c8
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/create-open-inbound-security-group.yml
@@ -0,0 +1,26 @@
+#
+#  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.
+#
+---
+- name: "{{ env }}: Define open inbound security group"
+  ec2_group:
+    name: "{{ env }}-vpc-all-inbound"
+    description: WARNING allow all inbound connections from the internet
+    region: "{{ region }}"
+    vpc_id: "{{ vpc_id }}"
+    rules:
+      - proto: all
+        cidr_ip: 0.0.0.0/0

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/create-open-outbound-security-group.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/create-open-outbound-security-group.yml b/metron-deployment/amazon-ec2/tasks/create-open-outbound-security-group.yml
new file mode 100644
index 0000000..53f505f
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/create-open-outbound-security-group.yml
@@ -0,0 +1,26 @@
+#
+#  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.
+#
+---
+- name: "{{ env }}: Define open outbound security group"
+  ec2_group:
+    name: "{{ env }}-vpc-all-outbound"
+    description: allow all outbound connections to the internet
+    region: "{{ region }}"
+    vpc_id: "{{ vpc_id }}"
+    rules_egress:
+      - proto: all
+        cidr_ip: 0.0.0.0/0

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/create-security-group.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/create-security-group.yml b/metron-deployment/amazon-ec2/tasks/create-security-group.yml
new file mode 100644
index 0000000..1c9b909
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/create-security-group.yml
@@ -0,0 +1,28 @@
+#
+#  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.
+#
+---
+- name: "{{ env }}: Define the {{ name }} security group"
+  ec2_group:
+    name: "{{ env }}-{{ name }}"
+    region: "{{ region }}"
+    description: "[{{env}}] {{ name }}/{{ proto }}/{{ port }}"
+    vpc_id: "{{ vpc_id }}"
+    rules:
+      - proto: "{{ proto }}"
+        from_port: "{{ port }}"
+        to_port: "{{ port }}"
+        cidr_ip: 0.0.0.0/0

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/create-vpc.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/create-vpc.yml b/metron-deployment/amazon-ec2/tasks/create-vpc.yml
new file mode 100644
index 0000000..7fc31e7
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/create-vpc.yml
@@ -0,0 +1,50 @@
+#
+#  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.
+#
+---
+  - name: "{{ env }}:  Create virtual private cloud"
+    ec2_vpc:
+      region: "{{ region }}"
+      internet_gateway: True
+      resource_tags:
+        Name: "{{ env }}-virtual-private-cloud"
+        env: "{{ env }}"
+      cidr_block: 10.0.0.0/16
+      dns_hostnames: yes
+      dns_support: yes
+      subnets:
+        - cidr: 10.0.0.0/24
+          resource_tags:
+            tier: web
+        - cidr: 10.0.1.0/24
+          resource_tags:
+            tier: hdp
+        - cidr: 10.0.2.0/24
+          resource_tags:
+            tier: sensors
+      route_tables:
+        - subnets:
+          - 10.0.0.0/24
+          - 10.0.1.0/24
+          - 10.0.2.0/24
+          routes:
+          - dest: 0.0.0.0/0
+            gw: igw
+    register: vpc
+
+  - name: "[{{ env }}] Created vpc with id={{ vpc.vpc_id }}"
+    set_fact:
+      vpc_id: "{{ vpc.vpc_id }}"

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/expand-volume.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/expand-volume.yml b/metron-deployment/amazon-ec2/tasks/expand-volume.yml
new file mode 100644
index 0000000..1e25e27
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/expand-volume.yml
@@ -0,0 +1,30 @@
+#
+#  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.
+#
+---
+- name: "Expand {{ vol_src }} volume"
+#          sectors  delete 1  new      primary  first    past mbr to end  bootable     write and exit
+  shell: "(echo u s; echo d 1; echo n; echo p; echo 1; echo 2048 ; echo ;echo a; echo 1; echo w) | fdisk {{ vol_src }} || true"
+  args:
+    executable: /bin/bash
+
+- name: Restart host(s)
+  command: shutdown -r now "Trigger volume changes"
+  async: 0
+  poll: 0
+  ignore_errors: True
+
+- include: tasks/check-hosts.yml

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/mount-volume.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/mount-volume.yml b/metron-deployment/amazon-ec2/tasks/mount-volume.yml
new file mode 100644
index 0000000..11259a5
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/mount-volume.yml
@@ -0,0 +1,32 @@
+#
+#  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.
+#
+---
+- name: Install xfsprogs
+  yum:
+    name: xfsprogs
+    state: present
+    update_cache: yes
+  register: result
+  until: result.rc == 0
+  retries: 5
+  delay: 10
+
+- name: Format data volume(s)
+  filesystem: fstype=xfs dev={{ vol_src }}
+
+- name: Mount the volume
+  mount: name={{ vol_mnt }} src={{ vol_src }} opts=noatime fstype=xfs state=mounted

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/amazon-ec2/tasks/provisioning-report.yml
----------------------------------------------------------------------
diff --git a/metron-deployment/amazon-ec2/tasks/provisioning-report.yml b/metron-deployment/amazon-ec2/tasks/provisioning-report.yml
new file mode 100644
index 0000000..d2abec0
--- /dev/null
+++ b/metron-deployment/amazon-ec2/tasks/provisioning-report.yml
@@ -0,0 +1,35 @@
+#
+#  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.
+#
+---
+- name: Known hosts groups
+  debug: var=groups
+
+- name: Sanity check Metron web
+  local_action: wait_for host="{{ groups.web[0] }}" port=5000 timeout=20
+
+- name: Sanity check Ambari web
+  local_action: wait_for host="{{ groups.ambari_master[0] }}" port="{{ ambari_port }}" timeout=20
+
+- set_fact:
+    Success:
+      - "Apache Metron deployed successfully"
+      - "   Metron  @  http://{{ groups.web[0] }}:5000"
+      - "   Ambari  @  http://{{ groups.ambari_master[0] }}:{{ ambari_port }}"
+      - "   Sensors @  {{ groups.sensors[0] }} on {{ sniff_interface }}"
+      - For additional information, see https://metron.incubator.apache.org/'
+
+- debug: var=Success

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/0117987e/metron-deployment/ansible.cfg
----------------------------------------------------------------------
diff --git a/metron-deployment/ansible.cfg b/metron-deployment/ansible.cfg
new file mode 100644
index 0000000..9b3916b
--- /dev/null
+++ b/metron-deployment/ansible.cfg
@@ -0,0 +1,23 @@
+#
+#  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
+
+[ssh_connection]
+control_path = %(directory)s/%%h-%%p-%%r
\ No newline at end of file