Problem Configuring Ansible Nodes with Rundeck

214 views
Skip to first unread message

Julian Brown Jr.

unread,
Feb 13, 2024, 7:13:12 AMFeb 13
to rundeck-discuss
Hi,

I am new to Rundeck and trying to set it up so I can run ansible playbooks through the Rundeck UI. I was following the steps from the documentation but I seem to be running into this error message after attempting to configure my node source "The node source had an error: Error copying files". Any insight would be helpful as I couldn't find much help through my research. 

Thanks.


rac...@rundeck.com

unread,
Feb 13, 2024, 7:14:51 AMFeb 13
to rundeck-discuss
Hi Julia, make sure to configure the Ansible Node Executor and File Copier. Take a look at this.

Julian Brown Jr.

unread,
Feb 13, 2024, 9:36:57 AMFeb 13
to rundeck-discuss
Good Morning, I will give this a try and let you know of the results.

Thanks.

Julian Brown Jr.

unread,
Feb 13, 2024, 11:01:31 AMFeb 13
to rundeck-discuss
I tried following the steps provided in the link but I am still getting the same issue. I'll provide some more information that I should've mentioned earlier. I have my Ansible control node running on a CentOS 7 VM and rundeck was installed using docker onto the same machine. The Ansible control nodes that I am trying to connect to are all Windows hosts maybe that makes a difference but I am not sure. Hopefully, this info helps and please do let me know if I should provide any more details.

rac...@rundeck.com

unread,
Feb 13, 2024, 11:31:36 AMFeb 13
to rundeck-discuss
Hi Julian,

Please share the Rundeck model source/node executor config. Also, the full Rundeck Service log stack to see what is happening.

1. Ansible and Rundeck must coexist on the same server (or the same VM). In short: Rundeck must reach ansible config and inventory file to use them on the Model Source / Default Node Executor.
2. Considering this you will configure the integration like this.
3. For Windows nodes, take a look at this, it works for me.

Greetings.

Julian Brown Jr.

unread,
Feb 13, 2024, 11:57:06 AMFeb 13
to rundeck-discuss
Here are the config and service log below. I will look at the links you have provided as well.

Rundeckcfg.png

Service log:
[2024-02-13T10:42:22,057] ERROR resources.ExceptionCatchingResourceModelSource - [ResourceModelSource: 2.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: ansible]
com.dtolabs.rundeck.core.resources.ResourceModelSourceException: Error copying files.
        at com.rundeck.plugins.ansible.plugin.AnsibleResourceModelSource.getNodes(AnsibleResourceModelSource.java:362) ~[?:?]
        at com.dtolabs.rundeck.core.resources.ExceptionCatchingResourceModelSource.getNodes(ExceptionCatchingResourceModelSource.java:58) [rundeck-core-5.0.1-20240115.jar!/:?]
        at com.dtolabs.rundeck.core.resources.DelegateResourceModelSource.getNodes(DelegateResourceModelSource.java:35) [rundeck-core-5.0.1-20240115.jar!/:?]
        at com.dtolabs.rundeck.core.common.ProjectNodeSupport.getNodeSet(ProjectNodeSupport.java:137) [rundeck-core-5.0.1-20240115.jar!/:?]
        at com.dtolabs.rundeck.core.common.ProjectNodeSupport$ProjectNodesSource.getNodes(ProjectNodeSupport.java:358) [rundeck-core-5.0.1-20240115.jar!/:?]
        at com.dtolabs.rundeck.core.resources.ExceptionCatchingResourceModelSource.getNodes(ExceptionCatchingResourceModelSource.java:58) [rundeck-core-5.0.1-20240115.jar!/:?]
        at com.dtolabs.rundeck.core.resources.ResourceModelSource$getNodes.call(Unknown Source) [rundeck-core-5.0.1-20240115.jar!/:?]
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130) [groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.nodes.CachedProjectNodes.reloadNodeSet(CachedProjectNodes.groovy:44) [classes!/:?]
        at rundeck.services.nodes.CachedProjectNodes$reloadNodeSet.call(Unknown Source) [classes!/:?]
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130) [groovy-3.0.19.jar!/:3.0.19]
        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.0.1-20240115-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.CallSiteArray.defaultCall(CallSiteArray.java:47) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [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_closure5.doCall(NodeService.groovy:302) [classes!/:?]
        at rundeck.services.NodeService$_loadNodes_closure5.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) ~[?:?]
