community.aws icon indicating copy to clipboard operation
community.aws copied to clipboard

fix for ssm gather fact failure

Open richardsonky opened this issue 2 years ago • 15 comments

SUMMARY Fixes https://github.com/ansible-collections/community.aws/issues/113

Replaces #583 since it was so far behind.

aws_ssm fails when gathering facts. This fix incorporates some code submitted by others, but also works on windows which others haven't done yet.

ISSUE TYPE Bugfix Pull Request COMPONENT NAME aws_ssm

ADDITIONAL INFORMATION Fixes aws_ssm connection plugin when gathering facts. Uses code a few others submitted but also fixes windows. Changed logic in the exec_command, wrap_command, and post_process functions that help to unify the output from windows and linux to make it easier to locate return values of the commands.

We have been running this in our environment for over a year and it is working without issue against win2016, win2019, centos7, suse15, and rhel7 ec2 instances.

richardsonky avatar Feb 23 '22 13:02 richardsonky

please check ubuntu 18.04, I tested on it, this PR failed.

Hokwang avatar Mar 08 '22 04:03 Hokwang

Anyone else landing here to use correctly ensure

line 534 :

stderr = stderr + str(line.decode())

ansible.cfg :

remote_tmp = /tmp/.ansible-${USER}/tmp

Playbook:

become: true
remote_user: "{{ ansible_user }}"

Where ansible_user is set in groupvars as:

ansible_user: ubuntu

HINT: you may want to add --flush-cache -vvv to flush cache and get verbose

SAMPLE PLAYBOOK:

- name: list
  hosts: thehosts
  become: true
  remote_user: "{{ ansible_user }}"
  gather_facts: false
  vars:
    ansible_connection: aws_ssm
    ansible_aws_ssm_profile: theawsprofile
    ansible_aws_ssm_bucket_name: thes3bucket
    ansible_aws_ssm_region: "theawsregion"
  tasks:
    - name: pinging
      ping:

Leon-Africa avatar Aug 29 '22 12:08 Leon-Africa

For a centos7 target, I had to make sure my shell was sh (I previously used AWS Session Manager config to set my preferred shell to /bin/bash as advised elsewhere)

jrs53 avatar Sep 14 '22 16:09 jrs53

This worked for me perfectly. I have a mixed environment; centos, ubuntu, amazon linux. I would recommend merging it.

amolsingh74 avatar Sep 20 '22 18:09 amolsingh74

This needs to be merged with the above mentioned changes - it works. We can't all be sitting with a local version manipulating the plugin - please have it mirrored to galaxy

Leon-Africa avatar Sep 29 '22 12:09 Leon-Africa

i made the changes. however i have had the fix for the original error in for a very long time, i even had another PR that i started this fix on and had problems merging changes in after a year or so. I do not know how to move this forward, lots of people say this is working yet it's not getting merged in. This will probably be the last time i try to update anything, if it doesn't get merged in then someone else may need to pick it up and run with it. The code has been working in our environment for around 2 years without issues and the plugin gets used multiple times a day. Hopefully it will get merged in this time, if not then maybe someone needs to fork this and maintain somewhere else, i just don't have time for that.

richardsonky avatar Sep 29 '22 13:09 richardsonky

Docs Build 📝

Thank you for contribution!✨

The docsite for this PR is available for download as an artifact from this run: https://github.com/ansible-collections/community.aws/actions/runs/3151641886

You can compare to the docs for the main branch here: https://ansible-collections.github.io/community.aws/branch/main

