The issue was I was misunderstanding the configuration for the Datadog 
agent was using a role and I was trying to use its vars as a task. 

On Monday, October 10, 2022 at 5:08:05 PM UTC-5 Clif Smith wrote:

> I’m new to Ansible and am trying to use data from querying a postgres DB 
> to write out a Datadog agent config 
> <https://docs.datadoghq.com/agent/basic_agent_usage/ansible/>. I’ve 
> figured out 1) how to retrieve the data from postgres and 2) write out a 
> single static node’s agent config, but I haven’t figured out how to tie the 
> two together. Any help would be GREATLY appreciated. 
>
> Here's my code:
> ---
> - name: Manage Datadog agent config for Oracle DBs
>   hosts: localhost
>   roles:
>     - { role: datadog.datadog, become: yes}
>
>   tasks:
>
>     - name: Get list of DBs from inventory DB
>       community.postgresql.postgresql_query:
>         db: inventory
>         login_user: "{{ ansible_user_id }}"
>         query: SELECT DISTINCT db_name, env_type, db_domain FROM stg_db 
> WHERE env_type = 'prod' LIMIT 1
>         search_path: inventory
>       register: db_list
>
>     - name: Get server string
>       community.postgresql.postgresql_query:
>         db: inventory
>         login_user: "{{ ansible_user_id }}"
>         query: SELECT unique_name, server_name from dg_member WHERE 
> database_role = 'primary' and db_name = '{{ item.db_name }}'
>         search_path: inventory
>       loop: "{{ db_list['query_result'] }}"
>       loop_control:
>         label:
>       register: server_metadata
>
>     - name: Configure Datadog agent
>       datadog_checks:
>         oracle:
>           init_config:
>           instances:
>             - empty_default_hostname: true
>               min_collection_interval: 60
>               password: "{{ datadog_password }}"
>               protocol: TCP
>               server: "{{ server_name }}.{{ db_domain }}:1521"
>               service_name: “{{ unique_name }}.{{ db_domain }}
>               tags:
>                 - “env:{{ env }}”
>               use_global_custom_queries: 'false'
>               username: "{{ datadog_username }}"
>       loop: "{{ server_metadata.results }}"
>       vars:
>         datadog_api_key: “example”
>         db_domain: "{{ item.item.db_domain }}"
>         env: "{{ item.item.env_type }}"
>         datadog_password: “example”
>         datadog_username: “example”
>         db_name: "{{ item.item.db_name }}"
>         server_name: "{{ item.query_result.0.server_name }}"
>         unique_name: "{{ item.query_result.0.unique_name }}"
>
> And, here's the full error:
>
> ERROR! couldn't resolve module/action 'datadog_checks'. This often 
> indicates a misspelling, missing collection, or incorrect module path.
>
> The error appears to be in '/home/s175827/ansible/test.yaml': line 28, 
> column 7, but may
> be elsewhere in the file depending on the exact syntax problem.
>
> The offending line appears to be:
>
>     - name: Configure Datadog agent
>       ^ here
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/6c71598f-c74f-4de6-8967-8ba6f065eae2n%40googlegroups.com.

Reply via email to