# Install Cluster without GUI

**URL:** <https://forums.suse.com/t/install-cluster-without-gui/30046>\
**Category:** SLES High Availability Extension\
**Created:** [July 12, 2017, 12:39pm UTC](https://forums.suse.com/t/install-cluster-without-gui/30046 "2017-07-12T12:39:56Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![MoserHans](https://avatars.discourse-cdn.com/v4/letter/m/ecc23a/32.png) [@MoserHans](https://forums.suse.com/u/MoserHans)\
**Post date:** [July 12, 2017, 12:39pm UTC](https://forums.suse.com/t/install-cluster-without-gui/30046/1 "2017-07-12T12:39:56Z")

</div>

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](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?

---

<div class="post-metadata">

**Author:** ![Jens-U](https://avatars.discourse-cdn.com/v4/letter/j/d78d45/32.png) [@Jens-U](https://forums.suse.com/u/Jens-U)\
**Post date:** [July 12, 2017, 1:23pm UTC](https://forums.suse.com/t/install-cluster-without-gui/30046/2 "2017-07-12T13:23:42Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![MoserHans](https://avatars.discourse-cdn.com/v4/letter/m/ecc23a/32.png) [@MoserHans](https://forums.suse.com/u/MoserHans)\
**Post date:** [July 14, 2017, 12:31pm UTC](https://forums.suse.com/t/install-cluster-without-gui/30046/3 "2017-07-14T12:31:49Z")

</div>

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
`