[2024-02-13T10:42:22,070] WARN  resources.LoggingResourceModelSourceCache - [ResourceModelSource: 2.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: ansible] Returning cached model data
 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.CallSiteArray.defaultCall(CallSiteArray.java:47) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [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_closure5.doCall(NodeService.groovy:302) [classes!/:?]
        at rundeck.services.NodeService$_loadNodes_closure5.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 groovy.lang.Closure.run(Closure.java:498) [groovy-3.0.19.jar!/:3.0.19]
        at org.springframework.core.task.SimpleAsyncTaskExecutor$ConcurrencyThrottlingRunnable.run(SimpleAsyncTaskExecutor.java:286) [spring-core-5.3.27.jar!/:5.3.27]
        at java.lang.Thread.run(Thread.java:829) [?:?]
[2024-02-13T10:42:22,070] WARN  resources.LoggingResourceModelSourceCache - [ResourceModelSource: 2.source (com.batix.rundeck.plugins.AnsibleResourceModelSourceFactory), project: ansible] Returning cached model data

Julian Brown Jr.

unread,
Feb 13, 2024, 12:13:54 PMFeb 13
to rundeck-discuss
Rundecksourcecfg.pngScreenshot 2024-02-13 121243.png

rac...@rundeck.com

unread,
Feb 13, 2024, 12:27:29 PMFeb 13
to rundeck-discuss
Hi Julian,

In the model source, you have an SSH configuration and you're using Windows-based nodes, not sure about your remote Windows nodes configuration but usually Ansible uses winrm like this config. Could you double-check it?

In that example, the "SSH connection" stuff is configured as "none selected" delegating all to Ansible configuration/inventory.

Regards.

rac...@rundeck.com

unread,
Feb 13, 2024, 12:29:31 PMFeb 13
to rundeck-discuss
Also, to discard any Ansible-side issue, try to dispatch playbooks to your remote nodes via ansible first (not via rundeck integration) using your default ansible config.

Julian Brown Jr.

unread,
Feb 13, 2024, 12:59:10 PMFeb 13
to rundeck-discuss
Screenshot 2024-02-13 125514.png

I have removed all the SSH configurations and modelled my inventory file similarly to the one provided in the link but the error still occurs. The only difference is that I am using https to connect to my hosts and I had recently tested that connection and it works fine. I also tested running playbooks on my remote nodes with Ansible and everything works fine as expected.

rac...@rundeck.com

unread,
Feb 13, 2024, 1:40:21 PMFeb 13
to rundeck-discuss

Hi, Julian.

Are you sure rundeck is executing in the same virtual machine as Ansible? I’m asking due of this.

“ I have my Ansible control node running on a CentOS 7 VM and rundeck was installed using docker onto the same machine”

If you run Rundeck in a Docker container and Ansible on the host, Rundeck will only access the Docker container’s internal filesystem.

Now, considering that Rundeck and Ansible are operating on the same server, it appears that Rundeck is unable to retrieve the inventory, most likely due to a similar remote_tmp parameter issue in the ansible.cfg file. It appears that rundeck cannot copy those files (gather-hosts.yml and host-tpl.j2) due to permissions or because it is executing in a different environment.

Could you please double-check your ansible.cfg and test with the most recent Rundeck version?

Regards!

Julian Brown Jr.

unread,
Feb 13, 2024, 3:06:09 PMFeb 13
to rundeck-discuss
M Rundeck version is: 5.0.1

Yes, I can confirm that Rundeck and Ansible are both running on the same virtual machine.  I do remember receiving a permission error before and I provided access for Rundeck to the folder and that's when the error changed to "error copying files".  I checked my ansible.cfg and I changed the variable to match the sample you provided but still no luck. I think you are correct about Rundeck being unable to copy since it is inside a docker container if you think this is the issue what should I do to fix this?

Thanks.

rac...@rundeck.com

unread,
Feb 13, 2024, 3:24:52 PMFeb 13
to rundeck-discuss
Hi Julian,
 
Yes, I believe this is the problem. Please install and run Rundeck on the server host (not within a container). Containers are a "kind of virtualization" that runs in a separate environment and that is a problem for Ansible integration. You can launch (and configure) a WAR-based instance using your "ermez" Centos account; however, launching rundeck as root is not recommended.

Regards.

Julian Brown Jr.

unread,
Feb 13, 2024, 3:47:49 PMFeb 13
to rundeck-discuss
Ok, I will try this. I'm curious shouldn't I just follow the instructions for installing on Linux?

rac...@rundeck.com

unread,
Feb 14, 2024, 7:17:35 AMFeb 14
to rundeck-discuss
Hi Julian.

That's correct. The quickest option is to test a WAR-based instance.

Greetings.

Julian Brown Jr.

unread,
Feb 14, 2024, 9:34:39 AMFeb 14
to rundeck-discuss
Good morning,

I downloaded Rundeck following the instructions provided and configured it the same way as the old version but it doesn't seem to work anymore as when I log in I am met with a 500 error every time. Is there a download link for an older version of Rundeck?

rac...@rundeck.com

unread,
Feb 14, 2024, 9:39:18 AMFeb 14
to rundeck-discuss
Hi Julian,

First, check the prerequisites.

How did you install Rundeck? How did you launch Rundeck?

Also, could you share the service.log output?

Julian Brown Jr.

unread,
Feb 14, 2024, 10:58:39 AMFeb 14
to rundeck-discuss
The prerequisites are not an issue. I installed Rundeck following the link you gave me and launched it exactly the way I did before using a browser. Here is the service log output:

[2024-02-13T19:59:44,376] WARN  cache.LocalCache - Exception thrown during refresh
java.util.concurrent.ExecutionException: java.io.IOException: Decryption failed.
        at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:592) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:551) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:111) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:247) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2345) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.lambda$loadAsync$0(LocalCache.java:2325) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1286) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:760) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:134) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.loadAsync(LocalCache.java:2322) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.refresh(LocalCache.java:2393) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.scheduleRefresh(LocalCache.java:2370) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2106) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache.getIfPresent(LocalCache.java:4017) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$LocalManualCache.getIfPresent(LocalCache.java:4913) [guava-32.0.1-jre.jar!/:?]
        at rundeck.services.ProjectManagerService.$tt__getFrameworkProject(ProjectManagerService.groovy:195) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor422.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.ProjectManagerService$_getFrameworkProject_closure10.doCall(ProjectManagerService.groovy) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor421.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.ProjectManagerService$_getFrameworkProject_closure10.doCall(ProjectManagerService.groovy) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor421.invoke(Unknown Source) ~[?:?]

        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:416) [groovy-3.0.19.jar!/:3.0.19]
        at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) [grails-datastore-gorm-8.0.0.jar!/:?]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.27.jar!/:5.3.27]
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) [grails-datastore-gorm-8.0.0.jar!/:?]
        at rundeck.services.ProjectManagerService.getFrameworkProject(ProjectManagerService.groovy) [classes!/:?]
        at rundeck.services.FrameworkService.getFrameworkProject(FrameworkService.groovy:483) [classes!/:?]
        at org.rundeck.app.core.FrameworkServiceCapabilities$getFrameworkProject.call(Unknown Source) [rundeck-app-util-5.0.2-20240212.jar!/:?]
        at rundeck.services.PluginConfigService.$tt__loadScmConfig(PluginConfigService.groovy:28) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor428.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.PluginConfigService$_loadScmConfig_closure1.doCall(PluginConfigService.groovy) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor427.invoke(Unknown Source) ~[?:?]

        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 grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) [grails-datastore-gorm-8.0.0.jar!/:?]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.27.jar!/:5.3.27]
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) [grails-datastore-gorm-8.0.0.jar!/:?]
        at rundeck.services.ProjectManagerService.getFrameworkProject(ProjectManagerService.groovy) [classes!/:?]
        at rundeck.services.FrameworkService.getFrameworkProject(FrameworkService.groovy:483) [classes!/:?]
        at org.rundeck.app.core.FrameworkServiceCapabilities$getFrameworkProject.call(Unknown Source) [rundeck-app-util-5.0.2-20240212.jar!/:?]
        at rundeck.services.PluginConfigService.$tt__loadScmConfig(PluginConfigService.groovy:28) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor428.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.PluginConfigService$_loadScmConfig_closure1.doCall(PluginConfigService.groovy) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor427.invoke(Unknown Source) ~[?:?]

        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:416) [groovy-3.0.19.jar!/:3.0.19]
        at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) [grails-datastore-gorm-8.0.0.jar!/:?]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.27.jar!/:5.3.27]
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) [grails-datastore-gorm-8.0.0.jar!/:?]
        at rundeck.services.PluginConfigService.loadScmConfig(PluginConfigService.groovy) [classes!/:?]
        at rundeck.services.PluginConfigService$loadScmConfig.call(Unknown Source) [classes!/:?]
        at rundeck.services.ScmService.loadScmConfig(ScmService.groovy:299) [classes!/:?]
        at rundeck.services.ScmService$loadScmConfig$3.call(Unknown Source) [classes!/:?]
        at rundeck.services.scm.ScmLoaderService$_beginScmLoader_closure1.doCall(ScmLoaderService.groovy:60) [classes!/:?]
        at rundeck.services.scm.ScmLoaderService$_beginScmLoader_closure1.doCall(ScmLoaderService.groovy) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor449.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.Closure.run(Closure.java:498) [groovy-3.0.19.jar!/:3.0.19]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

        at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.io.IOException: Decryption failed.
        at org.rundeck.plugin.encryption.JasyptEncryptionConverterPlugin$DecryptStream.getInputStream(JasyptEncryptionConverterPlugin.java:452) ~[?:?]
        at com.dtolabs.rundeck.core.storage.BaseStreamResource.getInputStream(BaseStreamResource.java:42) ~[rundeck-core-5.0.2-20240212.jar!/:?]
        at rundeck.services.ProjectManagerService.loadProjectConfigResource(ProjectManagerService.groovy:464) ~[classes!/:?]
        at rundeck.services.ProjectManagerService.$tt__loadProjectConfig(ProjectManagerService.groovy:760) ~[classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor434.invoke(Unknown Source) ~[?:?]

        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]

