Install Cluster without GUI

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?

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

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