2016年4月19日火曜日

Contrail R3.0のマニュアルインストール ubuntu編(10)

Contrailの初期設定

Contrailを初期設定します。
**対象サーバ Contrail1 どれか一つで行えばOKです。
1.変数の設定
HOST=10.84.50.131  ## インストール対象サーバのIPアドレスを指定
OPENSTACK=10.84.50.134  ## Openstack ServerのIPアドレスを指定
IVIP=10.84.50.139  ## Control/Dataの仮想IPアドレスを指定
host1=10.84.50.131  ## Contrail1のControl/Data用物理IPアドレス
host2=10.84.50.132  ## Contrail2のControl/Data用物理IPアドレス
host3=10.84.50.133  ## Contrail3のControl/Data用物理IPアドレス
host_name1=contrail1  ## Contrail1のホスト名
host_name2=contrail2  ## Contrail2のホスト名
host_name3=contrail3  ## Contrail3のホスト名

2.Config Nodeの設定
python /opt/contrail/utils/provision_config_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name1 --host_ip $host1
python /opt/contrail/utils/provision_config_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name2 --host_ip $host2
python /opt/contrail/utils/provision_config_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name3 --host_ip $host3

3.Database Nodeの設定
python /opt/contrail/utils/provision_database_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name1 --host_ip $host1
python /opt/contrail/utils/provision_database_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name2 --host_ip $host2
python /opt/contrail/utils/provision_database_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name3 --host_ip $host3

4.Analytics Nodeの設定
python /opt/contrail/utils/provision_analytics_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name1 --host_ip $host1
python /opt/contrail/utils/provision_analytics_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name2 --host_ip $host2
python /opt/contrail/utils/provision_analytics_node.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name3 --host_ip $host3

5.ContrailのConfig設定
python /opt/contrail/utils/provision_control.py --api_server_ip $IVIP --api_server_port 8082 --admin_user admin --admin_password password --admin_tenant_name admin --oper add --host_name $host_name1 --host_ip $host1 --router_asn 64512
python /opt/contrail/utils/provision_encap.py --api_server_ip $IVIP --admin_user admin --admin_password password --oper add --encap_priority MPLSoUDP,MPLSoGRE,VXLAN
python /opt/contrail/utils/provision_linklocal.py --api_server_ip $IVIP --admin_user admin --admin_password password --admin_tenant_name admin --oper add --ipfabric_service_ip $OPENSTACK --ipfabric_service_port 8775 --linklocal_service_name metadata --linklocal_service_ip 169.254.169.254 --linklocal_service_port 80

次はCompute Nodeの設定です。

Contrail R3.0のマニュアルインストール ubuntu編(9)

WebUIの設定

ContrailのWebUIを設定します
WebUIはcontrail-webui,contrail-webui-middlewareで構成されます
**対象サーバ Contrail1-3

1.変数の設定
HOST=10.84.50.131  ## インストール対象サーバのIPアドレスを指定
OPENSTACK=10.84.50.134  ## Openstack ServerのIPアドレスを指定
IVIP=10.84.50.139  ## Control/Dataの仮想IPアドレスを指定
host1=10.84.50.131  ## Contrail1のControl/Data用物理IPアドレス
host2=10.84.50.132  ## Contrail2のControl/Data用物理IPアドレス
host3=10.84.50.133  ## Contrail3のControl/Data用物理IPアドレス

2.パッケージのインストール
apt-get -y install contrail-openstack-webui

3./etc/contrail/config.global.jsの修正
sed -i "s/config.networkManager.ip =.*/config.networkManager.ip = '$IVIP';/g" /etc/contrail/config.global.js
sed -i "s/config.imageManager.ip = .*/config.imageManager.ip = '$OPENSTACK'/g" /etc/contrail/config.global.js
sed -i "s/config.computeManager.ip = .*/config.computeManager.ip = '$OPENSTACK'/g" /etc/contrail/config.global.js
sed -i "s/config.identityManager.ip = .*/config.identityManager.ip = '$OPENSTACK'/g" /etc/contrail/config.global.js
sed -i "s/config.storageManager.ip = .*/config.storageManager.ip = '$OPENSTACK'/g" /etc/contrail/config.global.js
sed -i "s/config.cnfg.server_ip = /config.cnfg.server_ip = '$IVIP'/g" /etc/contrail/config.global.js
sed -i "s/config.analytics.server_ip = /config.analytics.server_ip = '$IVIP'/g" /etc/contrail/config.global.js
sed -i "s/config.cassandra.server_ips = .*/config.cassandra.server_ips = ['$host1', '$host2', '$host3']/g" /etc/contrail/config.global.js

4.contrail-webui-userauth.jsの修正
set -i "s/contrail123/password/g" /etc/contrail/contrail-webui-userauth.js

5.シンボリックリンクの作成
ln -s /usr/bin/node /usr/bin/nodejs