rac...@rundeck.com

unread,
Feb 14, 2024, 11:04:30 AMFeb 14
to rundeck-discuss

Which Java version are you using?

Check your version with the java -version command.

Julian Brown Jr.

unread,
Feb 14, 2024, 1:01:12 PMFeb 14
to rundeck-discuss
I am using jdk 11.0.22

Screenshot 2024-02-14 125619.png

rac...@rundeck.com

unread,
Feb 14, 2024, 1:05:00 PMFeb 14
to rundeck-discuss
Could you regenerate the instance from scratch? It seems that you're facing this.

Julian Brown Jr.

unread,
Feb 15, 2024, 3:03:42 PMFeb 15
to rundeck-discuss
Sorry for the delayed response. I tried this fix but it didn't work seems like when I downloaded Rundeck it updated to a newer version and now its just broken because when I was using version 5.0.1 this was not a problem. Are there any other fixes for this 500 error?

I have added the log file below.

[2024-02-15T13:47:19,884] WARN  cache.LocalCache - Exception thrown during refresh

java.util.concurrent.ExecutionException: java.io.IOException: Decryption failed.
        at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:592) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:551) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:111) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:247) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2345) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.lambda$loadAsync$0(LocalCache.java:2325) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1286) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:760) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:134) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.loadAsync(LocalCache.java:2322) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.refresh(LocalCache.java:2393) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.scheduleRefresh(LocalCache.java:2370) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2069) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache.get(LocalCache.java:4011) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4034) [guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5010) [guava-32.0.1-jre.jar!/:?]
        at rundeck.services.ProjectManagerService.$tt__getFrameworkProject(ProjectManagerService.groovy:198) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor481.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.ProjectManagerService$_getFrameworkProject_closure10.doCall(ProjectManagerService.groovy) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor480.invoke(Unknown Source) ~[?:?]

        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:416) [groovy-3.0.19.jar!/:3.0.19]
        at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) [grails-datastore-gorm-8.0.0.jar!/:?]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.27.jar!/:5.3.27]
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) [grails-datastore-gorm-8.0.0.jar!/:?]
        at rundeck.services.ProjectManagerService.getFrameworkProject(ProjectManagerService.groovy) [classes!/:?]
        at rundeck.services.FrameworkService.getFrameworkProject(FrameworkService.groovy:483) [classes!/:?]
        at org.rundeck.app.core.FrameworkServiceCapabilities$getFrameworkProject.call(Unknown Source) [rundeck-app-util-5.1.0-20240214.jar!/:?]

        at rundeck.services.PluginConfigService.$tt__loadScmConfig(PluginConfigService.groovy:28) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor499.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.ProjectManagerService$_getFrameworkProject_closure10.doCall(ProjectManagerService.groovy) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor480.invoke(Unknown Source) ~[?:?]

        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:416) [groovy-3.0.19.jar!/:3.0.19]
        at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) [grails-datastore-gorm-8.0.0.jar!/:?]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.27.jar!/:5.3.27]
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) [grails-datastore-gorm-8.0.0.jar!/:?]
        at rundeck.services.ProjectManagerService.getFrameworkProject(ProjectManagerService.groovy) [classes!/:?]
        at rundeck.services.FrameworkService.getFrameworkProject(FrameworkService.groovy:483) [classes!/:?]
        at org.rundeck.app.core.FrameworkServiceCapabilities$getFrameworkProject.call(Unknown Source) [rundeck-app-util-5.1.0-20240214.jar!/:?]

        at rundeck.services.PluginConfigService.$tt__loadScmConfig(PluginConfigService.groovy:28) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor499.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.PluginConfigService$_loadScmConfig_closure1.doCall(PluginConfigService.groovy) [classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor498.invoke(Unknown Source) ~[?:?]

        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:416) [groovy-3.0.19.jar!/:3.0.19]
        at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) [grails-datastore-gorm-8.0.0.jar!/:?]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.27.jar!/:5.3.27]
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) [grails-datastore-gorm-8.0.0.jar!/:?]
        at rundeck.services.PluginConfigService.loadScmConfig(PluginConfigService.groovy) [classes!/:?]
        at rundeck.services.PluginConfigService$loadScmConfig.call(Unknown Source) [classes!/:?]
        at rundeck.services.ScmService.loadScmConfig(ScmService.groovy:300) [classes!/:?]

        at rundeck.services.ScmService$loadScmConfig$3.call(Unknown Source) [classes!/:?]
        at rundeck.services.scm.ScmLoaderService$_beginScmLoader_closure1.doCall(ScmLoaderService.groovy:60) [classes!/:?]
        at rundeck.services.scm.ScmLoaderService$_beginScmLoader_closure1.doCall(ScmLoaderService.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 groovy.lang.Closure.run(Closure.java:498) [groovy-3.0.19.jar!/:3.0.19]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: java.io.IOException: Decryption failed.
        at org.rundeck.plugin.encryption.JasyptEncryptionConverterPlugin$DecryptStream.getInputStream(JasyptEncryptionConverterPlugin.java:452) ~[?:?]
        at com.dtolabs.rundeck.core.storage.BaseStreamResource.getInputStream(BaseStreamResource.java:42) ~[rundeck-core-5.1.0-20240214.jar!/:?]

        at rundeck.services.ProjectManagerService.loadProjectConfigResource(ProjectManagerService.groovy:464) ~[classes!/:?]
        at rundeck.services.ProjectManagerService.$tt__loadProjectConfig(ProjectManagerService.groovy:760) ~[classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor487.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) ~[groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.ProjectManagerService$_loadProjectConfig_closure39.doCall(ProjectManagerService.groovy) ~[classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor486.invoke(Unknown Source) ~[?:?]

        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:416) ~[groovy-3.0.19.jar!/:3.0.19]
        at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) ~[grails-datastore-gorm-8.0.0.jar!/:?]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.27.jar!/:5.3.27]
