bugfix: haproxy for odl 35/8135/1
authorchenshuai@huawei.com <chenshuai@huawei.com>
Wed, 27 Jan 2016 10:15:40 +0000 (18:15 +0800)
committerchenshuai@huawei.com <chenshuai@huawei.com>
Wed, 27 Jan 2016 10:16:26 +0000 (18:16 +0800)
JIRA: COMPASS-288

Change-Id: Ifd5ce06237570bbc524958854a4859515cc098b0
Signed-off-by: chenshuai@huawei.com <chenshuai@huawei.com>
deploy/adapters/ansible/roles/odl_cluster/tasks/main.yml
deploy/adapters/ansible/roles/odl_cluster/tasks/odl_controller.yml
deploy/adapters/ansible/roles/odl_cluster/templates/haproxy-odl.cfg [new file with mode: 0755]
deploy/adapters/ansible/roles/odl_cluster/templates/jetty.xml [new file with mode: 0755]

index 3bb9d9b..5b3818b 100755 (executable)
@@ -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
index 6d43b9e..565e12e 100755 (executable)
 #  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
 #- 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/*;
 
 
 - 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 (executable)
index 0000000..1f3bc9e
--- /dev/null
@@ -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 (executable)
index 0000000..3ee3750
--- /dev/null
@@ -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>