diff options
author | chenshuai@huawei.com <chenshuai@huawei.com> | 2016-01-27 18:15:40 +0800 |
---|---|---|
committer | chenshuai@huawei.com <chenshuai@huawei.com> | 2016-01-27 18:16:26 +0800 |
commit | 9d9b4c1aaaee795e93b07331645ed8589152d03e (patch) | |
tree | a4e16e0f51cbf70ad83edd11282f5359130b42da /deploy/adapters/ansible/roles/odl_cluster | |
parent | 16fe1e73e271a6b23108c18f0fd268d1f722a2cd (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')
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> |