6.WebUIの起動
service supervisor-webui restart

次は初期コンフィグの設定です。

Contrail R3.0のマニュアルインストール ubuntu編(8)

Analytics Nodeの設定

Contrailで使用するAnalytics Nodeを設定します。
Analytics Nodeはcontrail-alarm-gen,contrail-analytics-api,contrail-collector,contrail-query-engine,contrail-snmp-collector,contrail-topologyで構成されます。
**対象サーバ Contrail1-3

1. 変数の設定
HOST=10.84.50.131  ## インストール対象サーバのIPアドレスを指定
OPENSTACK=10.84.50.134  ## Openstack ServerのIPアドレスを指定
IVIP=10.84.50.139  ## Control/Dataの仮想IPアドレスを指定
host1=10.84.50.131  ## Contrail1のControl/Data用物理IPアドレス
host2=10.84.50.132  ## Contrail2のControl/Data用物理IPアドレス
host3=10.84.50.133  ## Contrail3のControl/Data用物理IPアドレス

2.パッケージのインストール
apt-get -y install contrail-openstack-analytics

3./etc/redis/redis.confの修正
sed -i "s/^bind/#bind/g" /etc/redis/redis.conf
sed -i "s/^save/#save/g" /etc/redis/redis.conf
sed -i "s/^dbfilename/#dbfilename/g" /etc/redis/redis.conf
sed -i "s/^lua-time-limit 5000/lua-time-limit 15000/g" /etc/redis/redis.conf

4./etc/contrail/contrail-collector.confの修正
sed -i "s/^# cassandra_server_list=.*/cassandra_server_list=$host1:9160 $host2:9160 $host3:9160/g" /etc/contrail/contrail-collector.conf
sed -i "s/^# kafka_broker_list=.*/kafka_broker_list=$host1:9092 $host2:9092 $host3:9092/g" /etc/contrail/contrail-collector.conf
sed -i "s/^# hostip=/hostip=$HOST/g" /etc/contrail/contrail-collector.conf
sed -i "s/^# http_server_port=8089/http_server_port=8089/g" /etc/contrail/contrail-collector.conf
sed -i "s/^# syslog_port=514/syslog_port=-1/g" /etc/contrail/contrail-collector.conf
sed -i "s/^# port=8086/port=8086/g" /etc/contrail/contrail-collector.conf
sed -i -e "/^# IP address of discovery server/a server=$IVIP" /etc/contrail/contrail-collector.conf
sed -i -e "/^# IP address of redis-server/a server=127.0.0.1" /etc/contrail/contrail-collector.conf
sed -i -e "/^cassandra_server_list/a zookeeper_server_list=$host1:2181,$host2:2181,$host3:2181" /etc/contrail/contrail-collector.conf

5./etc/contrail/contrail-query-engine.confの修正
sed -i "s/^# Collector configuration options/# Query-Engine configuration options/g" /etc/contrail/contrail-query-engine.conf
sed -i "s/^# cassandra_server_list=127.0.0.1:9160/cassandra_server_list=$host1:9160 $host2:9160 $host3:9160/g" /etc/contrail/contrail-query-engine.conf
sed -i "s/^# hostip=.*/hostip=$HOST/g" /etc/contrail/contrail-query-engine.conf
sed -i "s/^# http_server_port=8089/http_server_port=8091/g" /etc/contrail/contrail-query-engine.conf
sed -i "s/^# server=127.0.0.1 # discovery_server IP address/server=$IVIP/g" /etc/contrail/contrail-query-engine.conf
sed -i "s/^# port=6379/port=6379/g" /etc/contrail/contrail-query-engine.conf
sed -i "s/^# server=127.0.0.1/server=127.0.0.1/g" /etc/contrail/contrail-query-engine.conf

6./etc/contrail/contrail-analytics-api.confの修正
sed -i "s/^#host_ip = 127.0.0.1/host_ip = $HOST/g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#cassandra_server_list=127.0.0.1:9160/cassandra_server_list=$host1:9160 $host2:9160 $host3:9160/g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#http_server_port = 8090/http_server_port = 8090/g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#rest_api_port = 8081/rest_api_port = 9081/g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#rest_api_ip = 0.0.0.0/rest_api_ip = 0.0.0.0/g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#log_category = /log_category = /g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#disc_server_ip = 127.0.0.1/disc_server_ip = $IVIP/g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#disc_server_port = 5998/disc_server_port = 5998/g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#redis_server_port=6379/redis_server_port=6379/g" /etc/contrail/contrail-analytics-api.conf
sed -i "s/^#redis_query_port=6379/redis_query_port=6379/g" /etc/contrail/contrail-analytics-api.conf

7./etc/contrail/contrail-analytics-nodemgr.confの修正
sed -i "s/server=.*/server=$IVIP/g" /etc/contrail/contrail-analytics-nodemgr.conf

