From ed5a8ca39c778ea85cca6bb5e99ec39869d7a051 Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Tue, 22 Nov 2016 16:06:04 +0000 Subject: Deployment for API JIRA: YARDSTICK-418 Set yardstick.conf in /etc/yardstick/ to config yardstick output way Set nginx config file Set nginx service and uwsgi service start when boot Change-Id: I5749042ae1b05feaf895cb0abffed7f9194b9cee Signed-off-by: chenjiankun --- api/api-prepare.sh | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ api/yardstick.ini | 16 +++++++++++++++ api/yardstick.sock | 0 docker/Dockerfile | 7 +++++++ install.sh | 3 +++ 5 files changed, 85 insertions(+) create mode 100755 api/api-prepare.sh create mode 100644 api/yardstick.ini create mode 100644 api/yardstick.sock diff --git a/api/api-prepare.sh b/api/api-prepare.sh new file mode 100755 index 000000000..712ad8361 --- /dev/null +++ b/api/api-prepare.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +# yardstick output config +output_config='/etc/yardstick/yardstick.conf' + +if [[ ! -e "${output_config}" ]];then + gateway_ip=$(ip route | grep default | awk '{print $3}') + echo "${gateway_ip}" + + install -d /etc/yardstick -m 0755 -o root + + cat << EOF >> "${output_config}" +[DEFAULT] +debug = True +dispatcher = influxdb + +[dispatcher_file] +file_path = /tmp/yardstick.out + +[dispatcher_http] +timeout = 5 +# target = http://127.0.0.1:8000/results + +[dispatcher_influxdb] +timeout = 5 +target = http://${gateway_ip}:8086 +db_name = yardstick +username = root +password = root +EOF +fi + +# nginx config +nginx_config='/etc/nginx/conf.d/yardstick.conf' + +if [[ ! -e "${nginx_config}" ]];then + + cat << EOF >> "${nginx_config}" +server { + listen 5000; + server_name localhost; + index index.htm index.html; + location / { + include uwsgi_params; + uwsgi_pass unix:///home/opnfv/repos/yardstick/api/yardstick.sock; + } +} +EOF +fi + +# nginx service start when boot +cat << EOF >> /root/.bashrc + +nginx_status=\$(service nginx status | grep not) +if [ -n "\${nginx_status}" ];then + service nginx restart + uwsgi -i /home/opnfv/repos/yardstick/api/yardstick.ini +fi +EOF diff --git a/api/yardstick.ini b/api/yardstick.ini new file mode 100644 index 000000000..535022960 --- /dev/null +++ b/api/yardstick.ini @@ -0,0 +1,16 @@ +[uwsgi] +master = true +debug = true +chdir = /home/opnfv/repos/yardstick/api +module = server +plugins = python +processes = 10 +threads = 5 +async = true +max-requests = 5000 +chmod-socket = 666 +callable = app +enable-threads = true +close-on-exec = 1 +daemonize=/home/kklt/kklt/api/uwsgi.log +socket = /home/opnfv/repos/yardstick/api/yardstick.sock diff --git a/api/yardstick.sock b/api/yardstick.sock new file mode 100644 index 000000000..e69de29bb diff --git a/docker/Dockerfile b/docker/Dockerfile index fba6e2067..36db2bb13 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -43,6 +43,9 @@ RUN apt-get update && apt-get install -y \ python-dev \ libxml2-dev \ libxslt1-dev \ + nginx \ + uwsgi \ + uwsgi-plugin-python \ python-setuptools && \ easy_install -U setuptools @@ -60,6 +63,10 @@ RUN cd ${YARDSTICK_REPO_DIR} && easy_install -U pip RUN cd ${YARDSTICK_REPO_DIR} && pip install -r requirements.txt RUN cd ${YARDSTICK_REPO_DIR} && pip install . +RUN ${YARDSTICK_REPO_DIR}/api/api-prepare.sh + +EXPOSE 5000 + ADD http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img /home/opnfv/images/ ADD http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img /home/opnfv/images/ diff --git a/install.sh b/install.sh index 80fc1e523..8fdd07569 100755 --- a/install.sh +++ b/install.sh @@ -13,6 +13,9 @@ apt-get update && apt-get install -y \ python-dev \ libxml2-dev \ libxslt1-dev \ + nginx \ + uswgi \ + uwsgi-plugin-python \ python-setuptools && \ easy_install -U setuptools -- cgit 1.2.3-korg