File changes:

  • A collections/community/aws/accessanalyzer_validate_policy_info_module.html
  • A collections/community/aws/acm_certificate_info_module.html
  • A collections/community/aws/acm_certificate_module.html
  • A collections/community/aws/api_gateway_domain_module.html
  • A collections/community/aws/api_gateway_module.html
  • A collections/community/aws/application_autoscaling_policy_module.html
  • A collections/community/aws/autoscaling_complete_lifecycle_action_module.html
  • A collections/community/aws/autoscaling_group_info_module.html
  • A collections/community/aws/autoscaling_group_module.html
  • A collections/community/aws/autoscaling_instance_refresh_info_module.html
  • A collections/community/aws/autoscaling_instance_refresh_module.html
  • A collections/community/aws/autoscaling_launch_config_find_module.html
  • A collections/community/aws/autoscaling_launch_config_info_module.html
  • A collections/community/aws/autoscaling_launch_config_module.html
  • A collections/community/aws/autoscaling_lifecycle_hook_module.html
  • A collections/community/aws/autoscaling_policy_module.html
  • A collections/community/aws/autoscaling_scheduled_action_module.html
  • A collections/community/aws/aws_api_gateway_domain_module.html
  • A collections/community/aws/aws_glue_crawler_module.html
  • A collections/community/aws/batch_compute_environment_module.html
  • A collections/community/aws/batch_job_definition_module.html
  • A collections/community/aws/batch_job_queue_module.html
  • A collections/community/aws/cloudfront_distribution_info_module.html
  • A collections/community/aws/cloudfront_response_headers_policy_module.html
  • A collections/community/aws/cloudwatch_metric_alarm_module.html
  • A collections/community/aws/codebuild_project_module.html
  • A collections/community/aws/codecommit_repository_module.html
  • A collections/community/aws/codepipeline_module.html
  • A collections/community/aws/config_aggregation_authorization_module.html
  • A collections/community/aws/config_aggregator_module.html
  • A collections/community/aws/config_delivery_channel_module.html
  • A collections/community/aws/config_recorder_module.html
  • A collections/community/aws/config_rule_module.html
  • A collections/community/aws/directconnect_confirm_connection_module.html
  • A collections/community/aws/directconnect_connection_module.html
  • A collections/community/aws/directconnect_gateway_module.html
  • A collections/community/aws/directconnect_link_aggregation_group_module.html
  • A collections/community/aws/directconnect_virtual_interface_module.html
  • A collections/community/aws/docsite/CHANGELOG.html
  • A collections/community/aws/ec2_asg_instance_refresh_module.html
  • A collections/community/aws/ec2_transit_gateway_vpc_attachment_info_module.html
  • A collections/community/aws/ec2_transit_gateway_vpc_attachment_module.html
  • A collections/community/aws/eks_cluster_module.html
  • A collections/community/aws/eks_fargate_profile_module.html
  • A collections/community/aws/elasticbeanstalk_app_module.html
  • A collections/community/aws/glue_connection_module.html
  • A collections/community/aws/glue_crawler_module.html
  • A collections/community/aws/glue_job_module.html
  • A collections/community/aws/inspector_target_module.html
  • A collections/community/aws/kms_key_info_module.html
  • A collections/community/aws/kms_key_module.html
  • A collections/community/aws/lambda_execute_module.html
  • A collections/community/aws/lightsail_static_ip_module.html
  • A collections/community/aws/msk_cluster_module.html
  • A collections/community/aws/msk_config_module.html
  • A collections/community/aws/networkfirewall_info_module.html
  • A collections/community/aws/networkfirewall_module.html
  • A collections/community/aws/networkfirewall_policy_info_module.html
  • A collections/community/aws/networkfirewall_policy_module.html
  • A collections/community/aws/networkfirewall_rule_group_info_module.html
  • A collections/community/aws/networkfirewall_rule_group_module.html
  • A collections/community/aws/opensearch_info_module.html
  • A collections/community/aws/opensearch_module.html
  • A collections/community/aws/rds_cluster_module.html
  • A collections/community/aws/rds_cluster_snapshot_module.html
  • A collections/community/aws/s3_bucket_info_module.html
  • A collections/community/aws/s3_cors_module.html
  • A collections/community/aws/secretsmanager_secret_module.html
  • A collections/community/aws/ses_identity_module.html
  • A collections/community/aws/ses_identity_policy_module.html
  • A collections/community/aws/ses_rule_set_module.html
  • A collections/community/aws/sns_topic_info_module.html
  • A collections/community/aws/ssm_parameter_module.html
  • A collections/community/aws/stepfunctions_state_machine_execution_module.html
  • A collections/community/aws/stepfunctions_state_machine_module.html
  • A collections/community/aws/storagegateway_info_module.html
  • A collections/community/aws/waf_condition_module.html
  • A collections/community/aws/waf_info_module.html
  • A collections/community/aws/waf_rule_module.html
  • A collections/community/aws/waf_web_acl_module.html
  • M collections/community/aws/aws_acm_info_module.html
  • M collections/community/aws/aws_acm_module.html
  • M collections/community/aws/aws_api_gateway_module.html
  • M collections/community/aws/aws_application_scaling_policy_module.html
  • M collections/community/aws/aws_batch_compute_environment_module.html
  • M collections/community/aws/aws_batch_job_definition_module.html
  • M collections/community/aws/aws_batch_job_queue_module.html
  • M collections/community/aws/aws_codebuild_module.html
  • M collections/community/aws/aws_codecommit_module.html
  • M collections/community/aws/aws_codepipeline_module.html
  • M collections/community/aws/aws_config_aggregation_authorization_module.html
  • M collections/community/aws/aws_config_aggregator_module.html
  • M collections/community/aws/aws_config_delivery_channel_module.html
  • M collections/community/aws/aws_config_recorder_module.html
  • M collections/community/aws/aws_config_rule_module.html
  • M collections/community/aws/aws_direct_connect_confirm_connection_module.html
  • M collections/community/aws/aws_direct_connect_connection_module.html
  • M collections/community/aws/aws_direct_connect_gateway_module.html
  • M collections/community/aws/aws_direct_connect_link_aggregation_group_module.html
  • M collections/community/aws/aws_direct_connect_virtual_interface_module.html
  • M collections/community/aws/aws_eks_cluster_module.html
  • M collections/community/aws/aws_elasticbeanstalk_app_module.html
  • M collections/community/aws/aws_glue_connection_module.html
  • M collections/community/aws/aws_glue_job_module.html
  • M collections/community/aws/aws_inspector_target_module.html
  • M collections/community/aws/aws_kms_info_module.html
  • M collections/community/aws/aws_kms_module.html
  • M collections/community/aws/aws_msk_cluster_module.html
  • M collections/community/aws/aws_msk_config_module.html
  • M collections/community/aws/aws_region_info_module.html
  • M collections/community/aws/aws_s3_bucket_info_module.html
  • M collections/community/aws/aws_s3_cors_module.html
  • M collections/community/aws/aws_secret_module.html
  • M collections/community/aws/aws_ses_identity_module.html
  • M collections/community/aws/aws_ses_identity_policy_module.html
  • M collections/community/aws/aws_ses_rule_set_module.html
  • M collections/community/aws/aws_sgw_info_module.html
  • M collections/community/aws/aws_ssm_connection.html
  • M collections/community/aws/aws_ssm_parameter_store_module.html
  • M collections/community/aws/aws_step_functions_state_machine_execution_module.html
  • M collections/community/aws/aws_step_functions_state_machine_module.html
  • M collections/community/aws/aws_waf_condition_module.html
  • M collections/community/aws/aws_waf_info_module.html
  • M collections/community/aws/aws_waf_rule_module.html
  • M collections/community/aws/aws_waf_web_acl_module.html
  • M collections/community/aws/cloudformation_exports_info_module.html
  • M collections/community/aws/cloudformation_stack_set_module.html
  • M collections/community/aws/cloudfront_distribution_module.html
  • M collections/community/aws/cloudfront_info_module.html
  • M collections/community/aws/cloudfront_invalidation_module.html
  • M collections/community/aws/cloudfront_origin_access_identity_module.html
  • M collections/community/aws/cloudtrail_module.html
  • M collections/community/aws/cloudwatchevent_rule_module.html
  • M collections/community/aws/cloudwatchlogs_log_group_info_module.html
  • M collections/community/aws/cloudwatchlogs_log_group_metric_filter_module.html
  • M collections/community/aws/cloudwatchlogs_log_group_module.html
  • M collections/community/aws/data_pipeline_module.html
  • M collections/community/aws/dms_endpoint_module.html
  • M collections/community/aws/dms_replication_subnet_group_module.html
  • M collections/community/aws/dynamodb_table_module.html
  • M collections/community/aws/dynamodb_ttl_module.html
  • M collections/community/aws/ec2_ami_copy_module.html
  • M collections/community/aws/ec2_asg_info_module.html
  • M collections/community/aws/ec2_asg_lifecycle_hook_module.html
  • M collections/community/aws/ec2_asg_module.html
  • M collections/community/aws/ec2_asg_scheduled_action_module.html
  • M collections/community/aws/ec2_customer_gateway_info_module.html
  • M collections/community/aws/ec2_customer_gateway_module.html
  • M collections/community/aws/ec2_eip_info_module.html
  • M collections/community/aws/ec2_eip_module.html
  • M collections/community/aws/ec2_elb_module.html
  • M collections/community/aws/ec2_instance_info_module.html
  • M collections/community/aws/ec2_instance_module.html
  • M collections/community/aws/ec2_launch_template_module.html
  • M collections/community/aws/ec2_lc_find_module.html
  • M collections/community/aws/ec2_lc_info_module.html
  • M collections/community/aws/ec2_lc_module.html
  • M collections/community/aws/ec2_metric_alarm_module.html
  • M collections/community/aws/ec2_placement_group_info_module.html
  • M collections/community/aws/ec2_placement_group_module.html
  • M collections/community/aws/ec2_scaling_policy_module.html
  • M collections/community/aws/ec2_snapshot_copy_module.html
  • M collections/community/aws/ec2_transit_gateway_info_module.html
  • M collections/community/aws/ec2_transit_gateway_module.html
  • M collections/community/aws/ec2_vpc_egress_igw_module.html
  • M collections/community/aws/ec2_vpc_endpoint_info_module.html
  • M collections/community/aws/ec2_vpc_endpoint_module.html
  • M collections/community/aws/ec2_vpc_endpoint_service_info_module.html
  • M collections/community/aws/ec2_vpc_igw_info_module.html
  • M collections/community/aws/ec2_vpc_igw_module.html
  • M collections/community/aws/ec2_vpc_nacl_info_module.html
  • M collections/community/aws/ec2_vpc_nacl_module.html
  • M collections/community/aws/ec2_vpc_nat_gateway_info_module.html
  • M collections/community/aws/ec2_vpc_nat_gateway_module.html
  • M collections/community/aws/ec2_vpc_peer_module.html
  • M collections/community/aws/ec2_vpc_peering_info_module.html
  • M collections/community/aws/ec2_vpc_route_table_info_module.html
  • M collections/community/aws/ec2_vpc_route_table_module.html
  • M collections/community/aws/ec2_vpc_vgw_info_module.html
  • M collections/community/aws/ec2_vpc_vgw_module.html
  • M collections/community/aws/ec2_vpc_vpn_info_module.html
  • M collections/community/aws/ec2_vpc_vpn_module.html
  • M collections/community/aws/ec2_win_password_module.html
  • M collections/community/aws/ecs_attribute_module.html
  • M collections/community/aws/ecs_cluster_module.html
  • M collections/community/aws/ecs_ecr_module.html
  • M collections/community/aws/ecs_service_info_module.html
  • M collections/community/aws/ecs_service_module.html
  • M collections/community/aws/ecs_tag_module.html
  • M collections/community/aws/ecs_task_module.html
  • M collections/community/aws/ecs_taskdefinition_info_module.html
  • M collections/community/aws/ecs_taskdefinition_module.html
  • M collections/community/aws/efs_info_module.html
  • M collections/community/aws/efs_module.html
  • M collections/community/aws/efs_tag_module.html
  • M collections/community/aws/elasticache_info_module.html
  • M collections/community/aws/elasticache_module.html
  • M collections/community/aws/elasticache_parameter_group_module.html
  • M collections/community/aws/elasticache_snapshot_module.html
  • M collections/community/aws/elasticache_subnet_group_module.html
  • M collections/community/aws/elb_application_lb_info_module.html
  • M collections/community/aws/elb_application_lb_module.html
  • M collections/community/aws/elb_classic_lb_info_module.html
  • M collections/community/aws/elb_classic_lb_module.html
  • M collections/community/aws/elb_instance_module.html
  • M collections/community/aws/elb_network_lb_module.html
  • M collections/community/aws/elb_target_group_info_module.html
  • M collections/community/aws/elb_target_group_module.html
  • M collections/community/aws/elb_target_info_module.html
  • M collections/community/aws/elb_target_module.html
  • M collections/community/aws/execute_lambda_module.html
  • M collections/community/aws/iam_access_key_info_module.html
  • M collections/community/aws/iam_access_key_module.html
  • M collections/community/aws/iam_group_module.html
  • M collections/community/aws/iam_managed_policy_module.html
  • M collections/community/aws/iam_mfa_device_info_module.html
  • M collections/community/aws/iam_password_policy_module.html
  • M collections/community/aws/iam_policy_info_module.html
  • M collections/community/aws/iam_policy_module.html
  • M collections/community/aws/iam_role_info_module.html
  • M collections/community/aws/iam_role_module.html
  • M collections/community/aws/iam_saml_federation_module.html
  • M collections/community/aws/iam_server_certificate_info_module.html
  • M collections/community/aws/iam_server_certificate_module.html
  • M collections/community/aws/iam_user_info_module.html
  • M collections/community/aws/iam_user_module.html
  • M collections/community/aws/index.html
  • M collections/community/aws/kinesis_stream_module.html
  • M collections/community/aws/lambda_alias_module.html
  • M collections/community/aws/lambda_event_module.html
  • M collections/community/aws/lambda_info_module.html
  • M collections/community/aws/lambda_module.html
  • M collections/community/aws/lambda_policy_module.html
  • M collections/community/aws/lightsail_module.html
  • M collections/community/aws/rds_instance_info_module.html
  • M collections/community/aws/rds_instance_module.html
  • M collections/community/aws/rds_instance_snapshot_module.html
  • M collections/community/aws/rds_option_group_info_module.html
  • M collections/community/aws/rds_option_group_module.html
  • M collections/community/aws/rds_param_group_module.html
  • M collections/community/aws/rds_snapshot_info_module.html
  • M collections/community/aws/rds_subnet_group_module.html
  • M collections/community/aws/redshift_cross_region_snapshots_module.html
  • M collections/community/aws/redshift_info_module.html
  • M collections/community/aws/redshift_module.html
  • M collections/community/aws/redshift_subnet_group_module.html
  • M collections/community/aws/route53_health_check_module.html
  • M collections/community/aws/route53_info_module.html
  • M collections/community/aws/route53_module.html
  • M collections/community/aws/route53_zone_module.html
  • M collections/community/aws/s3_bucket_notification_module.html
  • M collections/community/aws/s3_lifecycle_module.html
  • M collections/community/aws/s3_logging_module.html
  • M collections/community/aws/s3_metrics_configuration_module.html
  • M collections/community/aws/s3_sync_module.html
  • M collections/community/aws/s3_website_module.html
  • M collections/community/aws/sns_module.html
  • M collections/community/aws/sns_topic_module.html
  • M collections/community/aws/sqs_queue_module.html
  • M collections/community/aws/sts_assume_role_module.html
  • M collections/community/aws/sts_session_token_module.html
  • M collections/community/aws/wafv2_ip_set_info_module.html
  • M collections/community/aws/wafv2_ip_set_module.html
  • M collections/community/aws/wafv2_resources_info_module.html
  • M collections/community/aws/wafv2_resources_module.html
  • M collections/community/aws/wafv2_rule_group_info_module.html
  • M collections/community/aws/wafv2_rule_group_module.html
  • M collections/community/aws/wafv2_web_acl_info_module.html
  • M collections/community/aws/wafv2_web_acl_module.html
  • M collections/index_module.html R082 /home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/iam_cert_module.html /home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/ec2_asg_instance_refresh_info_module.html R083 /home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/rds_snapshot_module.html /home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/rds_cluster_info_module.html