8./etc/contrail/contrail-snmp-collector.confの修正
sed -i "s/^#zookeeper=.*/zookeeper=$host1:2181,$host2:2181,$host3:2181/g" /etc/contrail/contrail-snmp-collector.conf
sed -i "s/^#disc_server_ip=.*/disc_server_ip=$IVIP/g" /etc/contrail/contrail-snmp-collector.conf
sed -i "s/^#disc_server_port=5998/disc_server_port=5998/g" /etc/contrail/contrail-snmp-collector.conf

9./etc/contrail/supervisord_analytics_files/contrail-snmp-collector.iniの修正
sed -i "s/command=.*/command=\/usr\/bin\/contrail-snmp-collector --conf_file \/etc\/contrail\/contrail-snmp-collector.conf --conf_file \/etc\/contrail\/contrail-keystone-auth.conf/g" /etc/contrail/supervisord_analytics_files/contrail-snmp-collector.ini

10./etc/contrail/contrail-topology.confの修正
sed -i "s/^#zookeeper=.*/zookeeper=$host1:2181,$host2:2181,$host3:2181/g" /etc/contrail/contrail-topology.conf

echo "[DISCOVERY]
disc_server_ip = $IVIP
disc_server_port = 5998" >> /etc/contrail/contrail-topology.conf

11./etc/contrail/supervisord_analytics_files/contrail-topology.iniの修正
sed -i "s/command=.*/command=\/usr\/bin\/contrail-topology --conf_file \/etc\/contrail\/contrail-topology.conf --conf_file \/etc\/contrail\/contrail-keystone-auth.conf/g" /etc/contrail/supervisord_analytics_files/contrail-topology.ini

12./etc/contrail/contrail-alarm-gen.confの修正
sed -i "s/^#host_ip =.*/host_ip = $HOST/g" /etc/contrail/contrail-alarm-gen.conf
sed -i "s/^#kafka_broker_list =.*/kafka_broker_list=$host1:9092 $host2:9092 $host3:9092/g" /etc/contrail/contrail-alarm-gen.conf
sed -i "s/^#zk_list =.*/zk_list = $host1:2181,$host2:2181,$host3:2181/g" /etc/contrail/contrail-alarm-gen.conf
sed -i "s/^#disc_server_ip =.*/disc_server_ip=$IVIP/g" /etc/contrail/contrail-alarm-gen.conf
sed -i "s/^#disc_server_port =.*/disc_server_port=5998/g" /etc/contrail/contrail-alarm-gen.conf

13.Analytics Nodeの起動
service supervisor-analytics restart

次はWebUIの設定です。

Contrail R3.0のマニュアルインストール ubuntu編(7)

Control Nodeの設定

Contrailで使用するControl Nodeを設定します。
Control Nodeはcontrail-control,contrail-dns,contrail-namedで構成されます。
**対象サーバ Contrail1-3

1.変数の設定
HOST=10.84.50.131  ## インストール対象サーバのIPアドレスを指定
IVIP=10.84.50.139  ## Control/Dataの仮想IPアドレスを指定 

2./etc/contrail/contrail-control.confの修正
sed -i "s/# hostip=/hostip=$HOST/g" /etc/contrail/contrail-control.conf
sed -i "s/# server=127.0.0.1/server=$IVIP/g" /etc/contrail/contrail-control.conf
sed -i "s/# password=control-node/password=$HOST/g" /etc/contrail/contrail-control.conf
sed -i "s/# user=control-node/user=$HOST/g" /etc/contrail/contrail-control.conf

3./etc/contrail/contrail-dns.confの修正
cp /etc/contrail/contrail-control.conf /etc/contrail/contrail-dns.conf
sed -i "s/^# Control-node/# DNS/g" /etc/contrail/contrail-dns.conf
sed -i "s/^password=.*/password=$HOST.dns/g" /etc/contrail/contrail-dns.conf
sed -i "s/^user=.*/user=$HOST.dns/g" /etc/contrail/contrail-dns.conf

4.Control nodeの起動
service supervisor-control restart

次はAnalytics Nodeの設定です。

Contrail R3.0のマニュアルインストール ubuntu編(6)

Config Nodeの設定 

Contrail Nodeはcontrail-api, contrail-device-manager, contrail-discovery, contrail-schema, contrail-svc-monitor, ifmapで構成されます。
**対象サーバ Contrail1-3

1.変数の設定
HOST=10.84.50.131  ## インストール対象サーバのIPアドレスを指定
OPENSTACK=10.84.50.134  ## Openstack ServerのIPアドレスを指定
IVIP=10.84.50.139  ## Control/Dataの仮想IPアドレスを指定
host1=10.84.50.131  ## Contrail1のControl/Data用物理IPアドレス
host2=10.84.50.132  ## Contrail2のControl/Data用物理IPアドレス
host3=10.84.50.133  ## Contrail3のControl/Data用物理IPアドレス

