-
Notifications
You must be signed in to change notification settings - Fork 186
Error on credential file load for local codedeploy agent #352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I'm getting the same. I believe it's due to the packaged version of aws-sdk-core (3.121.1) and aws-sigv4 (1.5.1) Running it with aws-sdk-core (3.170.0) and aws-sigv4 (1.5.2) (which happened to be installed under the system ruby gems) it worked just fine. |
^^ cc @mwjones-aws |
@alboyadjian Adam. How do you run it with the 3.170.0 version of aws-sdk-core instead of the 3.121.1 version? |
We were installing another unrelated gem that happened to use the aws-sdk core and that was installed in the system gems directory. By changing the env variables GEM_PATH and GEM_HOME from the aws-codedeploy-agent vendor directory to our system gems directory the agent could be run. However, as a more stable workaround, what we ended up doing is installing from source from our own fork of the gem that's ruby 3.1 compatible. Our fork/branch: The diff: We use chef for provisioning, so I can share a snippet of chef code for how to do the install from source. It's designed to match the organization of the files in the .deb package, so there are a couple of extra hoops to jump through to reorganize the gems: git '/opt/codedeploy-agent' do
repository "https://github.com/vhl/aws-codedeploy-agent.git"
revision 'ruby3.x'
action :sync
end
execute 'copy_codedeploy_gems' do
action :nothing
cwd '/opt/codedeploy-agent'
command "find vendor/ruby/3.1.0/gems/ -maxdepth 1 -mindepth 1 -exec cp -r '{}' vendor/gems \\;"
end
execute 'copy_codedeploy_specifications' do
action :nothing
cwd '/opt/codedeploy-agent'
command "find vendor/ruby/3.1.0/specifications/ -maxdepth 1 -mindepth 1 -exec cp -r '{}' vendor/specifications \\;"
end
execute 'bundle_codedeploy_agent' do
action :nothing
cwd '/opt/codedeploy-agent'
command 'bundle install --path vendor --without test'
subscribes :run, 'gem_package[vhl_ruby_bundler]', :immediately
notifies :run, 'execute[copy_codedeploy_gems]', :immediately
notifies :run, 'execute[copy_codedeploy_specifications]', :immediately
end You will also want to create a systemd unit or initd script like the one that comes in the deb package. |
Error on credential file load for local codedeploy agent
2023-03-10 16:54:50 ERROR [codedeploy-agent(18416)]: booting child: error during start or run: RuntimeError - Failed to load credentials from path credentials - /opt/codedeploy-agent/lib/instance_agent/file_credentials.rb:18:in
refresh' /opt/codedeploy-agent/vendor/gems/aws-sdk-core-3.121.1/lib/aws-sdk-core/refreshing_credentials.rb:22:in
initialize'/opt/codedeploy-agent/lib/instance_agent/file_credentials.rb:11:in
initialize' /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/onpremise_config.rb:38:in
new'/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/onpremise_config.rb:38:in
configure' /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_poller.rb:37:in
initialize'/opt/codedeploy-agent/lib/instance_agent/agent/base.rb:10:in
new' /opt/codedeploy-agent/lib/instance_agent/agent/base.rb:10:in
runner'/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:32:in
block in prepare_run' /opt/codedeploy-agent/lib/instance_agent/runner/child.rb:78:in
with_error_handling'/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:31:in
prepare_run' /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:64:in
block in prepare_run_with_error_handling'Debian GNU/Linus 9.13
The text was updated successfully, but these errors were encountered: