From 6b168a9b8c44c141f71c2eab7e51973f3523f912 Mon Sep 17 00:00:00 2001 From: "chenshuai@huawei.com" Date: Sat, 16 Jan 2016 01:35:52 +0800 Subject: bugfix: workaround for opencontrail JIRA: COMPASS-271 Change-Id: Ib4bbc0536ed8877f5e38150e5d710578345ac56b Signed-off-by: chenshuai@huawei.com --- .../tasks/install/install-interface.yml | 12 ++--- .../ansible/roles/open-contrail/tasks/main.yml | 7 ++- .../tasks/provision/provision-add-nodes.yml | 9 ++++ .../tasks/provision/provision-compute.yml | 54 ++++++++++++---------- .../tasks/provision/provision-tsn.yml | 22 ++++----- .../provision/contrail-analytics-api-conf.j2 | 4 +- .../provision/contrail-api-supervisord-conf.j2 | 2 +- .../contrail-discovery-supervisord-conf.j2 | 2 +- .../templates/provision/contrail-schema-conf.j2 | 4 +- .../provision/contrail-vrouter-agent-conf.j2 | 8 ++-- .../templates/provision/haproxy-contrail-cfg.j2 | 6 +-- .../ansible/roles/open-contrail/vars/main.yml | 16 ++++++- 12 files changed, 86 insertions(+), 60 deletions(-) (limited to 'deploy') diff --git a/deploy/adapters/ansible/roles/open-contrail/tasks/install/install-interface.yml b/deploy/adapters/ansible/roles/open-contrail/tasks/install/install-interface.yml index 4e914749..4f21d50a 100755 --- a/deploy/adapters/ansible/roles/open-contrail/tasks/install/install-interface.yml +++ b/deploy/adapters/ansible/roles/open-contrail/tasks/install/install-interface.yml @@ -8,15 +8,15 @@ dest: "/etc/network/interfaces" line: "{{ item }}" with_items: - - "auto {{ contrail_device }}" - - "iface {{ contrail_device }} inet static" - - "\taddress {{ contrail_address }}" - - "\tnetmask {{ contrail_netmask }}" + - "auto {{ contrail_vhost_device }}" + - "iface {{ contrail_vhost_device }} inet static" + - "\taddress {{ contrail_vhost_address }}" + - "\tnetmask {{ contrail_vhost_netmask }}" - name: "set interface address" # sudo: True - shell: "ifconfig {{ contrail_device }} {{ contrail_address }} netmask {{ contrail_netmask }}" + shell: "ifconfig {{ contrail_vhost_device }} {{ contrail_vhost_address }} netmask {{ contrail_vhost_netmask }}" - name: "up interface" # sudo: True - shell: "ifconfig {{ contrail_device }} up" + shell: "ifconfig {{ contrail_vhost_device }} up" diff --git a/deploy/adapters/ansible/roles/open-contrail/tasks/main.yml b/deploy/adapters/ansible/roles/open-contrail/tasks/main.yml index e3e1b3e5..d2c69600 100755 --- a/deploy/adapters/ansible/roles/open-contrail/tasks/main.yml +++ b/deploy/adapters/ansible/roles/open-contrail/tasks/main.yml @@ -37,10 +37,9 @@ # or inventory_hostname in groups['opencontrail_tsn'] -# Compass adapter: use OpenStack management network "mgmt" -#- name: Install interface on all hosts for Open Contrail -# include: install/install-interface.yml -# when: groups['opencontrail_control']|length !=0 +- name: Install interface on all hosts for Open Contrail + include: install/install-interface.yml + when: groups['opencontrail_control']|length !=0 #- include: install/install-common.yml #- include: install/install-kernel.yml diff --git a/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-add-nodes.yml b/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-add-nodes.yml index b8c07ddd..a9f34ed6 100755 --- a/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-add-nodes.yml +++ b/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-add-nodes.yml @@ -2,6 +2,15 @@ #- hosts: config # sudo: yes # tasks: + +- name: "recover rabbitmq-server service script" + shell: if [ ! -f "\/etc\/init.d\/rabbitmq-server.initd.supervisord" ] ; then mv /etc/init.d/rabbitmq-server.initd.supervisord /home/rabbitmq-server.initd.supervisord; mv /etc/init.d/rabbitmq-server /home/rabbit-server; mv /etc/init.d/rabbitmq-server.backup /etc/init.d/rabbitmq-server; fi + +- name: "restart rabbitmq-server" + service: + name: "rabbitmq-server" + state: "restarted" + - name: "provision config node" shell: "python /opt/contrail/utils/provision_config_node.py --api_server_ip {{ contrail_haproxy_address }} --admin_user {{ contrail_admin_user }} --admin_password {{ contrail_admin_password }} --admin_tenant_name admin --oper add --host_name {{ ansible_hostname }} --host_ip {{ contrail_address }}" when: inventory_hostname in groups['opencontrail_config'] diff --git a/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-compute.yml b/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-compute.yml index 495ba6b2..4fbff0b7 100755 --- a/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-compute.yml +++ b/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-compute.yml @@ -38,7 +38,7 @@ - name: "set contrail device name for ansible" set_fact: - contrail_ansible_device: "ansible_{{ contrail_device }}" + contrail_ansible_device: "ansible_{{ contrail_vhost_device }}" - name: "fix up default pmac" template: @@ -52,7 +52,7 @@ lineinfile: dest: "/etc/contrail/agent_param" regexp: "dev=__DEVICE__" - line: "dev={{ contrail_device }}" + line: "dev={{ contrail_vhost_device }}" - name: "fix up contrail vrouter agent config" template: @@ -62,9 +62,9 @@ - name: "delete lines for contrail interface" shell: "{{ item }}" with_items: - - "sed -e '/auto {{ contrail_device }}/,$d' /etc/network/interfaces > /tmp/contrail-interfaces-top" - - "sed -n -e '/auto {{ contrail_device }}/,$p' /etc/network/interfaces > /tmp/contrail-interfaces-bottom" - - "sed -i -e '/auto {{ contrail_device }}/d' /tmp/contrail-interfaces-bottom" + - "sed -e '/auto {{ contrail_vhost_device }}/,$d' /etc/network/interfaces > /tmp/contrail-interfaces-top" + - "sed -n -e '/auto {{ contrail_vhost_device }}/,$p' /etc/network/interfaces > /tmp/contrail-interfaces-bottom" + - "sed -i -e '/auto {{ contrail_vhost_device }}/d' /tmp/contrail-interfaces-bottom" - "sed -i -n -e '/auto .*/,$p' /tmp/contrail-interfaces-bottom" - "cat /tmp/contrail-interfaces-top /tmp/contrail-interfaces-bottom > /etc/network/interfaces" @@ -77,22 +77,28 @@ - "sed -i -n -e '/auto .*/,$p' /tmp/contrail-interfaces-bottom" - "cat /tmp/contrail-interfaces-top /tmp/contrail-interfaces-bottom > /etc/network/interfaces" -#- name: "configure interface" -# lineinfile: -# dest: "/etc/network/interfaces" -# line: "{{ item }}" -# state: "present" -# with_items: -# - "auto {{ contrail_device }}" -# - "iface {{ contrail_device }} inet manual" -# - "\tpre-up ifconfig {{ contrail_device }} up" -# - "\tpost-down ifconfig {{ contrail_device }} down" -# - "auto vhost0" -# - "iface vhost0 inet static" -# - "\tpre-up /opt/contrail/bin/if-vhost0" -# - "\tnetwork_name application" -# - "\taddress {{ contrail_address }}" -# - "\tnetmask {{ contrail_netmask }}" +- name: "configure interface" + lineinfile: + dest: "/etc/network/interfaces" + line: "{{ item }}" + state: "present" + with_items: + - "auto {{ contrail_vhost_device }}" + - "iface {{ contrail_vhost_device }} inet manual" + - "\tpre-up ifconfig {{ contrail_vhost_device }} up" + - "\tpost-down ifconfig {{ contrail_vhost_device }} down" + - "auto vhost0" + - "iface vhost0 inet static" + - "\tpre-up /opt/contrail/bin/if-vhost0" + - "\tnetwork_name application" + - "\taddress {{ contrail_vhost_address }}" + - "\tnetmask {{ contrail_vhost_netmask }}" + +- name: "load vrouter driver" + command: su -s /bin/sh -c "insmod /var/lib/dkms/vrouter/2.21/build/vrouter.ko" + +- name: "run vhost0 script" + command: su -s /bin/sh -c "/opt/contrail/bin/if-vhost0" - name: "delete temporary files" file: @@ -164,9 +170,9 @@ name: "nova-compute" state: "restarted" -#- name: "add vrouter to contrail" -# shell: "python /opt/contrail/utils/provision_vrouter.py --api_server_ip {{ contrail_haproxy_address }} --admin_user {{ contrail_admin_user }} --admin_password {{ contrail_admin_password }} --admin_tenant_name admin --openstack_ip {{ contrail_keystone_address }} --oper add --host_name {{ ansible_hostname }} --host_ip {{ contrail_address }}" -# +- name: "add vrouter to contrail" + shell: "python /opt/contrail/utils/provision_vrouter.py --api_server_ip {{ contrail_haproxy_address }} --admin_user {{ contrail_admin_user }} --admin_password {{ contrail_admin_password }} --admin_tenant_name admin --openstack_ip {{ contrail_keystone_address }} --oper add --host_name {{ ansible_hostname }} --host_ip {{ contrail_address }}" + #- name: "reboot Server" # shell: "shutdown -r now" # async: 0 diff --git a/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-tsn.yml b/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-tsn.yml index 33ad6507..7c46f11a 100755 --- a/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-tsn.yml +++ b/deploy/adapters/ansible/roles/open-contrail/tasks/provision/provision-tsn.yml @@ -17,7 +17,7 @@ - name: "set contrail device name for ansible" set_fact: - contrail_ansible_device: "ansible_{{ contrail_device }}" + contrail_ansible_device: "ansible_{{ contrail_vhost_device }}" - name: "fix up default pmac" template: @@ -31,7 +31,7 @@ lineinfile: dest: "/etc/contrail/agent_param" regexp: "dev=__DEVICE__" - line: "dev={{ contrail_device }}" + line: "dev={{ contrail_vhost_device }}" - name: "set vrouter agent mode" set_fact: @@ -45,9 +45,9 @@ - name: "delete lines for contrail interface" shell: "{{ item }}" with_items: - - "sed -e '/auto {{ contrail_device }}/,$d' /etc/network/interfaces > /tmp/contrail-interfaces-top" - - "sed -n -e '/auto {{ contrail_device }}/,$p' /etc/network/interfaces > /tmp/contrail-interfaces-bottom" - - "sed -i -e '/auto {{ contrail_device }}/d' /tmp/contrail-interfaces-bottom" + - "sed -e '/auto {{ contrail_vhost_device }}/,$d' /etc/network/interfaces > /tmp/contrail-interfaces-top" + - "sed -n -e '/auto {{ contrail_vhost_device }}/,$p' /etc/network/interfaces > /tmp/contrail-interfaces-bottom" + - "sed -i -e '/auto {{ contrail_vhost_device }}/d' /tmp/contrail-interfaces-bottom" - "sed -i -n -e '/auto .*/,$p' /tmp/contrail-interfaces-bottom" - "cat /tmp/contrail-interfaces-top /tmp/contrail-interfaces-bottom > /etc/network/interfaces" @@ -66,16 +66,16 @@ line: "{{ item }}" state: "present" with_items: - - "auto {{ contrail_device }}" - - "iface {{ contrail_device }} inet manual" - - "\tpre-up ifconfig {{ contrail_device }} up" - - "\tpost-down ifconfig {{ contrail_device }} down" + - "auto {{ contrail_vhost_device }}" + - "iface {{ contrail_vhost_device }} inet manual" + - "\tpre-up ifconfig {{ contrail_vhost_device }} up" + - "\tpost-down ifconfig {{ contrail_vhost_device }} down" - "auto vhost0" - "iface vhost0 inet static" - "\tpre-up /opt/contrail/bin/if-vhost0" - "\tnetwork_name application" - - "\taddress {{ contrail_address }}" - - "\tnetmask {{ contrail_netmask }}" + - "\taddress {{ contrail_vhost_address }}" + - "\tnetmask {{ contrail_vhost_netmask }}" - name: "delete temporary files" file: diff --git a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-analytics-api-conf.j2 b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-analytics-api-conf.j2 index 6e2bcce3..3ac84c33 100755 --- a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-analytics-api-conf.j2 +++ b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-analytics-api-conf.j2 @@ -1,12 +1,12 @@ [DEFAULTS] host_ip = {{ contrail_address }} rest_api_ip = {{ contrail_haproxy_address }} -rest_api_port = 9081 +rest_api_port = 8081 #cassandra_server_list = {% for cur_host in groups['opencontrail_database'] %}{{ ip_settings[cur_host]['mgmt']['ip'] }}:9160{% if not loop.last %} {% endif %}{% endfor %} #chenshuai: This kind of written is also correct, but the following is better, this as record cassandra_server_list = {% for cur_host in groups['opencontrail_database'] %}{{ haproxy_hosts[cur_host] }}:9160{% if not loop.last %} {% endif %}{% endfor %} -collectors = {{ contrail_address }}:8086 +collectors = {{ contrail_haproxy_address }}:8086 http_server_port = 8090 log_file = /var/log/contrail/contrail-analytics-api.log log_level = SYS_NOTICE diff --git a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-api-supervisord-conf.j2 b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-api-supervisord-conf.j2 index 94da3d71..ad3e0387 100755 --- a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-api-supervisord-conf.j2 +++ b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-api-supervisord-conf.j2 @@ -1,5 +1,5 @@ [program:contrail-api] -command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --listen_port 910%(process_num)01d --worker_id %(process_num)s +command=/usr/bin/contrail-api --conf_file /etc/contrail/contrail-api.conf --conf_file /etc/contrail/contrail-keystone-auth.conf --worker_id %(process_num)s numprocs=1 process_name=%(process_num)s redirect_stderr=true diff --git a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-discovery-supervisord-conf.j2 b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-discovery-supervisord-conf.j2 index 5f0a698d..541568de 100755 --- a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-discovery-supervisord-conf.j2 +++ b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-discovery-supervisord-conf.j2 @@ -1,5 +1,5 @@ [program:contrail-discovery] -command=/usr/bin/contrail-discovery --conf_file /etc/contrail/contrail-discovery.conf --listen_port 911%(process_num)01d --worker_id %(process_num)s +command=/usr/bin/contrail-discovery --conf_file /etc/contrail/contrail-discovery.conf --worker_id %(process_num)s numprocs=1 process_name=%(process_num)s redirect_stderr=true diff --git a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-schema-conf.j2 b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-schema-conf.j2 index cf5dead3..46995f75 100755 --- a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-schema-conf.j2 +++ b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-schema-conf.j2 @@ -1,11 +1,11 @@ [DEFAULTS] #ifmap_server_ip = {{ ip_settings[haproxy_hosts.keys()[0]]['mgmt']['ip'] }} -ifmap_server_ip = {{ haproxy_hosts.values()[0] }} +ifmap_server_ip = {{ contrail_haproxy_address }} ifmap_server_port = 8443 ifmap_username = schema-transformer ifmap_password = schema-transformer #api_server_ip = {{ ip_settings[haproxy_hosts.keys()[0]]['mgmt']['ip'] }} -api_server_ip = {{ haproxy_hosts.values()[0] }} +api_server_ip = {{ contrail_haproxy_address }} api_server_port = 8082 zk_server_ip = {% for cur_host in groups['opencontrail_database'] %}{{ haproxy_hosts[cur_host] }}:2181{% if not loop.last %}, {% endif %}{% endfor %} diff --git a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-vrouter-agent-conf.j2 b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-vrouter-agent-conf.j2 index 207509e5..78b31775 100755 --- a/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-vrouter-agent-conf.j2 +++ b/deploy/adapters/ansible/roles/open-contrail/templates/provision/contrail-vrouter-agent-conf.j2 @@ -66,7 +66,7 @@ platform = default physical_interface_address = # MAC address of device used by dpdk -physical_interface_mac = {{ hostvars[inventory_hostname][contrail_ansible_device]['macaddress'] }} +physical_interface_mac = {{ hostvars[inventory_hostname][contrail_device]['macaddress'] }} [DISCOVERY] # If COLLECTOR and/or CONTROL-NODE and/or DNS is not specified this section is @@ -118,7 +118,7 @@ vmware_physical_interface = [NETWORKS] # control-channel IP address used by WEB-UI to connect to vnswad to fetch # required information (Optional) -control_network_ip = {{ contrail_address }} +control_network_ip = {{ contrail_haproxy_address }} [VIRTUAL-HOST-INTERFACE] # Everything in this section is mandatory @@ -127,10 +127,10 @@ control_network_ip = {{ contrail_address }} name = vhost0 # IP address and prefix in ip/prefix_len format -ip = {{ contrail_address }}/{{ contrail_prefixlen }} +ip = {{ contraili_vhost_address }}/{{ contrail_prefixlen }} # Gateway IP address for virtual host -gateway = {{ contrail_gateway }} +gateway = {{ contrail_vhost_gateway }} # Physical interface name to which virtual host interface maps to physical_interface = {{ contrail_device }} diff --git a/deploy/adapters/ansible/roles/open-contrail/templates/provision/haproxy-contrail-cfg.j2 b/deploy/adapters/ansible/roles/open-contrail/templates/provision/haproxy-contrail-cfg.j2 index 435a4f5c..01196369 100755 --- a/deploy/adapters/ansible/roles/open-contrail/templates/provision/haproxy-contrail-cfg.j2 +++ b/deploy/adapters/ansible/roles/open-contrail/templates/provision/haproxy-contrail-cfg.j2 @@ -29,7 +29,7 @@ listen contrail-api timeout client 3m timeout server 3m {% for host,ip in haproxy_hosts.items() %} - server {{ host }} {{ ip }}:9100 weight 1 check inter 2000 rise 2 fall 3 + server {{ host }} {{ ip }}:8082 weight 1 check inter 2000 rise 2 fall 3 {% endfor %} @@ -41,7 +41,7 @@ listen contrail-discovery balance roundrobin option nolinger {% for host,ip in haproxy_hosts.items() %} - server {{ host }} {{ ip }}:9110 weight 1 check inter 2000 rise 2 fall 3 + server {{ host }} {{ ip }}:5998 weight 1 check inter 2000 rise 2 fall 3 {% endfor %} @@ -56,7 +56,7 @@ listen contrail-analytics-api tcp-check connect port 6379 default-server error-limit 1 on-error mark-down {% for host,ip in haproxy_hosts.items() %} - server {{ host }} {{ ip }}:9081 weight 1 check inter 2000 rise 2 fall 5 + server {{ host }} {{ ip }}:8081 weight 1 check inter 2000 rise 2 fall 5 {% endfor %} diff --git a/deploy/adapters/ansible/roles/open-contrail/vars/main.yml b/deploy/adapters/ansible/roles/open-contrail/vars/main.yml index 4c8b73a7..c281f5a5 100755 --- a/deploy/adapters/ansible/roles/open-contrail/vars/main.yml +++ b/deploy/adapters/ansible/roles/open-contrail/vars/main.yml @@ -10,8 +10,8 @@ contrail_admin_password: "console" # network infor adapter for compass -contrail_device: "mgmt" contrail_address: "{{ internal_ip }}" +#contrail_device: # compass openstack device contrail_netmask: "255.255.255.0" #contrail_gateway: "10.84.50.254" contrail_gateway: @@ -19,6 +19,19 @@ contrail_gateway: +########################################################### +### we make an independent NIC for OpenContrail vRouter ### +########################################################### +contrail_vhost_device: "eth2" +contrail_vhost_address: +contrail_vhost_gateway: +########################################################### +########################################################### +########################################################### + + + + contrail_keepalived: no #contrail_haproxy_address: "10.0.0.22" # 10.0.0.80 contrail_haproxy_address: "{{ internal_vip.ip }}" @@ -60,7 +73,6 @@ kernel_package_noarch: [] compute_package_noarch: [] # network infor adapter for compass -contrail_device: "mgmt" contrail_address: "{{ internal_ip }}" contrail_netmask: "255.255.255.0" #contrail_gateway: "10.84.50.254" -- cgit 1.2.3-korg