Click to see the diff comparison.

NOTE: only file modifications are shown here. New and deleted files are excluded. See the file list and check the published docs to see those files.

The diff output was truncated because it exceeded the maximum size.

diff --git a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/aws_acm_info_module.html b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/aws_acm_info_module.html
index 2c336bd..36468c5 100644
--- a/home/runner/work/community.aws/community.aws/docsbuild/base/collections/community/aws/aws_acm_info_module.html
+++ b/home/runner/work/community.aws/community.aws/docsbuild/head/collections/community/aws/aws_acm_info_module.html
@@ -4,7 +4,7 @@
   <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>community.aws.aws_acm_info module – Retrieve certificate information from AWS Certificate Manager service &mdash; Ansible collections  documentation</title>
+  <title>community.aws.aws_acm_info module &mdash; Ansible collections  documentation</title>
       <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/css/ansible.css" type="text/css" />
       <link rel="stylesheet" href="../../../_static/antsibull-minimal.css" type="text/css" />
@@ -21,9 +21,7 @@
         <script src="../../../_static/doctools.js"></script>
         <script src="../../../_static/sphinx_highlight.js"></script>
     <script src="../../../_static/js/theme.js"></script>
-    <link rel="search" title="Search" href="../../../search.html" />
-    <link rel="next" title="community.aws.aws_api_gateway module – Manage AWS API Gateway APIs" href="aws_api_gateway_module.html" />
-    <link rel="prev" title="Synopsis" href="aws_acm_module.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
+    <link rel="search" title="Search" href="../../../search.html" /><!-- extra head elements for Ansible beyond RTD Sphinx Theme -->
 
 
 
@@ -71,18 +69,8 @@
         </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
   
               <p class="caption" role="heading"><span class="caption-text">Collections:</span></p>
-<ul class="current">
-<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Collection Index</a><ul class="current">
-<li class="toctree-l2 current"><a class="reference internal" href="../index.html">Collections in the Community Namespace</a><ul class="current">
-<li class="toctree-l3 current"><a class="reference internal" href="index.html">Community.Aws</a><ul class="current">
-<li class="toctree-l4"><a class="reference internal" href="index.html#description">Description</a></li>
-<li class="toctree-l4 current"><a class="reference internal" href="index.html#plugin-index">Plugin Index</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</li>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../index.html">Collection Index</a></li>
 </ul>
 <p class="caption" role="heading"><span class="caption-text">Plugin indexes:</span></p>
 <ul>
@@ -105,10 +93,7 @@
           <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
       <li><a href="../../../index.html" class="icon icon-home"></a> &raquo;</li>
-          <li><a href="../../index.html">Collection Index</a> &raquo;</li>
-          <li><a href="../index.html">Collections in the Community Namespace</a> &raquo;</li>
-          <li><a href="index.html">Community.Aws</a> &raquo;</li>
-      <li>community.aws.aws_acm_info module – Retrieve certificate information from AWS Certificate Manager service</li>
+      <li>community.aws.aws_acm_info module</li>
       <li class="wy-breadcrumbs-aside">
       </li>
   </ul>
@@ -119,571 +104,17 @@
   
            <div itemprop="articleBody">
              
-  <span class="target" id="ansible-collections-community-aws-aws-acm-info-module"></span><section id="community-aws-aws-acm-info-module-retrieve-certificate-information-from-aws-certificate-manager-service">
-<h1>community.aws.aws_acm_info module – Retrieve certificate information from AWS Certificate Manager service<a class="headerlink" href="#community-aws-aws-acm-info-module-retrieve-certificate-information-from-aws-certificate-manager-service" title="Permalink to this heading"></a></h1>
+  <span class="target" id="ansible-collections-community-aws-aws-acm-info-module"></span><section id="community-aws-aws-acm-info-module">
+<h1>community.aws.aws_acm_info module<a class="headerlink" href="#community-aws-aws-acm-info-module" title="Permalink to this heading"></a></h1>
 <div class="admonition note">
 <p class="admonition-title">Note</p>
