PDA

View Full Version : Install Cluster without GUI



MoserHans
12-Jul-2017, 10:39
Hi,

the way to install a cluster is by installing "ha-cluster-bootstrap".
(Even Clusterlabs points to that at http://clusterlabs.org/quickstart-suse.html)
This installs a ton of packages, including gtk.

I would like to install the cluster without installing a graphical environment on the server.
The config is supposed to be deployed with ansible later anyway.
To manage the server crmsh is enough.

Is there any documentation what to install and configure for this?

(The official SUSE docs are very poor. It is only how to click :mad:)

I think I will install crmsh, pacemaker and corosync for start.

Any advice?

jmozdzen
12-Jul-2017, 11:23
Hi MoserHans,

> I think I will install crmsh, pacemaker and corosync for start.

my guess is that this will get you started nicely, via the dependencies. If not automatically installed as well, add stonith and the supporting packages for pacemaker and stonith to your list.

Regards,
J

MoserHans
14-Jul-2017, 10:31
Pro Tip: do not run the server in any language except "c". :rolleyes:
(crmsh cluster init will not find your interfaces if language is German )

I can ping the nodes from each other.
Password less ssh is working.

# LANG=c crm -d cluster init node1
ends with "ERROR: cluster.init: No JSON object could be decoded"


OK: Install packages
Generate corosync authkey...
DEBUG: parallax.copy([], /tmp/crm-tmp-59688c9dd0fa5d2b476a/script.input, /tmp/crm-tmp-59688c9dd0fa5d2b476a/script.input)
DEBUG: is_local (None): True
** node1 - cd "/tmp/crm-tmp-59688c9dd0fa5d2b476a"; ./authkey.py
DEBUG: Result(local): ''
DEBUG: parallax.call([], if [ -f '/tmp/crm-tmp-59688c9dd0fa5d2b476a/crm_script.debug' ]; then cat '/tmp/crm-tmp-59688c9dd0fa5d2b476a/crm_script.debug'; fi)
OK: [('node1', None, None)]: crm_script(call): ['/usr/bin/systemctl', 'start', 'sshd.service']
crm_script(call): ['mkdir', '-m', '700', '-p', '/root/.ssh']
crm_script(call): ['./crm_rpmcheck.py', 'booth', 'cluster-glue', 'corosync', 'crmsh', 'csync2', 'drbd', 'fence-agents', 'gfs2', 'gfs2-utils', 'hawk', 'ocfs2', 'ocfs2-tools', 'pacemaker', 'pacemaker-mgmt', 'resource-agents', 'sbd']
crm_script(call): ['/usr/bin/systemctl', 'is-enabled', 'sshd.service']
crm_script(call): ['/usr/bin/systemctl', 'is-active', 'sshd.service']
crm_script(call): ['/usr/bin/systemctl', 'is-enabled', 'ntp.service']
crm_script(call): ['/usr/bin/systemctl', 'is-enabled', 'corosync.service']
crm_script(call): ['/usr/bin/systemctl', 'is-active', 'corosync.service']
crm_script(call): ['/usr/bin/systemctl', 'is-enabled', 'pacemaker.service']
crm_script(call): ['/usr/bin/systemctl', 'is-active', 'pacemaker.service']
crm_script(call): ['/usr/bin/systemctl', 'is-enabled', 'hawk.service']
crm_script(call): ['/usr/bin/systemctl', 'is-enabled', 'SuSEfirewall2_init.service']
crm_script(call): ['/usr/bin/systemctl', 'is-active', 'SuSEfirewall2_init.service']
crm_script(call): ['netstat', '-nr']
crm_script(call): grep -r corosync.conf /etc/logrotate.d
crm_script(call): ['df']
crm_script(call): ['./crm_pkg.py', '-n', 'cluster-glue', '-s', 'latest']
crm_script(call): ['./crm_pkg.py', '-n', 'corosync', '-s', 'latest']
crm_script(call): ['./crm_pkg.py', '-n', 'crmsh', '-s', 'latest']
crm_script(call): ['./crm_pkg.py', '-n', 'pacemaker', '-s', 'latest']
crm_script(call): ['./crm_pkg.py', '-n', 'resource-agents', '-s', 'latest']
crm_script(call): ['/usr/bin/systemctl', 'is-enabled', 'SuSEfirewall2.service']
crm_script(call): ['/usr/bin/systemctl', 'is-active', 'SuSEfirewall2.service']
crm_script(call): ['/usr/bin/systemctl', 'is-enabled', 'SuSEfirewall2.service']
crm_script(call): ['/usr/bin/systemctl', 'is-active', 'SuSEfirewall2.service']
crm_script(call): ['/usr/bin/systemctl', 'restart', 'SuSEfirewall2.service']
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/crmsh/ui_context.py", line 75, in run
rv = self.execute_command() is not False
File "/usr/lib/python2.7/site-packages/crmsh/ui_context.py", line 245, in execute_command
rv = self.command_info.function(*arglist)
File "/usr/lib/python2.7/site-packages/crmsh/ui_cluster.py", line 110, in do_init
return scripts.run(script, script_args(args), script_printer())
File "/usr/lib/python2.7/site-packages/crmsh/scripts.py", line 2049, in run
return runner.all_actions()
File "/usr/lib/python2.7/site-packages/crmsh/scripts.py", line 1766, in all_actions
if not self._run_action(action):
File "/usr/lib/python2.7/site-packages/crmsh/scripts.py", line 1852, in _run_action
method(Actions(self, action))
File "/usr/lib/python2.7/site-packages/crmsh/scripts.py", line 280, in apply_local
self._run.run_command(None, self._value, True)
File "/usr/lib/python2.7/site-packages/crmsh/scripts.py", line 1787, in run_command
self.call(nodes, cmdline, is_json_output)
File "/usr/lib/python2.7/site-packages/crmsh/scripts.py", line 1879, in call
self.result = self._process_local(cmdline, is_json_output)
File "/usr/lib/python2.7/site-packages/crmsh/scripts.py", line 1998, in _process_local
out = json.loads(out)
File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
ERROR: cluster.init: No JSON object could be decoded