2./etc/security/limits.confの修正
echo 'root soft nofile 65535' >> /etc/security/limits.conf 
echo 'root hard nofile 65535' >> /etc/security/limits.conf 
echo '* hard nofile 65535' >> /etc/security/limits.conf 
echo '* soft nofile 65535' >> /etc/security/limits.conf 
echo '* hard nproc 65535' >> /etc/security/limits.conf 

3./etc/contrail/contrail-keystone-auth.confの修正
echo "
[KEYSTONE]
auth_host=$OPENSTACK
auth_protocol=http
auth_port=35357
admin_user=admin
admin_password=password
admin_tenant_name=admin
insecure=False
memcache_servers=127.0.0.1:11211" > /etc/contrail/contrail-keystone-auth.conf

4./etc/ifmap-server/log4j.propertiesの修正
sed -i 's/log4j.rootLogger=INFO/log4j.rootLogger=TRACE, CONSOLE/g' /etc/ifmap-server/log4j.properties
sed -i 's/log4j.logger.de.fhhannover.inform.irond.proc=INFO, A1/log4j.logger.de.fhhannover.inform.irond.proc=TRACE, A1, A2/g' /etc/ifmap-server/log4j.properties
sed -i 's/log4j.appender.A1=org.apache.log4j.FileAppender/log4j.appender.A1=org.apache.log4j.ConsoleAppender/g' /etc/ifmap-server/log4j.properties
sed -i -e '/log4j.appender.A1.File=\/var\/log\/contrail\/ifmap-server.log/d'  /etc/ifmap-server/log4j.properties

echo '
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.File=/var/log/contrail/ifmap-server.log
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d [%t] %-5p %x - %m%n

log4j.logger.de.fhhannover.inform.irond.rawrequests=TRACE, A3
log4j.additivity.de.fhhannover.inform.irond.rawrequests=false
log4j.appender.A3=org.apache.log4j.FileAppender
log4j.appender.A3.file=irond_raw.log
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%d %-5p %x - %m%n

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-8r [%t] %-5p %C{1} %x - %m%n' >> /etc/ifmap-server/log4j.properties

5./etc/ifmap-server/basicauthusers.propertiesの修正
ユーザー名は変更になる可能性があります。https://bugs.launchpad.net/juniperopenstack/+bug/1499206
echo "
api-server:api-server
schema-transformer:schema-transformer
svc-monitor:svc-monitor

# This is a read-only MAPC
reader:reader
$host1:$host1
$host1.dns:$host1.dns
$host2:$host2
$host2.dns:$host2.dns
$host3:$host3
$host3.dns:$host3.dns" > /etc/ifmap-server/basicauthusers.properties

echo 'api-server=api-server-1--0000000001-1' > /etc/ifmap-server/publisher.properties

6./etc/contrail/contrail-api.conf の修正
sed -i -e '/^\#/d' /etc/contrail/contrail-api.conf 
sed -i -e '/^$/d' /etc/contrail/contrail-api.conf 
sed -i "s/cassandra_server_list = .*/cassandra_server_list=$host1:9160 $host2:9160 $host3:9160/g" /etc/contrail/contrail-api.conf
sed -i "s/disc_server_ip = .*/disc_server_ip=$IVIP/g" /etc/contrail/contrail-api.conf
sed -i 's/ = /=/g' /etc/contrail/contrail-api.conf

echo "ifmap_server_ip=$HOST
ifmap_server_port=8443
listen_ip_addr=0.0.0.0
listen_port=9100
disc_server_ip=$IVIP
disc_server_port=5998
zk_server_ip=$host1:2181,$host2:2181,$host3:2181
rabbit_server=$IVIP:5673
list_optimization_enabled=True
auth = keystone
multi_tenancy=True

[SECURITY]
use_certs=False
keyfile=/etc/contrail/ssl/private_keys/apiserver_key.pem
certfile=/etc/contrail/ssl/certs/apiserver.pem
ca_certs=/etc/contrail/ssl/certs/ca.pem" >> /etc/contrail/contrail-api.conf

7./etc/init.d/contrail-apiの修正
echo '#!/bin/sh

# chkconfig: 2345 99 01
# description: Juniper Network Virtualization API

supervisorctl -s unix:///tmp/supervisord_config.sock ${1} `basename ${0}:0`' > /etc/init.d/contrail-api

8./etc/contrail/contrail-schema.confの修正
sed -i "s/disc_server_ip = .*/disc_server_ip=$IVIP/g" /etc/contrail/contrail-schema.conf
sed -i 's/ = /=/g' /etc/contrail/contrail-schema.conf