-<p>This module is part of the <a class="reference external" href="https://galaxy.ansible.com/community/aws">community.aws collection</a> (version 4.0.0-dev0).</p>
-<p>To install it, use: <code class="code docutils literal notranslate"><span class="pre">ansible-galaxy</span> <span class="pre">collection</span> <span class="pre">install</span> <span class="pre">community.aws</span></code>.
-You need further requirements to be able to use this module,
-see <a class="reference internal" href="#ansible-collections-community-aws-aws-acm-info-module-requirements"><span class="std std-ref">Requirements</span></a> for details.</p>
+<p>This redirect is part of the <a class="reference external" href="https://galaxy.ansible.com/community/aws">community.aws collection</a> (version 5.0.0-dev0).</p>
 <p>To use it in a playbook, specify: <code class="code docutils literal notranslate"><span class="pre">community.aws.aws_acm_info</span></code>.</p>
 </div>
-<p class="ansible-version-added">New in community.aws 1.0.0</p>
-<div class="contents local topic" id="contents">
 <ul class="simple">
-<li><p><a class="reference internal" href="#synopsis" id="id1">Synopsis</a></p></li>
-<li><p><a class="reference internal" href="#requirements" id="id2">Requirements</a></p></li>
-<li><p><a class="reference internal" href="#parameters" id="id3">Parameters</a></p></li>
-<li><p><a class="reference internal" href="#notes" id="id4">Notes</a></p></li>
-<li><p><a class="reference internal" href="#examples" id="id5">Examples</a></p></li>
-<li><p><a class="reference internal" href="#return-values" id="id6">Return Values</a></p></li>
+<li><p>This is a redirect to the <a class="reference internal" href="acm_certificate_info_module.html#ansible-collections-community-aws-acm-certificate-info-module"><span class="std std-ref">community.aws.acm_certificate_info module</span></a>.</p></li>
+<li><p>This redirect does <strong>not</strong> work with Ansible 2.9.</p></li>
 </ul>
