-
-
Notifications
You must be signed in to change notification settings - Fork 78
Open
Description
Description
I'm struggling to get a TCPPing-enabled JGroup with type wildfly::jgroups::stack::tcpping
. Every Puppet run fails with:
# Code is WFLYCTL0030 for Wildfly 10.1.0 and 9.0.2, and JBAS014883 for Wildfly 8.2.1
<Code>: No resource definition is registered for address [
("subsystem" => "jgroups"),
("stack" => "tcpping")
]
Indeed, there's no JGroup stack in Wildfly's profile setting:
sed -n '/<profile>/,\_</profile>_p' /opt/wildfly/standalone/configuration/standalone-full-ha.xml |
sed -n '1p;/<subsystem .*:jgroups/,\_</subsystem>_p;$p' |
grep -E '(profile|subsystem|stack[^=])'
<profile>
<subsystem xmlns="urn:jboss:domain:jgroups:3.0">
<stacks default="udp">
<stack name="udp">
</stack>
<stack name="tcp">
</stack>
</stacks>
</subsystem>
</profile>
I don't know if I'm missing some step or hitting a bug. This issue intends to find it out.
Test case
I set up a test environment with Vagrant, with a standalone server and a domain controller/managed server pair, the most similar I could get, both using wildfly::jgroups::stack::tcpping
with the same minimal settings. All VMs are CentOS 7 (bento/centos-7 Vagrant box), tested with Puppet 5, 6 and 7, and with Wildfly 8, 9 and 10, with the same results.
See below my Puppet main manifest. Further details in the test environment repo mentioned above.
$tmp_dir = '/tmp/wildfly'
# IPs correspond to private network interfaces from Vagrant
$standalone_ip = '192.168.56.4'
$controller_ip = '192.168.56.5'
$managed_ip = '192.168.56.6'
$mgmt_port = '9990'
file { $tmp_dir:
ensure => directory,
}
class { 'java':
distribution => 'jdk',
}
$wildfly_defaults = {
install_cache_dir => $tmp_dir,
java_home => '/usr',
mgmt_user => { username => 'admin', password => 'pass' },
require => [File[$tmp_dir], Class['java']],
}
# The Admin Console listens to the management interface
node /^standalone/ {
class { 'wildfly':
properties => {
'jboss.bind.address.management' => $standalone_ip,
'jboss.management.http.port' => $mgmt_port, # Needed for wildfly::jgroups::stack::tcpping
},
* => $wildfly_defaults,
}
wildfly::jgroups::stack::tcpping { 'TCPPING':
initial_hosts => "${standalone_ip}[${mgmt_port}]",
num_initial_members => 1
}
}
node /^controller/ {
class { 'wildfly':
mode => 'domain',
host_config => 'host-master.xml',
properties => {
'jboss.bind.address.management' => $controller_ip,
'jboss.management.http.port' => $mgmt_port, # Needed for wildfly::domain::server_group below
},
external_facts => true,
* => $wildfly_defaults,
}
wildfly::domain::server_group { ['main-server-group', 'other-server-group']:
ensure => absent,
}
wildfly::domain::server_group { 'app-server-group':
profile => 'full-ha',
socket_binding_group => 'full-ha-sockets',
}
wildfly::config::mgmt_user { 'managed':
password => 'whatever',
}
wildfly::jgroups::stack::tcpping { 'TCPPING':
initial_hosts => "${managed_ip}[${mgmt_port}]",
num_initial_members => 1
}
}
node /^managed/ {
ensure_packages(['nmap'])
class { 'wildfly':
mode => 'domain',
host_config => 'host-slave.xml',
properties => {
'jboss.bind.address.management' => $managed_ip,
'jboss.domain.master.address' => $controller_ip,
},
secret_value => 'd2hhdGV2ZXIK', # Base64 encoding for 'whatever'
* => $wildfly_defaults,
}
wildfly::host::server_config { ['server-one', 'server-two']:
ensure => absent,
before => Class['wildfly::setup'],
}
wildfly::host::server_config { 'app':
server_group => 'app-server-group',
hostname => 'managed',
username => 'managed',
password => 'whatever',
}
}
Metadata
Metadata
Assignees
Labels
No labels