Caused by: java.io.IOException: Decryption failed.
        at org.rundeck.plugin.encryption.JasyptEncryptionConverterPlugin$DecryptStream.getInputStream(JasyptEncryptionConverterPlugin.java:452) ~[?:?]
        at com.dtolabs.rundeck.core.storage.BaseStreamResource.getInputStream(BaseStreamResource.java:42) ~[rundeck-core-5.1.0-20240214.jar!/:?]

        at rundeck.services.ProjectManagerService.loadProjectConfigResource(ProjectManagerService.groovy:464) ~[classes!/:?]
        at rundeck.services.ProjectManagerService.$tt__loadProjectConfig(ProjectManagerService.groovy:760) ~[classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor487.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) ~[groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.ProjectManagerService$_loadProjectConfig_closure39.doCall(ProjectManagerService.groovy) ~[classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor486.invoke(Unknown Source) ~[?:?]

        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:416) ~[groovy-3.0.19.jar!/:3.0.19]
        at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) ~[grails-datastore-gorm-8.0.0.jar!/:?]
        at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.27.jar!/:5.3.27]
        at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) ~[grails-datastore-gorm-8.0.0.jar!/:?]
        at rundeck.services.ProjectManagerService.loadProjectConfig(ProjectManagerService.groovy) ~[classes!/:?]
        at com.dtolabs.rundeck.server.projects.RundeckProject.getProjectConfig(RundeckProject.java:149) ~[classes!/:?]
        at com.dtolabs.rundeck.server.projects.RundeckProject.getConfigLastModifiedTime(RundeckProject.java:128) ~[classes!/:?]
        at rundeck.services.ProjectManagerService.needsReload(ProjectManagerService.groovy:813) ~[classes!/:?]
        at rundeck.services.ProjectManagerService.access$0(ProjectManagerService.groovy) ~[classes!/:?]
        at rundeck.services.ProjectManagerService$2.reload(ProjectManagerService.groovy:246) ~[classes!/:?]
        at rundeck.services.ProjectManagerService$2.reload(ProjectManagerService.groovy) ~[classes!/:?]
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3573) ~[guava-32.0.1-jre.jar!/:?]
        at com.google.common.cache.LocalCache$Segment.loadAsync(LocalCache.java:2321) ~[guava-32.0.1-jre.jar!/:?]
        ... 80 more
Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException
        at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1169) ~[?:?]
        at org.rundeck.plugin.encryption.JasyptEncryptionConverterPlugin$DecryptStream.getInputStream(JasyptEncryptionConverterPlugin.java:450) ~[?:?]
        at com.dtolabs.rundeck.core.storage.BaseStreamResource.getInputStream(BaseStreamResource.java:42) ~[rundeck-core-5.1.0-20240214.jar!/:?]

        at rundeck.services.ProjectManagerService.loadProjectConfigResource(ProjectManagerService.groovy:464) ~[classes!/:?]
        at rundeck.services.ProjectManagerService.$tt__loadProjectConfig(ProjectManagerService.groovy:760) ~[classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor487.invoke(Unknown Source) ~[?:?]

        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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) ~[groovy-3.0.19.jar!/:3.0.19]
        at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) ~[groovy-3.0.19.jar!/:3.0.19]
        at rundeck.services.ProjectManagerService$_loadProjectConfig_closure39.doCall(ProjectManagerService.groovy) ~[classes!/:?]
        at jdk.internal.reflect.GeneratedMethodAccessor486.invoke(Unknown Source) ~[?:?]

        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]