echo "ifmap_server_ip=$HOST
ifmap_server_port=8443
ifmap_username=schema-transformer
ifmap_password=schema-transformer
api_server_ip=$IVIP
api_server_port=8082
api_server_use_ssl=False
zk_server_ip=$host1:2181,$host2:2181,$host3:2181
cassandra_server_list=$host1:9160 $host2:9160 $host3:9160
rabbit_server=$IVIP:5673

[SECURITY]
use_certs=False
keyfile=/etc/contrail/ssl/private_keys/schema_xfer_key.pem
certfile=/etc/contrail/ssl/certs/schema_xfer.pem
ca_certs=/etc/contrail/ssl/certs/ca.pem" >> /etc/contrail/contrail-schema.conf

9./etc/contrail/contrail-device-manager.confの修正
sed -i "s/disc_server_ip = .*/disc_server_ip=$IVIP/g" /etc/contrail/contrail-device-manager.conf
sed -i 's/ = /=/g' /etc/contrail/contrail-device-manager.conf

echo "api_server_ip=$IVIP
api_server_port=8082
api_server_use_ssl=False
zk_server_ip=$host1:2181,$host2:2181,$host3:2181
cassandra_server_list=$host1:9160 $host2:9160 $host3:9160
rabbit_server=$IVIP:5673" >> /etc/contrail/contrail-device-manager.conf

10./etc/contrail/contrail-svc-monitor.confの修正
echo "[DEFAULTS]
ifmap_server_ip=$HOST
ifmap_server_port=8443
ifmap_username=svc-monitor
ifmap_password=svc-monitor
api_server_ip=$IVIP
api_server_port=8082
api_server_use_ssl=False
zk_server_ip=$host1:2181,$host2:2181,$host3:2181
log_file=/var/log/contrail/contrail-svc-monitor.log
cassandra_server_list=$host1:9160 $host2:9160 $host3:9160
disc_server_ip=$IVIP
disc_server_port=5998
region_name=RegionOne
log_local=1
log_level=SYS_NOTICE
rabbit_server=$IVIP:5673

[SECURITY]
use_certs=False
keyfile=/etc/contrail/ssl/private_keys/svc_monitor_key.pem
certfile=/etc/contrail/ssl/certs/svc_monitor.pem
ca_certs=/etc/contrail/ssl/certs/ca.pem

[SCHEDULER]
analytics_server_ip=$IVIP
analytics_server_port=8081" > /etc/contrail/contrail-svc-monitor.conf

11./etc/contrail/contrail-discovery.confの修正
sed -i "s/zk_server_ip=.*/zk_server_ip=$host1,$host2,$host3/g" /etc/contrail/contrail-discovery.conf
sed -i 's/listen_port=.*/listen_port=9110/g' /etc/contrail/contrail-discovery.conf
sed -i "s/cassandra_server_list.*/cassandra_server_list=$host1:9160 $host2:9160 $host3:9160/g" /etc/contrail/contrail-discovery.conf


echo '[DNS-SERVER]
policy=fixed ' >> /etc/contrail/contrail-discovery.conf

#"modify contrail discovery init script"
echo '#!/bin/sh

# chkconfig: 2345 99 01
# description: Juniper Network Virtualization API

supervisorctl -s unix:///tmp/supervisord_config.sock ${1} `basename ${0}:0`' >  /etc/init.d/contrail-discovery

12./etc/contrail/contrail-discovery.confの修正
sed -i 's/;AUTHN_TYPE =.*/AUTHN_TYPE=keystone/g' /etc/contrail/vnc_api_lib.ini
sed -i 's/;AUTHN_PROTOCOL =.*/AUTHN_PROTOCOL=http/g' /etc/contrail/vnc_api_lib.ini
sed -i "s/;AUTHN_SERVER =.*/AUTHN_SERVER=$OPENSTACK/g" /etc/contrail/vnc_api_lib.ini
sed -i 's/;AUTHN_PORT =.*/AUTHN_PORT=35357/g' /etc/contrail/vnc_api_lib.ini
sed -i 's/;AUTHN_URL =.*/AUTHN_URL=\/v2.0\/tokens/g' /etc/contrail/vnc_api_lib.ini

13./etc/contrail/contrail-config-nodemgr.confの修正
sed -i "s/server=.*/server=$IVIP/g" /etc/contrail/contrail-config-nodemgr.conf

14./etc/sudoers.d/contrail_sudoersの修正
echo 'Defaults:contrail !requiretty

Cmnd_Alias CONFIGRESTART = /usr/sbin/service supervisor-config restart

contrail ALL = (root) NOPASSWD:CONFIGRESTART' > /etc/sudoers.d/contrail_sudoers

15./etc/neutron/plugins/opencontrail/ContrailPlugin.iniの修正
echo "[APISERVER]
api_server_ip = $IVIP
api_server_port = 8082
multi_tenancy = True
contrail_extensions = ipam:neutron_plugin_contrail.plugins.opencontrail.contrail_plugin_ipam.NeutronPluginContrailIpam,policy:neutron_plugin_contrail.plugins.opencontrail.contrail_plugin_policy.NeutronPluginContrailPolicy,route-table:neutron_plugin_contrail.plugins.opencontrail.contrail_plugin_vpc.NeutronPluginContrailVpc,contrail:None

