Closed oevcil closed 5 months ago
Additional information:
cat /etc/rundeck/rundeck-config.properties
#loglevel.default is the default log level for jobs: ERROR,WARN,INFO,VERBOSE,DEBUG
loglevel.default=INFO
rdeck.base=/var/lib/rundeck
#rss.enabled if set to true enables RSS feeds that are public (non-authenticated)
rss.enabled=false
# change hostname here
grails.serverURL=http://10.0.0.114:4440
dataSource.dbCreate = none
dataSource.url = jdbc:h2:file:/var/lib/rundeck/data/rundeckdb;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=MONTH,HOUR,MINUTE,YEAR,SECONDS
grails.plugin.databasemigration.updateOnStart=true
# Encryption for key storage
rundeck.storage.provider.1.type=db
rundeck.storage.provider.1.path=keys
rundeck.storage.converter.1.type=jasypt-encryption
rundeck.storage.converter.1.path=keys
rundeck.storage.converter.1.config.encryptorType=custom
rundeck.storage.converter.1.config.password=99af3524a28d7111
rundeck.storage.converter.1.config.algorithm=PBEWITHSHA256AND128BITAES-CBC-BC
rundeck.storage.converter.1.config.provider=BC
# Encryption for project config storage
rundeck.projectsStorageType=db
rundeck.config.storage.converter.1.type=jasypt-encryption
rundeck.config.storage.converter.1.path=projects
rundeck.config.storage.converter.1.config.password=99af3524a28d7111
rundeck.config.storage.converter.1.config.encryptorType=custom
rundeck.config.storage.converter.1.config.algorithm=PBEWITHSHA256AND128BITAES-CBC-BC
rundeck.config.storage.converter.1.config.provider=BC
rundeck.feature.repository.enabled=true
cat /etc/rundeck/framework.properties
# framework.properties -
#
# ----------------------------------------------------------------
# Rundeck server connection information
# ----------------------------------------------------------------
framework.server.name = 10.0.0.114
framework.server.hostname = 10.0.0.114
framework.server.port = 4440
framework.server.url = http://10.0.0.114:4440
# ----------------------------------------------------------------
# Installation locations
# ----------------------------------------------------------------
rdeck.base=/var/lib/rundeck
framework.projects.dir=/var/lib/rundeck/projects
framework.etc.dir=/etc/rundeck
framework.var.dir=/var/lib/rundeck/var
framework.tmp.dir=/var/lib/rundeck/var/tmp
framework.logs.dir=/var/lib/rundeck/logs
framework.libext.dir=/var/lib/rundeck/libext
# ----------------------------------------------------------------
# SSH defaults for node executor and file copier
# ----------------------------------------------------------------
framework.ssh.keypath = /var/lib/rundeck/.ssh/id_rsa
framework.ssh.user = rundeck
# ssh connection timeout after a specified number of milliseconds.
# "0" value means wait forever.
framework.ssh.timeout = 0
# ----------------------------------------------------------------
# Auto generated server UUID: 6bb68963-232f-4223-a173-d2e2ff6f32d6
# ----------------------------------------------------------------
rundeck.server.uuid = 6bb68963-232f-4223-a173-d2e2ff6f32d6
Hi @oevcil
Usually, that error happens when you define the ansible binaries path including the ansible binary file, eg: /usr/bin/ansible
instead of the directory where ansible executable is located, such as: /usr/bin/
. Could double check this in your Node Executor config and Model Source?
Regards.
Hi @MegaDrive68k,
Thank you for the quick and helpful feedback.
Oh man, I overlooked that, of course. I've corrected it, and the error is gone now. But it's showing me the following error:
[2024-04-11T19:58:46,490] WARN resources.LoggingResourceModelSourceCache - [ResourceModelSource: 1.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: PoC] Returning cached model data
[2024-04-11T20:00:00,101] ERROR resources.ExceptionCatchingResourceModelSource - [ResourceModelSource: 1.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: PoC]
com.dtolabs.rundeck.core.resources.ResourceModelSourceException: ERROR: ssh-add returns with non zero code:[/usr/bin/ssh-add, /tmp/rundeck/ansible-runner1308320172596752230id_rsa]
at com.rundeck.plugins.ansible.plugin.AnsibleResourceModelSource.getNodes(AnsibleResourceModelSource.java:382) ~[?:?]
at com.dtolabs.rundeck.core.resources.ExceptionCatchingResourceModelSource.getNodes(ExceptionCatchingResourceModelSource.java:58) [rundeck-core-5.1.2-20240328.jar!/:?]
at com.dtolabs.rundeck.core.resources.DelegateResourceModelSource.getNodes(DelegateResourceModelSource.java:35) [rundeck-core-5.1.2-20240328.jar!/:?]
at com.dtolabs.rundeck.core.common.ProjectNodeSupport.getNodeSet(ProjectNodeSupport.java:137) [rundeck-core-5.1.2-20240328.jar!/:?]
at com.dtolabs.rundeck.core.common.ProjectNodeSupport$ProjectNodesSource.getNodes(ProjectNodeSupport.java:358) [rundeck-core-5.1.2-20240328.jar!/:?]
at com.dtolabs.rundeck.core.resources.ExceptionCatchingResourceModelSource.getNodes(ExceptionCatchingResourceModelSource.java:58) [rundeck-core-5.1.2-20240328.jar!/:?]
at com.dtolabs.rundeck.core.resources.ResourceModelSource$getNodes.call(Unknown Source) [rundeck-core-5.1.2-20240328.jar!/:?]
at rundeck.services.nodes.CachedProjectNodes.reloadNodeSet(CachedProjectNodes.groovy:44) [classes!/:?]
at rundeck.services.nodes.CachedProjectNodes$reloadNodeSet.call(Unknown Source) [classes!/:?]
at rundeck.services.NodeService$_loadNodes_closure4.doCall(NodeService.groovy:295) [classes!/:?]
at rundeck.services.NodeService$_loadNodes_closure4.doCall(NodeService.groovy) [classes!/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.Closure.call(Closure.java:427) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.Closure.call(Closure.java:406) [groovy-3.0.19.jar!/:3.0.19]
at com.codahale.metrics.Timer.time(Timer.java:118) [metrics-core-4.2.18.jar!/:4.2.18]
at org.grails.plugins.metricsweb.MetricService.withTimer(MetricService.groovy:61) [grails-metricsweb-5.1.2-20240328-plain.jar!/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.runtime.callsite.PlainObjectMetaMethodSite.doInvoke(PlainObjectMetaMethodSite.java:48) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrap.invoke(PogoMetaMethodSite.java:178) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:69) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:157) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:112) [groovy-3.0.19.jar!/:3.0.19]
at rundeck.services.NodeService.loadNodes(NodeService.groovy:307) [classes!/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1254) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:94) [groovy-3.0.19.jar!/:3.0.19]
at rundeck.services.NodeService.this$dist$invoke$1(NodeService.groovy) [classes!/:?]
at rundeck.services.NodeService$3.methodMissing(NodeService.groovy) [classes!/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:948) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1333) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1256) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:814) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.GroovyObject.invokeMethod(GroovyObject.java:39) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegationObjects(ClosureMetaClass.java:408) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:348) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:194) [groovy-3.0.19.jar!/:3.0.19]
at rundeck.services.NodeService$3$_reload_closure1.doCall(NodeService.groovy:152) [classes!/:?]
at rundeck.services.NodeService$3$_reload_closure1.doCall(NodeService.groovy) [classes!/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.Closure.call(Closure.java:427) [groovy-3.0.19.jar!/:3.0.19]
at groovy.lang.Closure.call(Closure.java:406) [groovy-3.0.19.jar!/:3.0.19]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at org.springframework.core.task.SimpleAsyncTaskExecutor$ConcurrencyThrottlingRunnable.run(SimpleAsyncTaskExecutor.java:284) [spring-core-5.3.32.jar!/:5.3.32]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: com.rundeck.plugins.ansible.ansible.AnsibleException: ERROR: ssh-add returns with non zero code:[/usr/bin/ssh-add, /tmp/rundeck/ansible-runner1308320172596752230id_rsa]
at com.rundeck.plugins.ansible.ansible.AnsibleRunner.registerKeySshAgent(AnsibleRunner.java:665) ~[?:?]
at com.rundeck.plugins.ansible.ansible.AnsibleRunner.run(AnsibleRunner.java:456) ~[?:?]
at com.rundeck.plugins.ansible.plugin.AnsibleResourceModelSource.getNodes(AnsibleResourceModelSource.java:380) ~[?:?]
... 74 more
[2024-04-11T20:00:00,104] WARN resources.LoggingResourceModelSourceCache - [ResourceModelSource: 1.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: PoC] Returning cached model data
Do you have any idea what's causing this?
Kind regards
Solved it by https://github.com/rundeck-plugins/ansible-plugin/issues/319
@MegaDrive68k thany you again! Perhaps I would like to make a feature request at this point. That this information be included in the documentation. Or that more explanations or examples be added to the GUI.
Thank you and kind regarsd.
Describe the bug After a fresh installation of Rundeck and Ansible, I am receiving the following error message, under the "Edit Note" section after trying to create a new "Ansible Resource Model Source."
To check if something is wrong, I set up a test environment. Here I am encountering the same error. Ansible itself works without any issues:
service.log read:
The directory "/tmp/rundeck" was, of course, not there after the RPM installation, and I created it with the following permissions:
For testing purposes, I kept the "ansible.cfg" very simple and only set "remote_port = 22" and "remote_user = root". Ansible uses an ECDSA key pair with a passphrase.
My Rundeck detail
To Reproduce Steps to reproduce the behavior:
Expected behavior Since Rundeck can create additional directories and the files within it (such as "ansible-hosts10...") under "tmp/rundeck" after I manually created the directory I would expect that this error does not occur. Especially since the Ansible configuration is also functioning.
I would be very grateful for any kind of help, as I couldn't find anything useful about the error.