DataStax OpsCenter 4.0; running but can't run agents (can ssh to nodes from cmdline but OpsCenter can't

StackOverflow https://stackoverflow.com/questions/20573754

Question

I'm setting up a new C* cluster and used apt-get to install OpsCenter 4.0; which came up fine and saw all my nodes.

I have an ~/.ssh/id_dsa file set up and can ssh to my nodes without password.

I tried to have OpsCenter install the agents via "fix"..supplying the private key in the "Node SSH Credentials" dialog...but I get "Failed to SSH to ...Error output: Permission denined (publickey).

I'm puzzled how I can ssh from cmd line but OpsCenter can't.

I then tried installing agents manually (again using apt-get; and service opscenterd-agent start) but I get this in the /var/log/datastax-agent/startup.log:

 INFO [main] 2013-12-13 13:25:11,035 Loading conf files: /var/lib/datastax-agent/conf/address.yaml
Exception in thread "main" java.lang.ClassCastException: java.lang.Character cannot be cast to java.util.Map$Entry
        at opsagent.conf$load_conf_file$fn__1185$fn__1186.invoke(conf.clj:197)
        at clojure.core$map$fn__4207.invoke(core.clj:2487)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:60)
        at clojure.lang.RT.seq(RT.java:484)
        at clojure.core$seq.invoke(core.clj:133)
        at clojure.core.protocols$seq_reduce.invoke(protocols.clj:30)
        at clojure.core.protocols$fn__6026.invoke(protocols.clj:54)
        at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)
        at clojure.core$reduce.invoke(core.clj:6177)
        at clojure.core$into.invoke(core.clj:6229)
        at opsagent.conf$load_conf_file.invoke(conf.clj:195)
        at clojure.core$map$fn__4207.invoke(core.clj:2487)
        at clojure.lang.LazySeq.sval(LazySeq.java:42)
        at clojure.lang.LazySeq.seq(LazySeq.java:60)
        at clojure.lang.RT.seq(RT.java:484)
        at clojure.core$seq.invoke(core.clj:133)
        at clojure.core.protocols$seq_reduce.invoke(protocols.clj:30)
        at clojure.core.protocols$fn__6026.invoke(protocols.clj:54)
        at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)
        at clojure.core$reduce.invoke(core.clj:6177)
        at clojure.core$into.invoke(core.clj:6229)
        at opsagent.conf$load_conf.invoke(conf.clj:209)
        at opsagent.opsagent$_main.doInvoke(opsagent.clj:228)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at opsagent.opsagent.main(Unknown Source)

(my address.yaml file is: stomp_interface=1.2.3.4 // with different numbers of course

I've used previous versions of C* and OpsCenter for years but I'm stuck now to get this one up and running.

Was it helpful?

Solution 2

I had entered my private ssh key in ~/.ssh/id_dsa (I'm running on EC2 as user "ubuntu".

On a whim I searched for other .ssh directories and found /root/.ssh.

I copied the id_dsa file to that directory and this time OpsCenter was able to talk to all of nodes in my cluster and install the agent.

Although this "solves" the problem its a bit unsatisfying as the OpsCenter directions don't say anything about this and I'm not sure how I should have known to look for this other .ssh directory. On the other hand, it is working :-).

OTHER TIPS

You're using a "=" where yaml syntax expects a ":". So what your stomp_interface line should look like:

stomp_interface: 1.2.3.4

You'll need to restart the datastax-agent for this to take effect.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top