[COLLECTOR]
analytics_api_ip = $IVIP
analytics_api_port = 8081

[KEYSTONE]
auth_url = http://$OPENSTACK:35357/v2.0
admin_user=admin
admin_password=password
admin_tenant_name=admin" > /etc/neutron/plugins/opencontrail/ContrailPlugin.ini

16./etc/default/neutron-serverの修正
sed -i 's/NEUTRON_PLUGIN_CONFIG=.*/NEUTRON_PLUGIN_CONFIG="\/etc\/neutron\/plugins\/opencontrail\/ContrailPlugin.ini"/g' /etc/default/neutron-server

set values to neutron config
sed -i 's/^core_plugin = .*/core_plugin = neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2/g' /etc/neutron/neutron.conf
sed -i -e '/^core_plugin/a log_format = %(asctime)s.%(msecs)d %(levelname)8s [%(name)s] %(message)s/' /etc/neutron/neutron.conf
sed -i -e '/^core_plugin/a service_plugins = neutron_plugin_contrail.plugins.opencontrail.loadbalancer.plugin.LoadBalancerPlugin' /etc/neutron/neutron.conf
sed -i -e "/^core_plugin/a rabbit_hosts = $IVIP:5673" /etc/neutron/neutron.conf
sed -i -e '/^core_plugin/a api_extensions_path = extensions:\/usr\/lib\/python2.7\/dist-packages\/neutron_plugin_contrail\/extensions' /etc/neutron/neutron.conf
sed -i -e '/^core_plugin/a allow_overlapping_ips = True' /etc/neutron/neutron.conf
sed -i -e '/^core_plugin/a auth_strategy = keystone' /etc/neutron/neutron.conf
sed -i -e '/^core_plugin/a bind_port = 9697' /etc/neutron/neutron.conf

sed -i -e "/^\[quotas\]/a quota_driver = neutron_plugin_contrail.plugins.opencontrail.quota.driver.QuotaDriver" /etc/neutron/neutron.conf

sed -i "s/auth_uri = .*/auth_uri = http:\/\/$OPENSTACK:35357\/v2.0\//g" /etc/neutron/neutron.conf
sed -i "s/identity_uri = .*/identity_uri = http:\/\/$IVIP:5000/g" /etc/neutron/neutron.conf
sed -i "s/admin_tenant_name = .*/admin_tenant_name = service/g" /etc/neutron/neutron.conf
sed -i "s/admin_user = .*/admin_user = neutron/g" /etc/neutron/neutron.conf
sed -i "s/admin_password = .*/admin_password = password/g"  /etc/neutron/neutron.conf
sed -i -e '/^admin_password/a auth_protocol = http' /etc/neutron/neutron.conf
sed -i -e "/^admin_password/a auth_host = $OPENSTACK" /etc/neutron/neutron.conf

echo '[QUOTAS]
quota_network = -1
quota_subnet = -1
quota_port = -1

[service_providers]
service_provider = LOADBALANCER:Opencontrail:neutron_plugin_contrail.plugins.opencontrail.loadbalancer.driver.OpencontrailLoadbalancerDriver:default' >> /etc/neutron/neutron.conf

17.プロセスのリスタート
service neutron-server restart
service supervisor-config restart

次はControlNodeの設定です。

Contrail R3.0のマニュアルインストール ubuntu編(5)

Contrail Support Serviceの設定 

Contrailで使用するRabbitMQを設定します。
**対象サーバ Contrail1-3

1.変数の設定
HOST=10.84.50.131  ## インストール対象サーバのIPアドレスを指定
HOSTNAME=contrail1  ## インストール対象サーバのホスト名を指定
COOKIES=AANIJMOJRKEOIUDWHAVA  ## RabbitMQのCokkieを指定。全てのサーバで共通のCokkieを使用

2.不要プロセスの停止とディレクトリ削除
pkill -9 beam
pkill -9 epmd
rm -rf /var/lib/rabbitmq/mnesia

3./etc/rabbitmq/rabbitmq-env.confの修正
echo "NODE_IP_ADDRESS=$HOST
NODENAME=rabbit@$HOSTNAME-ctrl" >/etc/rabbitmq/rabbitmq-env.conf

