def zookeeper(): puts(green("installing zookeeper on %s" % env.host_string)) zk = [] zkid = 1 myid = 1 for zkhost in sorted(metadata.roles['zookeeper']): # construct the puppet module params zk.append("{'id' => '%s', 'host' => '%s'}" % (zkid, metadata.servers[zkhost]['internal_ip'])) # are we the current server? if env.host_string == zkhost: # then this is our id myid = zkid zkid = zkid + 1 args = {} args['servers'] = "[%s]" % ",".join(zk) args['server_id'] = "%s" % myid Puppet.apply('midonet::zookeeper', args, metadata) Daemon.poll('org.apache.zookeeper.server.quorum', 60) for zkhost in sorted(metadata.roles['zookeeper']): run(""" IP="%s" echo ruok | nc "${IP}" 2181 | grep imok """ % metadata.servers[zkhost]['internal_ip'])
def midonet_api(): puts(green("installing MidoNet api on %s" % env.host_string)) if metadata.servers[env.host_string]['ip'] <> metadata.servers[env.host_string]['internal_ip']: run(""" API_IP="%s" ifconfig eth0:1 ${API_IP}/32 up """ % metadata.servers[env.host_string]['ip']) zk = [] for zkhost in metadata.roles['zookeeper']: zk.append("{'ip' => '%s', 'port' => '2181'}" % metadata.servers[zkhost]['internal_ip']) args = {} args['zk_servers'] = "[%s]" % ",".join(zk) args['keystone_auth'] = "false" args['vtep'] = "true" args['api_ip'] = "'%s'" % metadata.servers[env.host_string]['ip'] run(""" echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 apt-get remove --purge -y midonet-api; echo apt-get remove --purge -y tomcat7; echo apt-get remove --purge -y tomcat6; echo """) Puppet.apply('midonet::midonet_api', args, metadata) run(""" cat >/etc/default/tomcat7 <<EOF TOMCAT7_USER=tomcat7 TOMCAT7_GROUP=tomcat7 JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom" EOF # # thanks to @Jan for finding this # sed -i 's,org.midonet.api.auth.MockAuthService,org.midonet.cluster.auth.MockAuthService,g;' /usr/share/midonet-api/WEB-INF/web.xml rm -rfv /var/log/tomcat7/* service tomcat7 restart """)
def cassandra(): puts(green("installing cassandra on %s" % env.host_string)) cs = [] for cshost in metadata.roles['cassandra']: cs.append("'%s'" % metadata.servers[cshost]['internal_ip']) args = {} args['seeds'] = "[%s]" % ",".join(cs) args['seed_address'] = "'%s'" % metadata.servers[env.host_string]['internal_ip'] Puppet.apply('midonet::cassandra', args, metadata) Daemon.poll('org.apache.cassandra.service.CassandraDaemon')
def midonet_cli(): puts(green("installing MidoNet cli on %s" % env.host_string)) args = {} Puppet.apply('midonet::midonet_cli', args, metadata) run(""" cat >/root/.midonetrc <<EOF [cli] api_url = http://%s:8080/midonet-api username = admin password = admin project_id = admin tenant = admin EOF """ % metadata.servers[metadata.roles['midonet_api'][0]]['ip'])
def midonet_agents(): puts(green("installing MidoNet agent on %s" % env.host_string)) zk = [] for zkhost in metadata.roles['zookeeper']: zk.append("{'ip' => '%s', 'port' => '2181'}" % metadata.servers[zkhost]['internal_ip']) cs = [] for cshost in metadata.roles['cassandra']: cs.append("'%s'" % metadata.servers[cshost]['internal_ip']) args = {} args['zk_servers'] = "[%s]" % ",".join(zk) args['cassandra_seeds'] = "[%s]" % ",".join(cs) Puppet.apply('midonet::midonet_agent', args, metadata) run(""" cat >/tmp/buffer.json <<EOF agent { datapath { max_flow_count=200000 send_buffer_pool_buf_size_kb=2048 send_buffer_pool_initial_size=2048 send_buffer_pool_max_size=4096 } } EOF # TODO mn-conf set -t default < /tmp/buffer.json """) # # modify the init script to allow higher number of open files # run(""" SCRIPT="/usr/share/midolman/midolman-start-senbazuru" cat >/etc/init/senbazuru.conf <<EOF description "Midolman with more open files" start on runlevel [2345] stop on runlevel [016] respawn respawn limit 2 120 kill timeout 5 umask 022 console none pre-start script exec /usr/share/midolman/midolman-prepare end script script exec ${SCRIPT} end script EOF chmod 0755 /etc/init/senbazuru.conf cat >"${SCRIPT}" <<EOF #!/bin/bash set -e ulimit -n 1000000 /usr/share/midolman/midolman-start EOF chmod 0755 "${SCRIPT}" service midolman restart """)