}
# Configuration of ODL NB REST port to listen on
- file { 'jetty.xml':
- ensure => file,
- path => '/opt/opendaylight/etc/jetty.xml',
- # Set user:group owners
- owner => 'odl',
- group => 'odl',
- # Use a template to populate the content
- content => template('opendaylight/jetty.xml.erb'),
+ augeas {'ODL REST Port':
+ incl => '/opt/opendaylight/etc/jetty.xml',
+ context => '/files/opt/opendaylight/etc/jetty.xml/Configure',
+ lens => 'Xml.lns',
+ changes => [
+ "set Call[2]/Arg/New/Set[#attribute[name='port']]/Property/#attribute/default ${opendaylight::odl_rest_port}"]
+ }
+
+ if $opendaylight::odl_bind_ip != '0.0.0.0' {
+ # Configuration of ODL NB REST IP to listen on
+ augeas { 'ODL REST IP':
+ incl => '/opt/opendaylight/etc/jetty.xml',
+ context => '/files/opt/opendaylight/etc/jetty.xml/Configure',
+ lens => 'Xml.lns',
+ changes => [
+ "set Call[1]/Arg/New/Set[#attribute[name='host']]/Property/#attribute/default ${opendaylight::odl_bind_ip}",
+ "set Call[2]/Arg/New/Set[#attribute[name='host']]/Property/#attribute/default ${opendaylight::odl_bind_ip}"]
+ }
+
+ file { 'org.ops4j.pax.web.cfg':
+ ensure => file,
+ path => '/opt/opendaylight/etc/org.ops4j.pax.web.cfg',
+ # Set user:group owners
+ owner => 'odl',
+ group => 'odl',
+ }
+ -> file_line { 'org.ops4j.pax.web.cfg':
+ ensure => present,
+ path => '/opt/opendaylight/etc/org.ops4j.pax.web.cfg',
+ line => "org.ops4j.pax.web.listening.addresses = ${opendaylight::odl_bind_ip}"
+ }
}
# Set any custom log levels
- file { 'org.ops4j.pax.logging.cfg':
- ensure => file,
- path => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
- # Set user:group owners
- owner => 'odl',
- group => 'odl',
- # Use a template to populate the content
- content => template('opendaylight/org.ops4j.pax.logging.cfg.erb'),
+ $opendaylight::log_levels.each |$log_name, $logging_level| {
+ file_line {"logger-${log_name}":
+ ensure => present,
+ path => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+ line => "log4j.logger.${log_name}=${logging_level}"
+ }
+ }
+
+ # Set maximum ODL log file size
+ file_line { 'logmaxsize':
+ ensure => present,
+ path => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+ line => "log4j.appender.out.maxFileSize=${::opendaylight::log_max_size}",
+ match => '^log4j.appender.out.maxFileSize.*$'
+ }
+
+ # Set maximum number of ODL log file rollovers to preserve
+ file_line { 'logmaxrollover':
+ ensure => present,
+ path => '/opt/opendaylight/etc/org.ops4j.pax.logging.cfg',
+ line => "log4j.appender.out.maxBackupIndex=${::opendaylight::log_max_rollover}",
+ match => '^log4j.appender.out.maxBackupIndex.*$'
}
# Configure ODL HA if enabled
if $::opendaylight::enable_ha {
if $ha_node_count >= 2 {
# Configure ODL OSVDB Clustering
- $ha_node_ip_str = join($::opendaylight::ha_node_ips, ' ')
- exec { 'Configure ODL OVSDB Clustering':
- command => "configure_cluster.sh ${::opendaylight::ha_node_index} ${ha_node_ip_str}",
- path => '/opt/opendaylight/bin/:/usr/sbin:/usr/bin:/sbin:/bin',
- creates => '/opt/opendaylight/configuration/initial/akka.conf'
+ $cluster_config_dir = '/opt/opendaylight/configuration/initial'
+
+ file { $cluster_config_dir:
+ ensure => directory,
+ mode => '0755',
+ owner => 'odl',
+ group => 'odl',
+ }
+
+ file {'akka.conf':
+ ensure => file,
+ path => "${cluster_config_dir}/akka.conf",
+ owner => 'odl',
+ group => 'odl',
+ content => template('opendaylight/akka.conf.erb'),
+ require => File[$cluster_config_dir]
+ }
+
+ file {'modules.conf':
+ ensure => file,
+ path => "${cluster_config_dir}/modules.conf",
+ owner => 'odl',
+ group => 'odl',
+ content => template('opendaylight/modules.conf.erb'),
+ require => File[$cluster_config_dir]
}
+
+ file {'module-shards.conf':
+ ensure => file,
+ path => "${cluster_config_dir}/module-shards.conf",
+ owner => 'odl',
+ group => 'odl',
+ content => template('opendaylight/module-shards.conf.erb'),
+ require => File[$cluster_config_dir]
+ }
+
} else {
fail("Number of HA nodes less than 2: ${ha_node_count} and HA Enabled")
}
}
- # Configure ACL security group
- # Requires at least CentOS 7.3 for RHEL/CentOS systems
- if ('odl-netvirt-openstack' in $opendaylight::features) {
+ if ('odl-netvirt-openstack' in $opendaylight::features or 'odl-netvirt-sfc' in $opendaylight::features) {
+ # Configure ACL security group
+ # Requires at least CentOS 7.3 for RHEL/CentOS systems
if $opendaylight::security_group_mode == 'stateful' {
if defined('$opendaylight::stateful_unsupported') and $opendaylight::stateful_unsupported {
warning("Stateful is unsupported in ${::operatingsystemrelease} setting to 'learn'")
owner => 'odl',
group => 'odl',
}
- ->
- file { 'netvirt-aclservice-config.xml':
+ -> file { 'netvirt-aclservice-config.xml':
ensure => file,
path => '/opt/opendaylight/etc/opendaylight/datastore/initial/config/netvirt-aclservice-config.xml',
owner => 'odl',
group => 'odl',
content => template('opendaylight/netvirt-aclservice-config.xml.erb'),
}
+
+ # Configure SNAT
+ file { 'netvirt-natservice-config.xml':
+ ensure => file,
+ path => '/opt/opendaylight/etc/opendaylight/datastore/initial/config/netvirt-natservice-config.xml',
+ owner => 'odl',
+ group => 'odl',
+ content => template('opendaylight/netvirt-natservice-config.xml.erb'),
+ require => File['/opt/opendaylight/etc/opendaylight/datastore/initial/config'],
+ }
+ }
+
+ # SFC Config
+ if ('odl-netvirt-sfc' in $opendaylight::features) {
+ file { 'netvirt-elanmanager-config.xml':
+ ensure => file,
+ path => '/opt/opendaylight/etc/opendaylight/datastore/initial/config/netvirt-elanmanager-config.xml',
+ owner => 'odl',
+ group => 'odl',
+ source => 'puppet:///modules/opendaylight/netvirt-elanmanager-config.xml',
+ require => File['/opt/opendaylight/etc/opendaylight/datastore/initial/config'],
+ }
+
+ file { 'genius-itm-config.xml':
+ ensure => file,
+ path => '/opt/opendaylight/etc/opendaylight/datastore/initial/config/genius-itm-config.xml',
+ owner => 'odl',
+ group => 'odl',
+ source => 'puppet:///modules/opendaylight/genius-itm-config.xml',
+ require => File['/opt/opendaylight/etc/opendaylight/datastore/initial/config'],
+ }
}
#configure VPP routing node
if ! empty($::opendaylight::vpp_routing_node) {
- file { 'org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.cfg':
+ file { 'org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.startup.cfg':
ensure => file,
- path => '/opt/opendaylight/etc/org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.cfg',
+ path => '/opt/opendaylight/etc/org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.startup.cfg',
owner => 'odl',
group => 'odl',
}
file_line { 'routing-node':
- path => '/opt/opendaylight/etc/org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.cfg',
+ path => '/opt/opendaylight/etc/org.opendaylight.groupbasedpolicy.neutron.vpp.mapper.startup.cfg',
line => "routing-node=${::opendaylight::vpp_routing_node}",
match => '^routing-node=.*$',
}
}
+
+ # Configure username/password
+ odl_user { $::opendaylight::username:
+ password => $::opendaylight::password,
+ before => Service['opendaylight'],
+ }
}