############################################################################## # Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## --- #- hosts: database # sudo: yes # tasks: - name: "enable supervisor database" # sudo: True file: path: "/etc/init/supervisor-database.override" state: "absent" - name: "-node-common" # sudo: True include: -node-common.yml - name: "update hosts" # sudo: True lineinfile: dest: "/etc/hosts" # regexp: "^{{ contrail_address }}\t{{ ansible_hostname }}( .*)?$" # line: "{{ contrail_address }}\t{{ ansible_hostname }}\\1" regexp: "^{{ contrail_address }}\t{{ inventory_hostname }}( .*)?$" line: "{{ contrail_address }}\t{{ inventory_hostname }}\\1" backrefs: yes - name: "make directory for contrail analytics" # sudo: True file: path: "/var/lib/cassandra/data/ContrailAnalytics" state: "directory" - name: "modify cassandra conf" # sudo: True lineinfile: dest: "/etc/cassandra/cassandra.yaml" regexp: "{{ item.regexp }}" line: "{{ item.line }}" with_items: - { regexp: "^(#(\\s*)?)?listen_address:", line: "listen_address: {{ contrail_address }}"} - { regexp: "^(#(\\s*)?)?cluster_name:", line: "cluster_name: \"Contrail\"" } - { regexp: "^(#(\\s*)?)?rpc_address:", line: "rpc_address: {{ contrail_address }}" } - { regexp: "^(#(\\s*)?)?num_tokens:", line: "num_tokens: 256" } - { regexp: "^(#(\\s*)?)?initial_token:", line: "# initial_token:" } - name: "set first database host seed" # sudo: True set_fact: # dbseeds: "{{ hostvars[item.1][ contrail_address ] }}" dbseeds: "{{ ip_settings[item.1]['br-prv']['ip'] }}" with_indexed_items: groups['opencontrail'] when: item.0 == 0 - name: "set second database host seed" # sudo: True set_fact: # dbseeds: "{{ dbseeds }},{{ hostvars[item.1]['contrail_address'] }}" dbseeds: "{{ dbseeds }},{{ ip_settings[item.1]['br-prv']['ip'] }}" with_indexed_items: groups['opencontrail'] when: item.0 == 1 - name: "modify seeds list in cassandra conf" # sudo: True replace: dest: "/etc/cassandra/cassandra.yaml" regexp: "- seeds:.*$" replace: "- seeds: {{ dbseeds }}" - name: "modify cassandra env" # sudo: True replace: dest: "/etc/cassandra/cassandra-env.sh" regexp: "{{ item.regexp }}" replace: "{{ item.replace }}" with_items: - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -XX:\\+PrintGCDetails\"", replace: "JVM_OPTS=\"$JVM_OPTS -XX:+PrintGCDetails\"" } - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -Xss\\d+k\"", replace: "JVM_OPTS=\"$JVM_OPTS -Xss512k\"" } - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -XX:\\+PrintGCDateStamps\"", replace: "JVM_OPTS=\"$JVM_OPTS -XX:+PrintGCDateStamps\"" } - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -XX:\\+PrintHeapAtGC\"", replace: "JVM_OPTS=\"$JVM_OPTS -XX:+PrintHeapAtGC\"" } - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -XX:\\+PrintTenuringDistribution\"", replace: "JVM_OPTS=\"$JVM_OPTS -XX:+PrintTenuringDistribution\"" } - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -XX:\\+PrintGCApplicationStoppedTime\"", replace: "JVM_OPTS=\"$JVM_OPTS -XX:+PrintGCApplicationStoppedTime\"" } - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -XX:\\+PrintPromotionFailure\"", replace: "JVM_OPTS=\"$JVM_OPTS -XX:+PrintPromotionFailure\"" } - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -XX:PrintFLSStatistics=1\"", replace: "JVM_OPTS=\"$JVM_OPTS -XX:PrintFLSStatistics=1\"" } - { regexp: "(#(\\s*)?)?JVM_OPTS=\"\\$JVM_OPTS -Xloggc:/var/log/cassandra/gc-`date \\+%s`\\.log\"", replace: "JVM_OPTS=\"$JVM_OPTS -Xloggc:/var/log/cassandra/gc-`date +%s`.log\"" } - name: "modify zookeeper conf" # sudo: True lineinfile: dest: "/etc/zookeeper/conf/zoo.cfg" line: "{{ item }}" with_items: - "maxSessionTimeout=120000" - "autopurge.purgeInterval=3" - name: "modify zookeeper log4j properties" # sudo: True lineinfile: dest: "/etc/zookeeper/conf/log4j.properties" regexp: "(log4j.appender.ROLLINGFILE.MaxBackupIndex=.*)$" line: "\\1" backrefs: yes - name: "add server addresses to zookeeper config" # sudo: True lineinfile: dest: "/etc/zookeeper/conf/zoo.cfg" regexp: "server.{{ item.0 + 1 }}=" # line: "server.{{ item.0 + 1 }}={{ hostvars[item.1]['contrail_address'] }}:2888:3888" line: "server.{{ item.0 + 1 }}={{ ip_settings[item.1]['br-prv']['ip'] }}:2888:3888" with_indexed_items: groups['opencontrail'] - name: "set zookeeper unique id" # sudo: True template: src: "../../templates/provision/zookeeper-unique-id.j2" dest: "/var/lib/zookeeper/myid" with_indexed_items: groups['opencontrail'] when: item.1 == inventory_hostname - name: "remove kafka ini file" # sudo: True file: path: "/etc/contrail/supervisord_database_files/kafka.ini" state: "absent" - name: "set first zookeeper host address" # sudo: True set_fact: # zkaddrs: "{{ hostvars[item.1]['contrail_address'] }}:2181" zkaddrs: "{{ ip_settings[item.1]['br-prv']['ip'] }}:2181" with_indexed_items: groups['opencontrail'] when: item.0 == 0 - name: "set second or more zookeeper host addresses" # sudo: True set_fact: # zkaddrs: "{{ zkaddrs }},{{ hostvars[item.1]['contrail_address'] }}:2181" zkaddrs: "{{ zkaddrs }},{{ ip_settings[item.1]['br-prv']['ip'] }}:2181" with_indexed_items: groups['opencontrail'] when: item.0 > 0 - name: "modify zookeeper host addresses in kafka properties" # sudo: True lineinfile: dest: "/usr/share/kafka/config/server.properties" regexp: "zookeeper.connect=" line: "zookeeper.connect={{ zkaddrs }}" - name: "modify kafka properties" # sudo: True lineinfile: dest: "/usr/share/kafka/config/server.properties" regexp: "default.replication.factor=" line: "default.replication.factor=2" - name: "fix up contrail database nodemgr config" # sudo: True ini_file: dest: "/etc/contrail/contrail-database-nodemgr.conf" section: "{{ item.section }}" option: "{{ item.option }}" value: "{{ item.value }}" with_items: - { section: "DEFAULT", option: "hostip", value: "{{ contrail_address }}" } - { section: "DISCOVERY", option: "server", value: "{{ contrail_haproxy_address }}" } - name: "restart zookeeper" # sudo: True service: name: "zookeeper" state: "restarted" - name: "restart supervisor database" # sudo: True service: name: "supervisor-database" state: "restarted"