rac...@rundeck.com

unread,
Feb 15, 2024, 3:19:44 PMFeb 15
to rundeck-discuss
Hi Julian,

This problem occurs when the keys are encrypted using the default install password and the password is changed later.

Are you running an existing Rundeck backend on the new instance? Isn't it a new instance then? Are you certain that the settings have not been modified? Could you please share your rundeck-config.properties file so that we may look at it?

Regards.
Message has been deleted

rac...@rundeck.com

unread,
Feb 15, 2024, 3:23:57 PMFeb 15
to rundeck-discuss
That issue is well explained here too. That's why I'm asking for your backend/rundeck-config.properties file.

Greetings.

Julian Brown Jr.

unread,
Feb 15, 2024, 3:28:40 PMFeb 15
to rundeck-discuss
Here's my config.properties file:

Screenshot 2024-02-15 152259.png

rac...@rundeck.com

unread,
Feb 15, 2024, 4:43:59 PMFeb 15
to rundeck-discuss

Hi Julian,

It appears that you are not utilizing a WAR-based instance (probably an RPM-based one). That’s ok, but I’m not sure whether that instance is an upgrade or a new one (it appears to be an upgrade given the “Extra settings” block is not included by default). Anyway, how did you set up Rundeck in that CentOS 7 VM?

I tested on a fresh CentOS 7 virtual machine. I took the following steps:

  1. sudo su - (to be root and install Rundeck and Java)
  2. yum -y update
  3. curl https://raw.githubusercontent.com/rundeck/packaging/main/scripts/rpm-setup.sh 2> /dev/null | bash -s rundeck
  4. Install the Java JDK: yum install java-11-openjdk
  5. Change the grails.ServerURL value by the exit IP/domain node, eg: grails.ServerURL=http://192.168.10.19:4440
  6. Start the service and check the service.log: systemctl start rundeckd; tail -f /var/log/rundeck/service.log