4./etc/rabbitmq/rabbitmq-env.confの修正
echo "[
   {rabbit, [ {tcp_listeners, [{\"$HOST\", 5672}]}, {cluster_partition_handling, autoheal},{loopback_users, []},
              {cluster_nodes, {['rabbit@contrail1-ctrl', 'rabbit@contrail2-ctrl', 'rabbit@contrail3-ctrl'], disc}},
              {vm_memory_high_watermark, 0.4},
              {disk_free_limit,50000000},
              {log_levels,[{connection, info},{mirroring, info}]},
              {heartbeat,10},
              {delegate_count,20},
              {channel_max,5000},
              {tcp_listen_options,
                        [binary,
                          {packet, raw},
                          {reuseaddr, true},
                          {backlog, 128},
                          {nodelay, true},
                          {exit_on_close, false},
                          {keepalive, true}
                         ]
              },
              {collect_statistics_interval, 60000}
            ]
   },
   {rabbitmq_management_agent, [ {force_fine_statistics, true} ] },
   {kernel, [{net_ticktime,  30}]}
]." > /etc/rabbitmq/rabbitmq.config

5./var/lib/rabbitmq/.erlang.cookieの修正
echo $COOKIES > /var/lib/rabbitmq/.erlang.cookie

6.プロセスのスタート
service supervisor-support-service restart

7.RabbitMQの確認
rabbitmqctl cluster_statusを実行し、クラスタの確認を行います。
rabbitmqctl cluster_status
Cluster status of node 'rabbit@contrail1-ctrl' ...
[{nodes,[{disc,['rabbit@contrail1-ctrl','rabbit@contrail2-ctrl',
                'rabbit@contrail3-ctrl']}]},
 {running_nodes,['rabbit@contrail3-ctrl','rabbit@contrail2-ctrl','rabbit@contrail1-ctrl']},
 {cluster_name,<<"rabbit@contrail1">>},
 {partitions,[]}]

次はConfig Nodeの設定です。

Contrail R3.0のマニュアルインストール ubuntu編(4)

Database Nodeの設定 

Contrailで使用するDatabase Nodeを設定します。
Database Nodeは Cassandra,Zookeeper,Kafkaで構成されます。
**対象サーバ Contrail1-3

1.変数の設定
HOST=10.84.50.131  ## インストール対象サーバのIPアドレスを指定
IVIP=10.84.50.139  ## Control/Dataの仮想IPアドレスを指定
ID=1  ## Zookeeper用のID。サーバ毎に一意のIDを設定。例えば、1,2,3とそれぞれのサーバに割り当て
host1=10.84.50.131  ## Contrail1のControl/Data用物理IPアドレス
host2=10.84.50.132  ## Contrail2のControl/Data用物理IPアドレス
host3=10.84.50.133  ## Contrail3のControl/Data用物理IPアドレス

2.パッケージのインストール
apt-get -y install contrail-openstack-database
以下のようなエラーが発生した場合は、再度上記コマンドを実行してください。
Errors were encountered while processing:
 cassandra
 contrail-openstack-database
E: Sub-process /usr/bin/dpkg returned an error code (1)

3.Analytics用のディレクトリを作成
mkdir -p /var/lib/cassandra/data/config_db_uuid 
mkdir -p /var/lib/cassandra/data/ContrailAnalytics
mkdir -p /var/lib/cassandra/data
sudo chown -R cassandra /var/lib/cassandra
sudo chgrp -R cassandra /var/lib/cassandra

4./etc/cassandra/cassandra.yamlの修正
sed -i "s/cluster_name: 'Test Cluster'/cluster_name: 'Contrail'/g" /etc/cassandra/cassandra.yaml
sed -i "s/- seeds: \"127.0.0.1\"/- seeds: \"$host2,$host3\"/g" /etc/cassandra/cassandra.yaml
sed -i "s/listen_address: localhost/listen_address: $HOST/g" /etc/cassandra/cassandra.yaml
sed -i "s/rpc_address: localhost/rpc_address: $HOST/g" /etc/cassandra/cassandra.yaml

5./etc/cassandra/cassandra-env.shの修正
sed -i 's/JVM_OPTS="$JVM_OPTS -Xss256k"/JVM_OPTS="$JVM_OPTS -Xss512k"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/JVM_OPTS="$JVM_OPTS -XX:MaxTenuringThreshold=1"/JVM_OPTS="$JVM_OPTS -XX:MaxTenuringThreshold=30"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/# JVM_OPTS="$JVM_OPTS -XX:+PrintGCDetails"/JVM_OPTS="$JVM_OPTS -XX:+PrintGCDetails"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/# JVM_OPTS="$JVM_OPTS -XX:+PrintGCDateStamps"/JVM_OPTS="$JVM_OPTS -XX:+PrintGCDateStamps"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/# JVM_OPTS="$JVM_OPTS -XX:+PrintHeapAtGC"/JVM_OPTS="$JVM_OPTS -XX:+PrintHeapAtGC"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/# JVM_OPTS="$JVM_OPTS -XX:+PrintTenuringDistribution"/JVM_OPTS="$JVM_OPTS -XX:+PrintTenuringDistribution"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/# JVM_OPTS="$JVM_OPTS -XX:+PrintGCApplicationStoppedTime"/JVM_OPTS="$JVM_OPTS -XX:+PrintGCApplicationStoppedTime"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/# JVM_OPTS="$JVM_OPTS -XX:+PrintPromotionFailure"/JVM_OPTS="$JVM_OPTS -XX:+PrintPromotionFailure"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/# JVM_OPTS="$JVM_OPTS -XX:PrintFLSStatistics=1"/JVM_OPTS="$JVM_OPTS -XX:PrintFLSStatistics=1"/g' /etc/cassandra/cassandra-env.sh
sed -i 's/# JVM_OPTS="$JVM_OPTS -Xloggc:\/var\/log\/cassandra\/gc-`date +%s`.log"/JVM_OPTS="$JVM_OPTS -Xloggc:\/var\/log\/cassandra\/gc-`date +%s`.log"/g' /etc/cassandra/cassandra-env.sh

6./etc/zookeeper/conf/zoo.cfgの修正
echo "maxSessionTimeout=120000" >> /etc/zookeeper/conf/zoo.cfg
echo "autopurge.purgeInterval=3" >> /etc/zookeeper/conf/zoo.cfg
echo "server.1=$host1:2888:3888" >> /etc/zookeeper/conf/zoo.cfg
echo "server.2=$hos2:2888:3888" >> /etc/zookeeper/conf/zoo.cfg
echo "server.3=$host3:2888:3888" >> /etc/zookeeper/conf/zoo.cfg 

7./etc/zookeeper/conf/log4j.propertiesの修正
sed -i 's/^#log4j.appender.ROLLINGFILE.MaxBackupIndex=/log4j.appender.ROLLINGFILE.MaxBackupIndex=/g' /etc/zookeeper/conf/log4j.properties 

8./etc/zookeeper/conf/environmentの修正
echo ZOO_LOG4J_PROP="INFO,CONSOLE,ROLLINGFILE" >> /etc/zookeeper/conf/environment

9./var/lib/zookeeper/myidの修正
echo $ID > /var/lib/zookeeper/myid

10./usr/share/kafka/config/server.propertiesの修正
sed -i "s/broker.id=0/broker.id=$ID/g" /usr/share/kafka/config/server.properties
sed -i 's/listeners=PLAINTEXT:\/\/:9092/#listeners=PLAINTEXT:\/\/:9092/g' /usr/share/kafka/config/server.properties
sed -i 's/#port=9092/port=9092/g' /usr/share/kafka/config/server.properties
sed -i "s/#advertised.host.name=/advertised.host.name=$HOST/g" /usr/share/kafka/config/server.properties
sed -i "s/zookeeper.connect=localhost:2181/zookeeper.connect=$host1:2181,$host2:2181,$host3:2181/g" /usr/share/kafka/config/server.properties

echo "log.cleanup.policy=compact" >> /usr/share/kafka/config/server.properties
echo "delete.topic.enable=true" >> /usr/share/kafka/config/server.properties

11./usr/share/kafka/config/log4j.propertiesの修正
sed -i 's/DailyRollingFileAppender/RollingFileAppender/g' /usr/share/kafka/config/log4j.properties
sed -i "s/DatePattern='.'yyyy-MM-dd-HH/MaxBackupIndex=10/g" /usr/share/kafka/config/log4j.properties

12./etc/contrail/contrail-database-nodemgr.confの修正
sed -i "s/hostip=127.0.0.1/hostip=$HOST/g" /etc/contrail/contrail-database-nodemgr.conf
sed -i "s/server=127.0.0.1/server=$IVIP/g" /etc/contrail/contrail-database-nodemgr.conf
sed -i 's/minimum_diskGB=4/minimum_diskGB=100/g' /etc/contrail/contrail-database-nodemgr.conf

ln -s /bin/true /sbin/chkconfig
database-server-setup.sh $HOST
13.zookeeperの確認
全てのノードで"/usr/share/zookeeper/bin/zkServer.sh status"を実行し、1台がLeaderで残りがfollowerであればZookeeperのクラスタは完成です。
/usr/share/zookeeper/bin/zkServer.sh status 
JMX enabled by default 
Using config: /etc/zookeeper/conf/zoo.cfg 
Mode: follower 
14.cassandraの確認
nodetool statusを実行し、3台のサーバが確認できればCassandraのクラスタは完成です。
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens  Owns    Host ID                               Rack
UN  10.84.50.132  2.83 GB    256     ?       4022583f-bfeb-41af-a877-878468ef379a  rack1
UN  10.84.50.133  2.68 GB    256     ?       4a7a351a-9e62-4388-9c45-b66c37a4efe2  rack1
UN  10.84.50.131  2.66 GB    256     ?       ed68231d-edc0-40df-9987-411de522888a  rack1

Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless

次はContrail Support Serviceの設定です。