【问题标题】:Ansible Tower/AWX: Location of job results in PostgreSQLAnsible Tower/AWX:PostgreSQL 中作业结果的位置
【发布时间】:2018-03-23 16:10:36
【问题描述】:

我正在尝试从 PostgreSQL 数据库中获取特定任务的 STDOUTSTDERR 以在提交评论中使用它。

我很难找到合适的桌子。有没有人试图从 Ansible Tower/AWX 获得特定的任务结果,STDOUTSTDERR

我是在对着正确的树吠叫吗?

【问题讨论】:

    标签: ansible-tower ansible-awx


    【解决方案1】:

    每个任务在main_jobevent 表的stdout 列中都有自己的输出。

    prepare awx (text, int) as
    select job_id, host_name, modified, playbook, play, role, stdout
      from main_jobevent
     where host_name = ANY (string_to_array($1, ','))
       and changed
     order by modified desc
     limit $2;
    
    execute awx( 'localhost,192.168.1.1', 3 );
    

    这显示了主机 localhost 或 192.168.1.1 的三个最年轻的修改。

    【讨论】:

      【解决方案2】:

      使用 Ansible tower API 获取作业标准输出。例如: https:///api/v2/jobs//stdout/?format=json

      检查 Ansible Tower API 文档 https://docs.ansible.com/ansible-tower/3.2.4/pdf/AnsibleTowerAPIGuide.pdf

      【讨论】:

        【解决方案3】:

        根据Tower API Reference Guide Jobs,可以通过 REST API 调用以纯文本形式获取完整的作业结果日志,例如

        curl --silent -u ${TOWER_USER}:${TOWER_PASSWORD} -JL https://${TOWER_URL}/api/v2/jobs/${JobID}/stdout?format=txt_download -o job_${JobID}.log
        

        产生一个名为job_${JobID}.log 的文件的输出。但没有直接要求工作的具体任务。

        正如maletinanswer 已经提到的,人们可以从JobID 的工作中收集特定的任务信息

        SELECT job_id, host_name, modified, stdout
        FROM main_jobevent 
        WHERE job_id = $1
        ORDER BY modified ASC;
        

        但它看起来像ANSI colored text

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-21
          • 2019-11-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多