summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/ansible/roles/odl_cluster
diff options
context:
space:
mode:
authorchenshuai@huawei.com <chenshuai@huawei.com>2016-01-27 18:15:40 +0800
committerchenshuai@huawei.com <chenshuai@huawei.com>2016-01-27 18:16:26 +0800
commit9d9b4c1aaaee795e93b07331645ed8589152d03e (patch)
treea4e16e0f51cbf70ad83edd11282f5359130b42da /deploy/adapters/ansible/roles/odl_cluster
parent16fe1e73e271a6b23108c18f0fd268d1f722a2cd (diff)
bugfix: haproxy for odl
JIRA: COMPASS-288 Change-Id: Ifd5ce06237570bbc524958854a4859515cc098b0 Signed-off-by: chenshuai@huawei.com <chenshuai@huawei.com>
Diffstat (limited to 'deploy/adapters/ansible/roles/odl_cluster')
-rwxr-xr-xdeploy/adapters/ansible/roles/odl_cluster/tasks/main.yml3
-rwxr-xr-xdeploy/adapters/ansible/roles/odl_cluster/tasks/odl_controller.yml15
-rwxr-xr-xdeploy/adapters/ansible/roles/odl_cluster/templates/haproxy-odl.cfg24
-rwxr-xr-xdeploy/adapters/ansible/roles/odl_cluster/templates/jetty.xml106
4 files changed, 145 insertions, 3 deletions
diff --git a/deploy/adapters/ansible/roles/odl_cluster/tasks/main.yml b/deploy/adapters/ansible/roles/odl_cluster/tasks/main.yml
index 3bb9d9be..5b3818bb 100755
--- a/deploy/adapters/ansible/roles/odl_cluster/tasks/main.yml
+++ b/deploy/adapters/ansible/roles/odl_cluster/tasks/main.yml
@@ -9,6 +9,3 @@
include: openvswitch.yml
when: groups['odl']|length !=0 and inventory_hostname not in groups['odl']
-- name: Wait 5 minutes after odl deployment
- shell: sleep 300
- when: groups['odl']|length !=0
diff --git a/deploy/adapters/ansible/roles/odl_cluster/tasks/odl_controller.yml b/deploy/adapters/ansible/roles/odl_cluster/tasks/odl_controller.yml
index 6d43b9ef..565e12e4 100755
--- a/deploy/adapters/ansible/roles/odl_cluster/tasks/odl_controller.yml
+++ b/deploy/adapters/ansible/roles/odl_cluster/tasks/odl_controller.yml
@@ -83,6 +83,10 @@
# notify:
# - restart odl service
+- name: create jetty config
+ template:
+ src: jetty.xml
+ dest: "{{ odl_home }}/etc/jetty.xml"
- name: install odl pip packages
pip: name={{ item }} state=present
@@ -146,6 +150,14 @@
#- name: copy Jolokia-OSGi jar config
# copy: src=roles/odl_cluster/templates/jolokia-osgi-1.1.5.jar dest="{{ odl_home }}/system/org/jolokia/jolokia-osgi/1.1.5/"
+- name: create odl haproxy config file
+ template:
+ src: haproxy-odl.cfg
+ dest: "/opt/haproxy-odl.cfg"
+
+- name: add odl haproxy configuration to haproxy.cfg
+ shell: "cat /opt/haproxy-odl.cfg >> /etc/haproxy/haproxy.cfg"
+
- name: remove karaf data directory
shell: rm -rf {{ odl_home }}/data/*;
@@ -228,3 +240,6 @@
- name: restart neutron-metadata-agent server
service: name=neutron-metadata-agent state=restarted
+
+- name: restart haproxy server
+ service: name=haproxy state=restarted
diff --git a/deploy/adapters/ansible/roles/odl_cluster/templates/haproxy-odl.cfg b/deploy/adapters/ansible/roles/odl_cluster/templates/haproxy-odl.cfg
new file mode 100755
index 00000000..1f3bc9ed
--- /dev/null
+++ b/deploy/adapters/ansible/roles/odl_cluster/templates/haproxy-odl.cfg
@@ -0,0 +1,24 @@
+listen odl-rest-api-1
+ bind {{ internal_vip.ip }}:8080
+ bind {{ public_vip.ip }}:8080
+ mode http
+ balance source
+ option httplog
+ option nolinger
+ timeout client 3m
+ timeout server 3m
+{% for host,ip in haproxy_hosts.items() %}
+ server {{ host }} {{ ip }}:8080 weight 1 check inter 2000 rise 2 fall 3
+{% endfor %}
+
+listen odl-rest-api-2
+ bind {{ internal_vip.ip }}:8181
+ bind {{ public_vip.ip }}:8181
+ mode http
+ balance source
+ option httplog
+ timeout client 3m
+ timeout server 3m
+{% for host,ip in haproxy_hosts.items() %}
+ server {{ host }} {{ ip }}:8181 weight 1 check inter 2000 rise 2 fall 3
+{% endfor %}
diff --git a/deploy/adapters/ansible/roles/odl_cluster/templates/jetty.xml b/deploy/adapters/ansible/roles/odl_cluster/templates/jetty.xml
new file mode 100755
index 00000000..3ee37509
--- /dev/null
+++ b/deploy/adapters/ansible/roles/odl_cluster/templates/jetty.xml
@@ -0,0 +1,106 @@
+<?xml version="1.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.
+-->
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//
+DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+<Configure class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Set connectors -->
+ <!-- =========================================================== -->
+ <!-- One of each type! -->
+ <!-- =========================================================== -->
+
+ <!-- Use this connector for many frequently idle connections and for
+ threadless continuations. -->
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
+ <Set name="host">
+ <Property name="jetty.host" default="{{ internal_ip }}"/>
+ </Set>
+ <Set name="port">
+ <Property name="jetty.port" default="8181" />
+ </Set>
+ <Set name="maxIdleTime">300000</Set>
+ <Set name="Acceptors">2</Set>
+ <Set name="statsOn">false</Set>
+ <Set name="confidentialPort">8543</Set>
+ <Set name="lowResourcesConnections">20000</Set>
+ <Set name="lowResourcesMaxIdleTime">5000</Set>
+ </New>
+ </Arg>
+ </Call>
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
+ <Set name="host">
+ <Property name="jetty.host" default="{{ internal_ip }}"/>
+ </Set>
+ <Set name="port">
+ <Property name="jetty.port" default="8080" />
+ </Set>
+ <Set name="maxIdleTime">300000</Set>
+ <Set name="Acceptors">2</Set>
+ <Set name="statsOn">false</Set>
+ <Set name="confidentialPort">8443</Set>
+ <Set name="lowResourcesConnections">20000</Set>
+ <Set name="lowResourcesMaxIdleTime">5000</Set>
+ </New>
+ </Arg>
+ </Call>
+
+ <!-- =========================================================== -->
+ <!-- Configure Authentication Realms -->
+ <!-- Realms may be configured for the entire server here, or -->
+ <!-- they can be configured for a specific web app in a context -->
+ <!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
+ <!-- example). -->
+ <!-- =========================================================== -->
+ <Call name="addBean">
+ <Arg>
+ <New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
+ <Set name="name">karaf</Set>
+ <Set name="loginModuleName">karaf</Set>
+ <Set name="roleClassNames">
+ <Array type="java.lang.String">
+ <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
+ </Item>
+ </Array>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+ <Call name="addBean">
+ <Arg>
+ <New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
+ <Set name="name">default</Set>
+ <Set name="loginModuleName">karaf</Set>
+ <Set name="roleClassNames">
+ <Array type="java.lang.String">
+ <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
+ </Item>
+ </Array>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+
+</Configure>