-</div>
-<section id="synopsis">
-<h2><a class="toc-backref" href="#id1">Synopsis</a><a class="headerlink" href="#synopsis" title="Permalink to this heading"></a></h2>
-<ul class="simple">
-<li><p>Retrieve information for ACM certificates</p></li>
-<li><p>Note that this will not return information about uploaded keys of size 4096 bits, due to a limitation of the ACM API.</p></li>
-</ul>
-</section>
-<section id="requirements">
-<span id="ansible-collections-community-aws-aws-acm-info-module-requirements"></span><h2><a class="toc-backref" href="#id2">Requirements</a><a class="headerlink" href="#requirements" title="Permalink to this heading"></a></h2>
-<p>The below requirements are needed on the host that executes this module.</p>
-<ul class="simple">
-<li><p>python &gt;= 3.6</p></li>
-<li><p>boto3 &gt;= 1.18.0</p></li>
-<li><p>botocore &gt;= 1.21.0</p></li>
-</ul>
-</section>
-<section id="parameters">
-<h2><a class="toc-backref" href="#id3">Parameters</a><a class="headerlink" href="#parameters" title="Permalink to this heading"></a></h2>
-<table class="colwidths-auto ansible-option-table docutils align-default" style="width: 100%">
-<thead>
-<tr class="row-odd"><th class="head"><p>Parameter</p></th>
-<th class="head"><p>Comments</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-aws_access_key"></div>
-<div class="ansibleOptionAnchor" id="parameter-ec2_access_key"></div>
-<div class="ansibleOptionAnchor" id="parameter-access_key"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-ec2-access-key"><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-access-key"></span><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-access-key"></span><strong>aws_access_key</strong></p>
-<a class="ansibleOptionLink" href="#parameter-aws_access_key" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: ec2_access_key, access_key</span></p>
-<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p><code class="docutils literal notranslate"><span class="pre">AWS</span> <span class="pre">access</span> <span class="pre">key</span></code>. If not set then the value of the <code class="docutils literal notranslate"><span class="pre">AWS_ACCESS_KEY_ID</span></code>, <code class="docutils literal notranslate"><span class="pre">AWS_ACCESS_KEY</span></code> or <code class="docutils literal notranslate"><span class="pre">EC2_ACCESS_KEY</span></code> environment variable is used.</p>
-<p>The <em>aws_access_key</em> and <em>profile</em> options are mutually exclusive.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-aws_ca_bundle"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-ca-bundle"><strong>aws_ca_bundle</strong></p>
-<a class="ansibleOptionLink" href="#parameter-aws_ca_bundle" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">path</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>The location of a CA Bundle to use when validating SSL certificates.</p>
-<p>Note: The CA Bundle is read ‘module’ side and may need to be explicitly copied from the controller if not run locally.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-aws_config"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-config"><strong>aws_config</strong></p>
-<a class="ansibleOptionLink" href="#parameter-aws_config" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>A dictionary to modify the botocore configuration.</p>
-<p>Parameters can be found at <a class="reference external" href="https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config">https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config</a>.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-aws_secret_key"></div>
-<div class="ansibleOptionAnchor" id="parameter-ec2_secret_key"></div>
-<div class="ansibleOptionAnchor" id="parameter-secret_key"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-secret-key"><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-ec2-secret-key"></span><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-secret-key"></span><strong>aws_secret_key</strong></p>
-<a class="ansibleOptionLink" href="#parameter-aws_secret_key" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: ec2_secret_key, secret_key</span></p>
-<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p><code class="docutils literal notranslate"><span class="pre">AWS</span> <span class="pre">secret</span> <span class="pre">key</span></code>. If not set then the value of the <code class="docutils literal notranslate"><span class="pre">AWS_SECRET_ACCESS_KEY</span></code>, <code class="docutils literal notranslate"><span class="pre">AWS_SECRET_KEY</span></code>, or <code class="docutils literal notranslate"><span class="pre">EC2_SECRET_KEY</span></code> environment variable is used.</p>
-<p>The <em>aws_secret_key</em> and <em>profile</em> options are mutually exclusive.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-certificate_arn"></div>
-<div class="ansibleOptionAnchor" id="parameter-arn"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-certificate-arn"><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-arn"></span><strong>certificate_arn</strong></p>
-<a class="ansibleOptionLink" href="#parameter-certificate_arn" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: arn</span></p>
-<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>If provided, the results will be filtered to show only the certificate with this ARN.</p>
-<p>If no certificate with this ARN exists, this task will fail.</p>
-<p>If a certificate with this ARN exists in a different region, this task will fail</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-debug_botocore_endpoint_logs"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-debug-botocore-endpoint-logs"><strong>debug_botocore_endpoint_logs</strong></p>
-<a class="ansibleOptionLink" href="#parameter-debug_botocore_endpoint_logs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>Use a botocore.endpoint logger to parse the unique (rather than total) “resource:action” API calls made during a task, outputing the set to the resource_actions key in the task results. Use the aws_resource_action callback to output to total list made during a playbook. The ANSIBLE_DEBUG_BOTOCORE_LOGS environment variable may also be used.</p>
-<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
-<ul class="simple">
-<li><p><span class="ansible-option-default-bold">false</span> <span class="ansible-option-default">← (default)</span></p></li>
-<li><p><span class="ansible-option-choices-entry">true</span></p></li>
-</ul>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-domain_name"></div>
-<div class="ansibleOptionAnchor" id="parameter-name"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-name"><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-domain-name"></span><strong>domain_name</strong></p>
-<a class="ansibleOptionLink" href="#parameter-domain_name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: name</span></p>
-<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>The domain name of an ACM certificate to limit the search to</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-endpoint_url"></div>
-<div class="ansibleOptionAnchor" id="parameter-ec2_url"></div>
-<div class="ansibleOptionAnchor" id="parameter-aws_endpoint_url"></div>
-<div class="ansibleOptionAnchor" id="parameter-s3_url"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-s3-url"><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-endpoint-url"></span><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-ec2-url"></span><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-endpoint-url"></span><strong>endpoint_url</strong></p>
-<a class="ansibleOptionLink" href="#parameter-endpoint_url" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: ec2_url, aws_endpoint_url, s3_url</span></p>
-<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>URL to use to connect to EC2 or your Eucalyptus cloud (by default the module will use EC2 endpoints). Ignored for modules where region is required. Must be specified for all other modules if region is not used. If not set then the value of the EC2_URL environment variable, if any, is used.</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-profile"></div>
-<div class="ansibleOptionAnchor" id="parameter-aws_profile"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-profile"><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-profile"></span><strong>profile</strong></p>
-<a class="ansibleOptionLink" href="#parameter-profile" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: aws_profile</span></p>
-<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>The <em>profile</em> option is mutually exclusive with the <em>aws_access_key</em>, <em>aws_secret_key</em> and <em>security_token</em> options.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-region"></div>
-<div class="ansibleOptionAnchor" id="parameter-aws_region"></div>
-<div class="ansibleOptionAnchor" id="parameter-ec2_region"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-region"><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-ec2-region"></span><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-region"></span><strong>region</strong></p>
-<a class="ansibleOptionLink" href="#parameter-region" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: aws_region, ec2_region</span></p>
-<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>The AWS region to use. If not specified then the value of the AWS_REGION or EC2_REGION environment variable, if any, is used. See <a class="reference external" href="http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region">http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region</a></p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-security_token"></div>
-<div class="ansibleOptionAnchor" id="parameter-aws_session_token"></div>
-<div class="ansibleOptionAnchor" id="parameter-session_token"></div>
-<div class="ansibleOptionAnchor" id="parameter-aws_security_token"></div>
-<div class="ansibleOptionAnchor" id="parameter-access_token"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-session-token"><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-security-token"></span><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-session-token"></span><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-aws-security-token"></span><span id="ansible-collections-community-aws-aws-acm-info-module-parameter-access-token"></span><strong>security_token</strong></p>
-<a class="ansibleOptionLink" href="#parameter-security_token" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: aws_session_token, session_token, aws_security_token, access_token</span></p>
-<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p><code class="docutils literal notranslate"><span class="pre">AWS</span> <span class="pre">STS</span> <span class="pre">security</span> <span class="pre">token</span></code>. If not set then the value of the <code class="docutils literal notranslate"><span class="pre">AWS_SECURITY_TOKEN</span></code> or <code class="docutils literal notranslate"><span class="pre">EC2_SECURITY_TOKEN</span></code> environment variable is used.</p>
-<p>The <em>security_token</em> and <em>profile</em> options are mutually exclusive.</p>
-<p>Aliases <em>aws_session_token</em> and <em>session_token</em> have been added in version 3.2.0.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-statuses"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-statuses"><strong>statuses</strong></p>
-<a class="ansibleOptionLink" href="#parameter-statuses" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>Status to filter the certificate results</p>
-<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
-<ul class="simple">
-<li><p><span class="ansible-option-choices-entry">“PENDING_VALIDATION”</span></p></li>
-<li><p><span class="ansible-option-choices-entry">“ISSUED”</span></p></li>
-<li><p><span class="ansible-option-choices-entry">“INACTIVE”</span></p></li>
-<li><p><span class="ansible-option-choices-entry">“EXPIRED”</span></p></li>
-<li><p><span class="ansible-option-choices-entry">“VALIDATION_TIMED_OUT”</span></p></li>
-<li><p><span class="ansible-option-choices-entry">“REVOKED”</span></p></li>
-<li><p><span class="ansible-option-choices-entry">“FAILED”</span></p></li>
-</ul>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-tags"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-tags"><strong>tags</strong></p>
-<a class="ansibleOptionLink" href="#parameter-tags" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>Filter results to show only certificates with tags that match all the tags specified here.</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="parameter-validate_certs"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-parameter-validate-certs"><strong>validate_certs</strong></p>
-<a class="ansibleOptionLink" href="#parameter-validate_certs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>When set to “no”, SSL certificates will not be validated for communication with the AWS APIs.</p>
-<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
-<ul class="simple">
-<li><p><span class="ansible-option-choices-entry">false</span></p></li>
-<li><p><span class="ansible-option-default-bold">true</span> <span class="ansible-option-default">← (default)</span></p></li>
-</ul>
-</div></td>
-</tr>
-</tbody>
-</table>
-</section>
-<section id="notes">
-<h2><a class="toc-backref" href="#id4">Notes</a><a class="headerlink" href="#notes" title="Permalink to this heading"></a></h2>
-<div class="admonition note">
-<p class="admonition-title">Note</p>
-<ul class="simple">
-<li><p>If parameters are not set within the module, the following environment variables can be used in decreasing order of precedence <code class="docutils literal notranslate"><span class="pre">AWS_URL</span></code> or <code class="docutils literal notranslate"><span class="pre">EC2_URL</span></code>, <code class="docutils literal notranslate"><span class="pre">AWS_PROFILE</span></code> or <code class="docutils literal notranslate"><span class="pre">AWS_DEFAULT_PROFILE</span></code>, <code class="docutils literal notranslate"><span class="pre">AWS_ACCESS_KEY_ID</span></code> or <code class="docutils literal notranslate"><span class="pre">AWS_ACCESS_KEY</span></code> or <code class="docutils literal notranslate"><span class="pre">EC2_ACCESS_KEY</span></code>, <code class="docutils literal notranslate"><span class="pre">AWS_SECRET_ACCESS_KEY</span></code> or <code class="docutils literal notranslate"><span class="pre">AWS_SECRET_KEY</span></code> or <code class="docutils literal notranslate"><span class="pre">EC2_SECRET_KEY</span></code>, <code class="docutils literal notranslate"><span class="pre">AWS_SECURITY_TOKEN</span></code> or <code class="docutils literal notranslate"><span class="pre">EC2_SECURITY_TOKEN</span></code>, <code class="docutils literal notranslate"><span class="pre">AWS_REGION</span></code> or <code class="docutils literal notranslate"><span class="pre">EC2_REGION</span></code>, <code class="docutils literal notranslate"><span class="pre">AWS_CA_BUNDLE</span></code></p></li>
-<li><p>When no credentials are explicitly provided the AWS SDK (boto3) that Ansible uses will fall back to its configuration files (typically <code class="docutils literal notranslate"><span class="pre">~/.aws/credentials</span></code>). See <a class="reference external" href="https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html">https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html</a> for more information.</p></li>
-<li><p><code class="docutils literal notranslate"><span class="pre">AWS_REGION</span></code> or <code class="docutils literal notranslate"><span class="pre">EC2_REGION</span></code> can be typically be used to specify the AWS region, when required, but this can also be defined in the configuration files.</p></li>
-</ul>
-</div>
-</section>
-<section id="examples">
-<h2><a class="toc-backref" href="#id5">Examples</a><a class="headerlink" href="#examples" title="Permalink to this heading"></a></h2>
-<div class="highlight-yaml+jinja notranslate"><div class="highlight"><pre><span></span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">obtain all ACM certificates</span><span class="w"></span>
-<span class="w">  </span><span class="nt">community.aws.aws_acm_info</span><span class="p">:</span><span class="w"></span>
-
-<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">obtain all information for a single ACM certificate</span><span class="w"></span>
-<span class="w">  </span><span class="nt">community.aws.aws_acm_info</span><span class="p">:</span><span class="w"></span>
-<span class="w">    </span><span class="nt">domain_name</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;*.example_com&quot;</span><span class="w"></span>
-
-<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">obtain all certificates pending validation</span><span class="w"></span>
-<span class="w">  </span><span class="nt">community.aws.aws_acm_info</span><span class="p">:</span><span class="w"></span>
-<span class="w">    </span><span class="nt">statuses</span><span class="p">:</span><span class="w"></span>
-<span class="w">    </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">PENDING_VALIDATION</span><span class="w"></span>
-
-<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">obtain all certificates with tag Name=foo and myTag=bar</span><span class="w"></span>
-<span class="w">  </span><span class="nt">community.aws.aws_acm_info</span><span class="p">:</span><span class="w"></span>
-<span class="w">    </span><span class="nt">tags</span><span class="p">:</span><span class="w"></span>
-<span class="w">      </span><span class="nt">Name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">foo</span><span class="w"></span>
-<span class="w">      </span><span class="nt">myTag</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">bar</span><span class="w"></span>
-
-
-<span class="c1"># The output is still a list of certificates, just one item long.</span><span class="w"></span>
-<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">obtain information about a certificate with a particular ARN</span><span class="w"></span>
-<span class="w">  </span><span class="nt">community.aws.aws_acm_info</span><span class="p">:</span><span class="w"></span>
-<span class="w">    </span><span class="nt">certificate_arn</span><span class="p">:</span><span class="w">  </span><span class="s">&quot;arn:aws:acm:ap-southeast-2:123456789876:certificate/abcdeabc-abcd-1234-4321-abcdeabcde12&quot;</span><span class="w"></span>
-</pre></div>
-</div>
-</section>
-<section id="return-values">
-<h2><a class="toc-backref" href="#id6">Return Values</a><a class="headerlink" href="#return-values" title="Permalink to this heading"></a></h2>
-<p>Common return values are documented <a class="reference external" href="https://docs.ansible.com/ansible/devel/reference_appendices/common_return_values.html#common-return-values" title="(in Ansible vdevel)"><span class="xref std std-ref">here</span></a>, the following are the fields unique to this module:</p>
-<table class="colwidths-auto ansible-option-table docutils align-default" style="width: 100%">
-<thead>
-<tr class="row-odd"><th class="head"><p>Key</p></th>
-<th class="head"><p>Description</p></th>
-</tr>
-</thead>
-<tbody>
-<tr class="row-even"><td><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates"><strong>certificates</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">complex</span></p>
-</div></td>
-<td><div class="ansible-option-cell"><p>A list of certificates</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/certificate"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-certificate"><strong>certificate</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/certificate" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The ACM Certificate body</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> when certificate creation is complete</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “—–BEGIN CERTIFICATE—–\\\\nMII…..—–END CERTIFICATE—–\\\\n”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/certificate_arn"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-certificate-arn"><strong>certificate_arn</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/certificate_arn" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Certificate ARN</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “arn:aws:acm:ap-southeast-2:123456789012:certificate/abcd1234-abcd-1234-abcd-123456789abc”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/certificate_chain"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-certificate-chain"><strong>certificate_chain</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/certificate_chain" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Full certificate chain for the certificate</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> when certificate creation is complete</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “—–BEGIN CERTIFICATE—–\\\\nMII…\\\\n—–END CERTIFICATE—–\\\\n—–BEGIN CERTIFICATE—–\\\\n…”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/created_at"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-created-at"><strong>created_at</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/created_at" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Date certificate was created</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “2017-08-15T10:31:19+10:00”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/domain_name"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-domain-name"><strong>domain_name</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/domain_name" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Domain name for the certificate</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “*.example.com”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/domain_validation_options"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-domain-validation-options"><strong>domain_validation_options</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/domain_validation_options" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">complex</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Options used by ACM to validate the certificate</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> when certificate type is AMAZON_ISSUED</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/domain_validation_options/domain_name"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-domain-validation-options-domain-name"><strong>domain_name</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/domain_validation_options/domain_name" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Fully qualified domain name of the certificate</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “example.com”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/domain_validation_options/validation_domain"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-domain-validation-options-validation-domain"><strong>validation_domain</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/domain_validation_options/validation_domain" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The domain name ACM used to send validation emails</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “example.com”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/domain_validation_options/validation_emails"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-domain-validation-options-validation-emails"><strong>validation_emails</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/domain_validation_options/validation_emails" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>A list of email addresses that ACM used to send domain validation emails</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> [”<a class="reference external" href="mailto:admin&#37;&#52;&#48;example&#46;com">admin<span>&#64;</span>example<span>&#46;</span>com</a>”, “<a class="reference external" href="mailto:postmaster&#37;&#52;&#48;example&#46;com">postmaster<span>&#64;</span>example<span>&#46;</span>com</a>”]</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/domain_validation_options/validation_status"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-domain-validation-options-validation-status"><strong>validation_status</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/domain_validation_options/validation_status" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Validation status of the domain</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “SUCCESS”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/failure_reason"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-failure-reason"><strong>failure_reason</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/failure_reason" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Reason certificate request failed</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> only when certificate issuing failed</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “NO_AVAILABLE_CONTACTS”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/in_use_by"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-in-use-by"><strong>in_use_by</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/in_use_by" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>A list of ARNs for the AWS resources that are using the certificate.</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> []</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/issued_at"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-issued-at"><strong>issued_at</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/issued_at" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Date certificate was issued</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “2017-01-01T00:00:00+10:00”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/issuer"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-issuer"><strong>issuer</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/issuer" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Issuer of the certificate</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “Amazon”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/key_algorithm"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-key-algorithm"><strong>key_algorithm</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/key_algorithm" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Algorithm used to generate the certificate</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “RSA-2048”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/not_after"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-not-after"><strong>not_after</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/not_after" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Date after which the certificate is not valid</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “2019-01-01T00:00:00+10:00”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/not_before"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-not-before"><strong>not_before</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/not_before" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Date before which the certificate is not valid</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “2017-01-01T00:00:00+10:00”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/renewal_summary"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-renewal-summary"><strong>renewal_summary</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/renewal_summary" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">complex</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Information about managed renewal process</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> when certificate is issued by Amazon and a renewal has been started</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/renewal_summary/domain_validation_options"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-renewal-summary-domain-validation-options"><strong>domain_validation_options</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/renewal_summary/domain_validation_options" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">complex</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Options used by ACM to validate the certificate</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> when certificate type is AMAZON_ISSUED</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/renewal_summary/domain_validation_options/domain_name"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-renewal-summary-domain-validation-options-domain-name"><strong>domain_name</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/renewal_summary/domain_validation_options/domain_name" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Fully qualified domain name of the certificate</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “example.com”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/renewal_summary/domain_validation_options/validation_domain"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-renewal-summary-domain-validation-options-validation-domain"><strong>validation_domain</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/renewal_summary/domain_validation_options/validation_domain" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The domain name ACM used to send validation emails</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “example.com”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/renewal_summary/domain_validation_options/validation_emails"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-renewal-summary-domain-validation-options-validation-emails"><strong>validation_emails</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/renewal_summary/domain_validation_options/validation_emails" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>A list of email addresses that ACM used to send domain validation emails</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> [”<a class="reference external" href="mailto:admin&#37;&#52;&#48;example&#46;com">admin<span>&#64;</span>example<span>&#46;</span>com</a>”, “<a class="reference external" href="mailto:postmaster&#37;&#52;&#48;example&#46;com">postmaster<span>&#64;</span>example<span>&#46;</span>com</a>”]</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/renewal_summary/domain_validation_options/validation_status"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-renewal-summary-domain-validation-options-validation-status"><strong>validation_status</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/renewal_summary/domain_validation_options/validation_status" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Validation status of the domain</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “SUCCESS”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/renewal_summary/renewal_status"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-renewal-summary-renewal-status"><strong>renewal_status</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/renewal_summary/renewal_status" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Status of the domain renewal</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “PENDING_AUTO_RENEWAL”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/revocation_reason"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-revocation-reason"><strong>revocation_reason</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/revocation_reason" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Reason for certificate revocation</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> when the certificate has been revoked</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “SUPERCEDED”</p>
-</div></td>
-</tr>
-<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/revoked_at"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-revoked-at"><strong>revoked_at</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/revoked_at" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Date certificate was revoked</p>
-<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> when the certificate has been revoked</p>
-<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> “2017-09-01T10:00:00+10:00”</p>
-</div></td>
-</tr>
-<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
-<div class="ansibleOptionAnchor" id="return-certificates/serial"></div><p class="ansible-option-title" id="ansible-collections-community-aws-aws-acm-info-module-return-certificates-serial"><strong>serial</strong></p>
-<a class="ansibleOptionLink" href="#return-certificates/serial" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
-</div></td>
-<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The serial number of the certificate</p>
-<p class="

github-actions[bot] avatar Sep 29 '22 13:09 github-actions[bot]

what's remaining to get this merged?

pirum-isawan avatar Sep 30 '22 16:09 pirum-isawan

recheck

tremble avatar Oct 04 '22 15:10 tremble

note: I'm playing with the close/reopen button to kill the ongoing CI job that is broken.

goneri avatar Oct 05 '22 15:10 goneri

Build succeeded.

:heavy_check_mark: ansible-galaxy-importer SUCCESS in 6m 39s :heavy_check_mark: build-ansible-collection SUCCESS in 5m 46s :x: ansible-test-sanity-docker-devel FAILURE in 12m 03s (non-voting) :heavy_check_mark: ansible-test-sanity-docker-milestone SUCCESS in 13m 39s :heavy_check_mark: ansible-test-sanity-docker-stable-2.12 SUCCESS in 10m 25s :heavy_check_mark: ansible-test-sanity-docker-stable-2.13 SUCCESS in 12m 51s :x: ansible-test-sanity-docker-stable-2.14 FAILURE in 10m 48s (non-voting) :heavy_check_mark: ansible-test-units-amazon-aws-python36 SUCCESS in 9m 34s :heavy_check_mark: ansible-test-units-amazon-aws-python38 SUCCESS in 9m 27s :heavy_check_mark: ansible-test-units-amazon-aws-python39 SUCCESS in 9m 17s :heavy_check_mark: ansible-test-splitter SUCCESS in 2m 34s :warning: integration-community.aws-1 SKIPPED :warning: integration-community.aws-2 SKIPPED :warning: integration-community.aws-3 SKIPPED :warning: integration-community.aws-4 SKIPPED :warning: integration-community.aws-5 SKIPPED :warning: integration-community.aws-6 SKIPPED :warning: integration-community.aws-7 SKIPPED :warning: integration-community.aws-8 SKIPPED :warning: integration-community.aws-9 SKIPPED :warning: integration-community.aws-10 SKIPPED :warning: integration-community.aws-11 SKIPPED :warning: integration-community.aws-12 SKIPPED :warning: integration-community.aws-13 SKIPPED :warning: integration-community.aws-14 SKIPPED :warning: integration-community.aws-15 SKIPPED :warning: integration-community.aws-16 SKIPPED :warning: integration-community.aws-17 SKIPPED :warning: integration-community.aws-18 SKIPPED

This would be really helpful to get merged, let me know if there's anything remaining that I can pick up to get this PR over the line.

pirum-isawan avatar Oct 10 '22 14:10 pirum-isawan

Like many others I find myself here due to the bug - what is left to get this merged and ready to consume? Cheers

pete-leese avatar Oct 14 '22 10:10 pete-leese

This is a painful usability and operations bottleneck for our organization as well.

Anything we can do to help expedite review/merge?

armenr avatar Nov 19 '22 08:11 armenr

...otherwise LTGM.

markuman avatar Nov 20 '22 08:11 markuman

Build failed.

:heavy_check_mark: ansible-galaxy-importer SUCCESS in 4m 05s :heavy_check_mark: build-ansible-collection SUCCESS in 5m 53s :heavy_check_mark: ansible-test-sanity-docker-devel SUCCESS in 10m 00s (non-voting) :heavy_check_mark: ansible-test-sanity-docker-milestone SUCCESS in 9m 59s (non-voting) :heavy_check_mark: ansible-test-sanity-docker-stable-2.12 SUCCESS in 10m 08s :heavy_check_mark: ansible-test-sanity-docker-stable-2.13 SUCCESS in 9m 35s :heavy_check_mark: ansible-test-sanity-docker-stable-2.14 SUCCESS in 8m 50s :heavy_check_mark: ansible-test-units-amazon-aws-python36 SUCCESS in 6m 37s :heavy_check_mark: ansible-test-units-amazon-aws-python38 SUCCESS in 6m 24s :heavy_check_mark: ansible-test-units-amazon-aws-python39 SUCCESS in 7m 20s :heavy_check_mark: ansible-test-units-amazon-aws-python310 SUCCESS in 6m 55s :heavy_check_mark: ansible-test-changelog SUCCESS in 2m 45s :heavy_check_mark: ansible-test-splitter SUCCESS in 2m 54s :x: integration-community.aws-1 TIMED_OUT in 1h 00m 47s :warning: integration-community.aws-2 SKIPPED :warning: integration-community.aws-3 SKIPPED :warning: integration-community.aws-4 SKIPPED :warning: integration-community.aws-5 SKIPPED :warning: integration-community.aws-6 SKIPPED :warning: integration-community.aws-7 SKIPPED :warning: integration-community.aws-8 SKIPPED :warning: integration-community.aws-9 SKIPPED :warning: integration-community.aws-10 SKIPPED :warning: integration-community.aws-11 SKIPPED :warning: integration-community.aws-12 SKIPPED :warning: integration-community.aws-13 SKIPPED :warning: integration-community.aws-14 SKIPPED :warning: integration-community.aws-15 SKIPPED :warning: integration-community.aws-16 SKIPPED :warning: integration-community.aws-17 SKIPPED :warning: integration-community.aws-18 SKIPPED :warning: integration-community.aws-19 SKIPPED :warning: integration-community.aws-20 SKIPPED :warning: integration-community.aws-21 SKIPPED :warning: integration-community.aws-22 SKIPPED

Many thanks for taking the time to open this PR. I'm trying to slowly clear some of the aws_ssm issues/PRs. I'm sorry it's taken so long.

#583 has been merged and I think it fixes these issues. We now have integration tests using a number of "client" operating systems so I believe at least the basic operation should now (main / 5.2.0) be working. As such I'm going to close this PR. If main/5.2.0 don't fix the issues you were seeing it would be helpful if you could follow up with how to replicate the issues you're seeing.

tremble avatar Jan 20 '23 18:01 tremble

#583 was my old PR that i couldn't get the new main merged into it without failures. i created this PR as a new fix for the problem, 583 was never accepted and merged in. See the description in this PR for what i did. Can you confirm this is actually fixed because most everyone including myself have problems with the current prod version. I've attempted several times to get this merged in and it never is. not sure what we need to do but i don't have time to keep trying to get this merged in anymore. hopefully someone else can take up the banner. for now i just keep using a custom version in my repo.

richardsonky avatar Jan 20 '23 18:01 richardsonky

I understand your frustration, and I've spent too many hours this week trying to get on top of the various aws_ssm issues and PRs

#558 (rather than #583) is the PR which got merged (sorry there were multiple PRs all trying to address the same basic issues)

5.2.0 should be released early next week and include what I believe to be the relevant fixes.

I've managed to resurrect the integration tests which are now consistently showing successful SSM sessions with Windows, Amazon Linux, Ubuntu and Fedora instances.

If you're able to test against main, or test 5.2.0 next week, and report back, that would be really helpful. If the issues still persist then I'll try to rebase this PR and see if I can understand which pieces are still needed. Reproducers would also be helpful.

tremble avatar Jan 20 '23 19:01 tremble

New version doesn't work. Pretty sure i've dealt with this error in this PR. Not 100% which line it was though, and i don't have time right now to figure it out. This was a windows 2019 instance using AWS's base server ami. get_facts work, but it doesn't the script is saying it failed. Hopefully someone else can push this forward, for now i'll just keep using my own copy in our repo.

TERMINATE SSM SESSION: AnsibleLambda-08b63421dffecee50 fatal: [i-00bb0b2f67846d1fe]: FAILED! => { "changed": false, "module_stderr": "", "module_stdout": "{"changed":false,"invocation":{"module_args":{"_measure_subset":false,"gather_timeout":10,"gather_subset":["all"],"fact_path":null}},"ansible_facts":{"ansible_ip_addresses":["fe80::6dcc:b84:27bb:cb96%4","10.216.101.44"],"ansible_windows_domain_role":"Stand-alone server","ansible_architecture2":"x86_64","ansible_user_gecos":"","ansible_distribution_major_version":"10","ansible_pagefiletotal_mb":1920,"ansible_os_name":"Microsoft Windows Server 2019 Datacenter","ansible_system_description":"","ansible_machine_id":"S-1-5-21-2947583606-1977357372-2144821638","ansible_product_serial":"ec22cae3-d4fa-\r743e-890a-f3a083a92824","ansible_system_vendor":"Xen","gather_subset":["all"],"ansible_bios_version":"4.2.amazon","ansible_user_id":"EC2AMAZ-ML87NO8$","ansible_date_time":{"epoch_local":"1676980465.82707","epoch_int":1676998466,"date":"2023-02-21","second":"25","tz":"Eastern Standard Time","iso8601_micro":"2023-02-21T16:54:25.827066Z","iso8601_basic_short":"20230221T115425","minute":"54","day":"21","weekday":"Tuesday","iso8601":"2023-02-21T16:54:25Z","tz_offset":"-05:00","iso8601_basic":"20230221T115425827066","epoch":"1676998465.82707","weekday_number":"2","hour":"11","year":"2023","month":"02","time":"11:54:25","weeknumber":"7"},"ansible_user_dir":"C:\\Windows\\system32\\config\\systemprofile","ansible_processor_vcpus":2,"ansible_user_sid":"S-1-5-21-2947583606-1977357372-2144821638-1008","ansible_owner_contact":"","ansible_distribution":"Microsoft Windows Server 2019 Datacenter","ansible_processor":["0","GenuineIntel","Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz","1","GenuineIntel","Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz"],"ansible_powershell_version":5,"ansible_uptime_seconds":4940,"module_setup":true,"ansible_interfaces":[{"dns_domain":"ec2.internal","connection_name":"Ethernet","default_gateway":"10.216.101.1","mtu":9001,"interface_name":"AWS PV Network Device","ipv6":{"address":"fe80::6dcc:b84:27bb:cb96%4","prefix":"64"},"macaddress":"0E:57:11:F2:2F:CD","speed":1000,"interface_index":4,"ipv4":{"address":"10.216.101.44","prefix":"25"}}],"ansible_distribution_version":"10.0.17763.0","ansible_windows_domain_member":false,"ansible_swaptotal_mb":0,"ansible_hostname":"EC2AMAZ-ML87NO8","ansible_virtualization_role":"guest","ansible_memfree_mb":6177,"ansible_processor_count":2,"ansible_os_product_type":"server","ansible_netbios_name":"EC2AMAZ-ML87NO8","ansible_product_name":"HVM domU","ansible_virtualization_type":"xen","ansible_os_installation_type":"Server","ansible_lastboot":"2023-02-21 10:32:06Z","ansible_architecture":"64-bit","ansible_bios_date":"08/24/2006","ansible_processor_cores":2,"ansible_fqdn":"EC2AMAZ-ML87NO8","ansible_domain":"","ansible_memtotal_mb":8192,"ansible_kernel":"10.0.17763.0","ansible_pagefilefree_mb":1709,"ansible_nodename":"EC2AMAZ-ML87NO8","ansible_os_family":"Windows","ansible_processor_threads_per_core":1,"ansible_owner_name":"EC2","ansible_env":{"PROCESSOR_IDENTIFIER":"Intel64 Family 6 Model 63 Stepping 2, GenuineIntel","ComSpec":"C:\\Windows\\system32\\cmd.exe","DriverData":"C:\\Windows\\System32\\Drivers\\DriverData","LOCALAPPDATA":"C:\\Windows\\system32\\config\\systemprofile\\AppData\\Local","Path":"C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files\\Amazon\\cfn-bootstrap\\;C:\\Windows\\system32\\config\\systemprofile\\AppData\\Local\\Microsoft\\WindowsApps","SystemRoot":"C:\\Windows","ALLUSERSPROFILE":"C:\\ProgramData","CommonProgramFiles(x86)":"C:\\Program Files (x86)\\Common Files","ProgramW6432":"C:\\Program Files","USERPROFILE":"C:\\Windows\\system32\\config\\systemprofile","ProgramFiles(x86)":"C:\\Program Files (x86)","PSModulePath":"C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules;C:\\Program Files (x86)\\AWS Tools\\PowerShell","PSExecutionPolicyPreference":"Unrestricted","USERDOMAIN":"WORKGROUP","SystemDrive":"C:","EC2LAUNCH_TELEMETRY":"1","OS":"Windows_NT","CommonProgramFiles":"C:\\Program Files\\Common Files","ProgramFiles":"C:\\Program Files","USERNAME":"EC2AMAZ-ML87NO8$","PROCESSOR_LEVEL":"6","COMPUTERNAME":"EC2AMAZ-ML87NO8","AWS_EXECUTION_ENV":"EC2","NUMBER_OF_PROCESSORS":"2","PUBLIC":"C:\\Users\\Public","PROCESSOR_REVISION":"3f02","APPDATA":"C:\\Windows\\system32\\config\\systemprofile\\AppData\\Roaming","ProgramData":"C:\\ProgramData","PROCESSOR_ARCHITECTURE":"AMD64","CommonProgramW6432":"C:\\Program Files\\Common Files","windir":"C:\\Windows","PATHEXT":".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL","TEMP":"C:\\Windows\\TEMP","TMP":"C:\\Windows\\TEMP"},"ansible_windows_domain":"WORKGROUP","ansible_reboot_pending":true,"ansible_system":"Win32NT"}}", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 0 }

richardsonky avatar Feb 21 '23 17:02 richardsonky

I also have a region issue, when bucket is ap-northeast-2 region, I want to access us-east-1 region ec2 instance, there's error.

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the GetBucketLocation operation: Access Denied
fatal: [ec2-1_i-0e9c51b6f30dfeda3]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the GetBucketLocation operation: Access Denied

I think there's fix PR already committed, if then, please release fix.

Hokwang avatar Feb 23 '23 05:02 Hokwang

@Hokwang that error is related to the IAM role that is being applied to ansible - add the required permission. With that said according what @richardsonky shared this module in the current merged state is failing - for it to work you'd have to run the local copy like everyone else.

Leon-Africa avatar Feb 23 '23 08:02 Leon-Africa

@Leon-Africa The current merged version generally works. We have integration tests which are using the connection plugin to connect to Amazon Linux 2, Fedora 34, Ubuntu 22.04 and Windows Server 2022 instances.

The trouble is that there are multiple ways to configure things and the subtle differences between OS flavours can cause things to break. If you have specific examples of broken configurations it would be helpful if you could file Issues, including the full output from your run using the "-vvvv" option to include the connection debugging logs.

@Hokwang With regards to the Access Denied error: that's an IAM permissions problem. The Ansible controller needs to be able to query the S3 bucket to find out which region it's in, in turn to generate signed URLs against the right endpoints.

tremble avatar Feb 23 '23 08:02 tremble

@tremble hear you on the multiple OS flavours.

Please share your thoughts for https://github.com/ansible-collections/community.aws/issues/1722

Leon-Africa avatar Feb 23 '23 10:02 Leon-Africa