summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/ves-agent/Dockerfile59
-rw-r--r--tools/ves-agent/start.sh43
-rw-r--r--tools/ves-setup.sh66
3 files changed, 120 insertions, 48 deletions
diff --git a/tools/ves-agent/Dockerfile b/tools/ves-agent/Dockerfile
new file mode 100644
index 0000000..4c37197
--- /dev/null
+++ b/tools/ves-agent/Dockerfile
@@ -0,0 +1,59 @@
+# Copyright 2017 AT&T Intellectual Property, Inc
+#
+# Licensed 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.
+#
+# What this is: A Dockerfile for building an OPFNV VES Agent container image.
+#
+# Status: this is a work in progress, under test.
+#
+
+FROM ubuntu:xenial
+
+MAINTAINER Bryan Sullivan
+
+RUN apt-get update
+RUN apt-get install -y apt-utils
+RUN apt-get -y upgrade
+RUN apt-get install -y git
+# Required for kafka
+RUN apt-get install -y default-jre
+RUN apt-get install -y zookeeperd
+RUN apt-get install -y python-pip
+RUN pip install kafka-python
+# Required for building collectd
+RUN apt-get install -y pkg-config
+
+RUN mkdir /opt/ves
+
+# Build Kafka client
+RUN apt-get install -y build-essential
+RUN apt-get install -y libpthread-stubs0-dev
+RUN apt-get install -y libssl-dev
+RUN apt-get install -y libsasl2-dev
+RUN apt-get install -y liblz4-dev
+RUN /bin/bash -c 'git clone --branch v0.9.5 \
+https://github.com/edenhill/librdkafka.git /opt/ves/librdkafka; \
+cd /opt/ves/librdkafka; ./configure --prefix=/usr; \
+make; make install'
+
+# Install VES Agent
+RUN pip install pyaml
+
+RUN git clone https://gerrit.opnfv.org/gerrit/barometer /opt/ves/barometer
+# Test patch
+RUN /bin/bash -c 'cd /opt/ves/barometer; \
+git fetch https://gerrit.opnfv.org/gerrit/barometer \
+refs/changes/27/47427/1 && git checkout FETCH_HEAD'
+
+COPY start.sh /opt/ves/start.sh
+ENTRYPOINT ["/bin/bash", "/opt/ves/start.sh"]
diff --git a/tools/ves-agent/start.sh b/tools/ves-agent/start.sh
new file mode 100644
index 0000000..1153ab1
--- /dev/null
+++ b/tools/ves-agent/start.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Copyright 2017 AT&T Intellectual Property, Inc
+#
+# Licensed 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.
+#
+#. What this is: Startup script for the OPNFV VES Agent running under docker.
+
+echo "$ves_kafka_host $ves_hostname" >>/etc/hosts
+
+cd /opt/ves/barometer/3rd_party/collectd-ves-app/ves_app
+cat <<EOF >ves_app_config.conf
+[config]
+Domain = $ves_host
+Port = $ves_port
+Path = $ves_path
+Topic = $ves_topic
+UseHttps = $ves_https
+Username = $ves_user
+Password = $ves_pass
+SendEventInterval = $ves_interval
+ApiVersion = $ves_version
+KafkaPort = $ves_kafka_port
+KafkaBroker = $ves_kafka_host
+EOF
+
+cat ves_app_config.conf
+echo "ves_mode=$ves_mode"
+python ves_app.py --events-schema=$ves_mode.yaml --loglevel DEBUG \
+ --config=ves_app_config.conf
+echo "*** ves_app.log ***"
+cat ves_app.log
+echo "*** /opt/ves/kafka_2.11-0.11.0.2/kafka.log ***"
+cat /opt/ves/kafka_2.11-0.11.0.2/kafka.log
diff --git a/tools/ves-setup.sh b/tools/ves-setup.sh
index c9f8ecd..9b37740 100644
--- a/tools/ves-setup.sh
+++ b/tools/ves-setup.sh
@@ -367,54 +367,24 @@ EOF
function setup_agent() {
log "setup VES agent"
- if [[ ! -f /.dockerenv ]]; then
- log "start the ves-agent container"
- sudo docker run -it -d -v /tmp/ves:/opt/ves --name=ves-agent \
- ubuntu:xenial /bin/bash
- log "execute the agent setup script in the container"
- sudo docker exec ves-agent /bin/bash /opt/ves/ves-setup.sh agent
- else
- common_prereqs
- log "setup the VES environment"
- source /opt/ves/ves_env.sh
- log "install agent prerequisites"
- pip install pyaml
-
- setup_kafka_client
-
- log "clone OPNFV Barometer"
- rm -rf /opt/ves/barometer
- git clone https://gerrit.opnfv.org/gerrit/barometer /opt/ves/barometer
- # Test patch
- cd /opt/ves/barometer
- git fetch https://gerrit.opnfv.org/gerrit/barometer refs/changes/27/47427/1 && git checkout FETCH_HEAD
-
- log "setup ves_app_config.conf"
- source /opt/ves/ves_env.sh
- cd /opt/ves/barometer/3rd_party/collectd-ves-app/ves_app
- cat <<EOF >ves_app_config.conf
-[config]
-Domain = $ves_host
-Port = $ves_port
-Path = $ves_path
-Topic = $ves_topic
-UseHttps = $ves_https
-Username = $ves_user
-Password = $ves_pass
-SendEventInterval = $ves_interval
-ApiVersion = $ves_version
-KafkaPort = $ves_kafka_port
-KafkaBroker = $ves_kafka_host
-EOF
-
-# log "add guest.yaml measurements to host.yaml (enables actual host data)"
-# tail --lines=+24 guest.yaml >>host.yaml
-
- log "start VES agent"
- echo "$ves_kafka_host $ves_hostname">>/etc/hosts
- nohup python ves_app.py --events-schema=$ves_mode.yaml --loglevel ERROR \
- --config=ves_app_config.conf > /opt/ves/ves_app.stdout.log 2>&1 &
- fi
+ source /tmp/ves/ves_env.sh
+ cd /tmp/ves/tools
+ sudo docker build -t ves-agent ves-agent
+ sudo docker run -it -d \
+ -e ves_mode=$ves_mode \
+ -e ves_host=$ves_host \
+ -e ves_port=$ves_port \
+ -e ves_path=$ves_path \
+ -e ves_topic=$ves_topic \
+ -e ves_https=$ves_https \
+ -e ves_user=$ves_user \
+ -e ves_pass=$ves_pass \
+ -e ves_interval=$ves_interval \
+ -e ves_version=$ves_version \
+ -e ves_kafka_port=$ves_kafka_port \
+ -e ves_kafka_host=$ves_kafka_host \
+ -e ves_hostname=$ves_hostname \
+ --name ves-agent ves-agent
}
function setup_collector() {