rundeck / rundeck

Enable Self-Service Operations: Give specific users access to your existing tools, services, and scripts
http://rundeck.org
Apache License 2.0
5.5k stars 912 forks source link

Ansible IO failure: Cannot run program "/usr/bin/ansible/ansible-playbook" (in directory "/tmp/rundeck/ansible-... #9055

Closed oevcil closed 5 months ago

oevcil commented 5 months ago

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." image

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: image

service.log read:

[2024-04-11T18:02:50,761] WARN  resources.LoggingResourceModelSourceCache - [ResourceModelSource: 2.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: PoC] Returning cached model data
[2024-04-11T18:34:02,080] ERROR resources.ExceptionCatchingResourceModelSource - [ResourceModelSource: 2.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: PoC]

com.dtolabs.rundeck.core.resources.ResourceModelSourceException: ERROR: Ansible IO failure: Cannot run program "/usr/bin/ansible/ansible-playbook" (in directory "/tmp/rundeck/ansible-hosts5500393066295164082"): error=20, Ist kein Verzeichnis
        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: Ansible IO failure: Cannot run program "/usr/bin/ansible/ansible-playbook" (in directory "/tmp/rundeck/ansible-hosts5500393066295164082"): error=20, Ist kein Verzeichnis
        at com.rundeck.plugins.ansible.ansible.AnsibleRunner.run(AnsibleRunner.java:576) ~[?:?]
        at com.rundeck.plugins.ansible.plugin.AnsibleResourceModelSource.getNodes(AnsibleResourceModelSource.java:380) ~[?:?]
        ... 74 more
Caused by: java.io.IOException: Cannot run program "/usr/bin/ansible/ansible-playbook" (in directory "/tmp/rundeck/ansible-hosts5500393066295164082"): error=20, Ist kein Verzeichnis
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1128) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) ~[?:?]
        at com.rundeck.plugins.ansible.ansible.AnsibleRunner.run(AnsibleRunner.java:525) ~[?:?]
        at com.rundeck.plugins.ansible.plugin.AnsibleResourceModelSource.getNodes(AnsibleResourceModelSource.java:380) ~[?:?]
        ... 74 more
Caused by: java.io.IOException: error=20, Ist kein Verzeichnis
        at java.lang.ProcessImpl.forkAndExec(Native Method) ~[?:?]
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:340) ~[?:?]
        at java.lang.ProcessImpl.start(ProcessImpl.java:271) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1107) ~[?:?]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1071) ~[?:?]
        at com.rundeck.plugins.ansible.ansible.AnsibleRunner.run(AnsibleRunner.java:525) ~[?:?]
        at com.rundeck.plugins.ansible.plugin.AnsibleResourceModelSource.getNodes(AnsibleResourceModelSource.java:380) ~[?:?]
        ... 74 more
[2024-04-11T18:34:02,084] WARN  resources.LoggingResourceModelSourceCache - [ResourceModelSource: 2.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: PoC] Returning cached model data

The directory "/tmp/rundeck" was, of course, not there after the RPM installation, and I created it with the following permissions: image

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:

  1. See error and description above.

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.

oevcil commented 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
MegaDrive68k commented 5 months ago

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.

oevcil commented 5 months ago

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: image image

[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

oevcil commented 5 months ago

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.