예제 #1
0
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'])
예제 #2
0
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

""")
예제 #3
0
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')
예제 #4
0
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'])
예제 #5
0
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

""")