Now, for your rundeck-config.properties file: Are the rundeck.storage.converter.1.config.password and rundeck.config.storage.converter.1.config.password values identical to “default.encryption. password”? Or is a way to hide your “real encryption password”? (if so, that’s ok).

Following installation, these password fields are random strings created by Rundeck. Let me show you my test instance file:

#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://192.168.56.99: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=3454c48d71bfdc60 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=3454c48d71bfdc60 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

When you start rundeck and the rundeck key storage’s keys are encrypted by the default/initial password, and then you change those values, your error appears (taken from my Centos 7):

[2024-02-15T21:24:30,354] WARN cache.LocalCache - Exception thrown during refresh java.util.concurrent.ExecutionException: java.io.IOException: Decryption failed. at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:592) ~[guava-32.0.1-jre.jar!/:?] at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:551) ~[guava-32.0.1-jre.jar!/:?] at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:111) ~[guava-32.0.1-jre.jar!/:?] at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:247) ~[guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2345) ~[guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$Segment.lambda$loadAsync$0(LocalCache.java:2325) ~[guava-32.0.1-jre.jar!/:?] at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31) [guava-32.0.1-jre.jar!/:?] at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1286) [guava-32.0.1-jre.jar!/:?] at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:760) [guava-32.0.1-jre.jar!/:?] at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:134) [guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$Segment.loadAsync(LocalCache.java:2322) [guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$Segment.refresh(LocalCache.java:2393) [guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$Segment.scheduleRefresh(LocalCache.java:2370) [guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2069) [guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache.get(LocalCache.java:4011) [guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4034) [guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5010) [guava-32.0.1-jre.jar!/:?] at rundeck.services.ProjectManagerService.$tt__getFrameworkProject(ProjectManagerService.groovy:198) [classes!/:?] at jdk.internal.reflect.GeneratedMethodAccessor483.invoke(Unknown Source) ~[?:?] 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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19] at rundeck.services.ProjectManagerService$_getFrameworkProject_closure10.doCall(ProjectManagerService.groovy) [classes!/:?] at jdk.internal.reflect.GeneratedMethodAccessor482.invoke(Unknown Source) ~[?:?] 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:416) [groovy-3.0.19.jar!/:3.0.19] at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) [grails-datastore-gorm-8.0.0.jar!/:?] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.27.jar!/:5.3.27] at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) [grails-datastore-gorm-8.0.0.jar!/:?] at rundeck.services.ProjectManagerService.getFrameworkProject(ProjectManagerService.groovy) [classes!/:?] at rundeck.services.FrameworkService.getFrameworkProject(FrameworkService.groovy:483) [classes!/:?] at org.rundeck.app.core.FrameworkServiceCapabilities$getFrameworkProject.call(Unknown Source) [rundeck-app-util-5.1.0-20240214.jar!/:?] at rundeck.services.PluginConfigService.$tt__loadScmConfig(PluginConfigService.groovy:28) [classes!/:?] at jdk.internal.reflect.GeneratedMethodAccessor499.invoke(Unknown Source) ~[?:?] 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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) [groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) [groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) [groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) [groovy-3.0.19.jar!/:3.0.19] at rundeck.services.PluginConfigService$_loadScmConfig_closure1.doCall(PluginConfigService.groovy) [classes!/:?] at jdk.internal.reflect.GeneratedMethodAccessor498.invoke(Unknown Source) ~[?:?] 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:416) [groovy-3.0.19.jar!/:3.0.19] at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) [grails-datastore-gorm-8.0.0.jar!/:?] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) [spring-tx-5.3.27.jar!/:5.3.27] at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) [grails-datastore-gorm-8.0.0.jar!/:?] at rundeck.services.PluginConfigService.loadScmConfig(PluginConfigService.groovy) [classes!/:?] at rundeck.services.PluginConfigService$loadScmConfig.call(Unknown Source) [classes!/:?] at rundeck.services.ScmService.loadScmConfig(ScmService.groovy:300) [classes!/:?] at rundeck.services.ScmService$loadScmConfig$3.call(Unknown Source) [classes!/:?] at rundeck.services.scm.ScmLoaderService$_beginScmLoader_closure1.doCall(ScmLoaderService.groovy:60) [classes!/:?] at rundeck.services.scm.ScmLoaderService$_beginScmLoader_closure1.doCall(ScmLoaderService.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 groovy.lang.Closure.run(Closure.java:498) [groovy-3.0.19.jar!/:3.0.19] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?] at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) [?:?] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:829) [?:?] Caused by: java.io.IOException: Decryption failed. at org.rundeck.plugin.encryption.JasyptEncryptionConverterPlugin$DecryptStream.getInputStream(JasyptEncryptionConverterPlugin.java:452) ~[?:?] at com.dtolabs.rundeck.core.storage.BaseStreamResource.getInputStream(BaseStreamResource.java:42) ~[rundeck-core-5.1.0-20240214.jar!/:?] at rundeck.services.ProjectManagerService.loadProjectConfigResource(ProjectManagerService.groovy:464) ~[classes!/:?] at rundeck.services.ProjectManagerService.$tt__loadProjectConfig(ProjectManagerService.groovy:760) ~[classes!/:?] at jdk.internal.reflect.GeneratedMethodAccessor489.invoke(Unknown Source) ~[?:?] 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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) ~[groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) ~[groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) ~[groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) ~[groovy-3.0.19.jar!/:3.0.19] at rundeck.services.ProjectManagerService$_loadProjectConfig_closure39.doCall(ProjectManagerService.groovy) ~[classes!/:?] at jdk.internal.reflect.GeneratedMethodAccessor488.invoke(Unknown Source) ~[?:?] 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:416) ~[groovy-3.0.19.jar!/:3.0.19] at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) ~[grails-datastore-gorm-8.0.0.jar!/:?] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.27.jar!/:5.3.27] at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) ~[grails-datastore-gorm-8.0.0.jar!/:?] at rundeck.services.ProjectManagerService.loadProjectConfig(ProjectManagerService.groovy) ~[classes!/:?] at com.dtolabs.rundeck.server.projects.RundeckProject.getProjectConfig(RundeckProject.java:149) ~[classes!/:?] at com.dtolabs.rundeck.server.projects.RundeckProject.getConfigLastModifiedTime(RundeckProject.java:128) ~[classes!/:?] at rundeck.services.ProjectManagerService.needsReload(ProjectManagerService.groovy:813) ~[classes!/:?] at rundeck.services.ProjectManagerService.access$0(ProjectManagerService.groovy) ~[classes!/:?] at rundeck.services.ProjectManagerService$2.reload(ProjectManagerService.groovy:246) ~[classes!/:?] at rundeck.services.ProjectManagerService$2.reload(ProjectManagerService.groovy) ~[classes!/:?] at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3573) ~[guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$Segment.loadAsync(LocalCache.java:2321) ~[guava-32.0.1-jre.jar!/:?] ... 80 more Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1169) ~[?:?] at org.rundeck.plugin.encryption.JasyptEncryptionConverterPlugin$DecryptStream.getInputStream(JasyptEncryptionConverterPlugin.java:450) ~[?:?] at com.dtolabs.rundeck.core.storage.BaseStreamResource.getInputStream(BaseStreamResource.java:42) ~[rundeck-core-5.1.0-20240214.jar!/:?] at rundeck.services.ProjectManagerService.loadProjectConfigResource(ProjectManagerService.groovy:464) ~[classes!/:?] at rundeck.services.ProjectManagerService.$tt__loadProjectConfig(ProjectManagerService.groovy:760) ~[classes!/:?] at jdk.internal.reflect.GeneratedMethodAccessor489.invoke(Unknown Source) ~[?:?] 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 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030) ~[groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:1036) ~[groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:1019) ~[groovy-3.0.19.jar!/:3.0.19] at org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:97) ~[groovy-3.0.19.jar!/:3.0.19] at rundeck.services.ProjectManagerService$_loadProjectConfig_closure39.doCall(ProjectManagerService.groovy) ~[classes!/:?] at jdk.internal.reflect.GeneratedMethodAccessor488.invoke(Unknown Source) ~[?:?] 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:416) ~[groovy-3.0.19.jar!/:3.0.19] at grails.gorm.transactions.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:94) ~[grails-datastore-gorm-8.0.0.jar!/:?] at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.27.jar!/:5.3.27] at grails.gorm.transactions.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:91) ~[grails-datastore-gorm-8.0.0.jar!/:?] at rundeck.services.ProjectManagerService.loadProjectConfig(ProjectManagerService.groovy) ~[classes!/:?] at com.dtolabs.rundeck.server.projects.RundeckProject.getProjectConfig(RundeckProject.java:149) ~[classes!/:?] at com.dtolabs.rundeck.server.projects.RundeckProject.getConfigLastModifiedTime(RundeckProject.java:128) ~[classes!/:?] at rundeck.services.ProjectManagerService.needsReload(ProjectManagerService.groovy:813) ~[classes!/:?] at rundeck.services.ProjectManagerService.access$0(ProjectManagerService.groovy) ~[classes!/:?] at rundeck.services.ProjectManagerService$2.reload(ProjectManagerService.groovy:246) ~[classes!/:?] at rundeck.services.ProjectManagerService$2.reload(ProjectManagerService.groovy) ~[classes!/:?] at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3573) ~[guava-32.0.1-jre.jar!/:?] at com.google.common.cache.LocalCache$Segment.loadAsync(LocalCache.java:2321) ~[guava-32.0.1-jre.jar!/:?] ... 80 more

Could you confirm that you’re using the right key and storage passwords? Could you test in a fresh VM?

Regards.

Julian Brown Jr.

unread,
Feb 16, 2024, 9:47:24 AMFeb 16
to rundeck-discuss
Hi,

I am not able to test on a fresh VM unfortunately. The extra settings block was put in there by me because there were issues with getting past the login screen. In terms of setting up this is what I did:

1. I followed the steps exactly as stated on the Rundeck website see here for the community version.
2. Then I went into the rundeck-config.properties and changed grails.serverURL to match the IP of my VM.
3. At the bottom I added "Extra Settings" to deal with an issue I was having that would leave me stuck on the login screen.
         rundeck.security.httpHeaders.provider.csp.enabled=false
         rundeck.security.httpHeaders.provider.csp.config.form-action=self https://10.90.8.44:4440 
          (both of these settings successfully fixed that issue)
4. In the framework.properties I changed framework.server.name and framework.server.hostname to match the IP of my VM. I also changed framework.sever.url to match the gralis.serverURL.
5. Started the service and checked the tail log to make sure everything was running.

The values for rundeck.storage.converter.1.config.password and rundeck.config.storage.converter.1.config.password were identical and when I tried changing the values to "default.encryption.password" the error still occurred. Before this error, I had never adjusted the passwords before and I assume they have always been identical so I wouldn't know if the key and storage passwords are correct or not. 

Julian Brown Jr.

unread,
Feb 16, 2024, 9:52:28 AMFeb 16
to rundeck-discuss
One other question I noticed you installed rundeck using root why is that?

Julian Brown Jr.

unread,
Feb 16, 2024, 10:09:08 AMFeb 16
to rundeck-discuss
Thankfully I got past the 500 error I am now going to try the configuration to get my hosts.

rac...@rundeck.com

unread,
Feb 16, 2024, 10:15:48 AMFeb 16
to rundeck-discuss
Great, in the RPM/DEB versions, you can install it as the root user (you can also use sudo to install any other software), but the service and files are owned by the "rundeck" user.

Julian Brown Jr.

unread,
Feb 16, 2024, 10:44:55 AMFeb 16
to rundeck-discuss
To confirm this is how I am configuring the project:

Screenshot 2024-02-16 102557.png
No other settings are filled since I am connecting to a Windows host and do not need ssh. The file copier is set to WinRM Python File Copier with the authentication type set to "ntlm" and "no SSL verification" set to true. Everything else is the default.

Under "Edit Nodes" these are my settings
Screenshot 2024-02-16 103542.png
Again no other settings below have been filled in SSH connection or privilege escalation. The original error of not being able to copy files has returned and since I didn't install as root can I just give permissions to allow rundeck to access the files it needs. If so which folders does rundeck need access to?
Screenshot 2024-02-16 104432.png

rac...@rundeck.com

unread,
Feb 16, 2024, 11:33:37 AMFeb 16
to rundeck-discuss

Hi Julian.

Right now your ansible stuff is owned by the ermez user (look at the /home/ermez/.ansible and /home/ermez/.local/bin paths) and the Rundeck instance by the rundeck user. (that’s why I recommended] you install a Rundeck WAR-based instance ruled by the ermez user, to make sure that all stuff is ruled by the ermez user).

Anyway, that’s fixable. You’re using an RPM/yum-repo version of Rundeck, so the default Rundeck user is rundeck (but again: you can install it as root or sudo, that’s normal in any Unix-based system and it’s not related to the user that owns the Rundeck service), so, you will make sure that the rundeck user reaches the ansible binaries and ansible config/inventory files.

To do so, a good practice is to use a “server-wide” Ansible installation and make sure that the rundeck user can reach the Ansible binaries and the config/inventory files (usually owned by the ansible user).

Greetings.


Julian Brown Jr.

unread,
Feb 16, 2024, 12:49:12 PMFeb 16
to rundeck-discuss
Ok, I understand what you're saying. When I did the most recent install of rundeck using yum I did use sudo by the way. For some reason, however, when I tried to download the WAR file before as you recommended the file was getting corrupted whenever I would copy it to my VM.

In terms of Ansible, you are correct the Ansible installation was done for the user and not server-wide but at this point, I am running a lot of tests so I would rather not reinstall Ansible right now. Do you think if I just added rundeck to the ermez group this would resolve the issue? If not then I can try a reinstallation of Ansible server-wide but it would have to wait.

Regardless you have been very helpful with this issue and let me know what you recommend.

rac...@rundeck.com

unread,
Feb 16, 2024, 3:03:55 PMFeb 16
to rundeck-discuss

I see. In that case, the best option is to run a Rundeck WAR instance as ermez user. Changing the user’s workspace rights isn’t the cleanest way to implement that integration (and isn’t a good practice). So, you can stop and disable the RPM Rundeck service (don’t uninstall it, it works, and it’s useful if you want to make some tests :-) and try again to run a Rundeck on /home/ermez/rundeck path ruled by the ermez user.

Greetings!

Julian Brown Jr.

unread,
Feb 16, 2024, 4:24:41 PMFeb 16
to rundeck-discuss
Thank you I will try this.

Julian Brown Jr.

unread,
Feb 20, 2024, 9:27:28 AMFeb 20
to rundeck-discuss
The WAR install works perfectly thanks a lot. I can see my nodes listed and a connection was established.

rac...@rundeck.com

unread,
Feb 20, 2024, 9:38:30 AMFeb 20
to rundeck-discuss
Amazing, Julian! cheers!
Reply all
Reply to author
Forward
0 new messages