如何从 gitlab 管道中运行的 ansible-navigator 获取日志输出?

问题描述 投票:0回答:1

我有一个简单的 gitlab 管道定义如下:

deploy-to-live:
  image: <custom image> # preloaded with ansible-navigator
  stage: deploy
  script: >-
    ansible-navigator run
    10_base.yml
    -i inventories/live

运行此剧本时,我收到以下消息

$ ansible-navigator run 10_base.yml -i inventories/live
Running the command: docker pull <custom image>:latest
the input device is not a TTY
Please review the log for errors.

我看到多次提到此错误消息,所有这些都建议我从 docker 调用中删除

-it
选项。这听起来很合理,但我实际上并没有设置,ansible-navigator 似乎是这样。我知道我可以使用
--container-options
指定容器选项,但这不允许 remove 选项。

如何删除此错误消息并仍然在 gitlab 作业中看到 ansible-navigator 的日志输出,就像在本地命令行上一样?

docker ansible gitlab-ci
1个回答
0
投票

看来这里有什么误会。

首先,

ansible-navigator
是一个基于文本的用户界面,所以我不确定为什么要在 CI/CD 环境中使用它。

接下来,它默认情况下已经在执行环境中运行了 - 这是另一个容器 - 因此当您将 GitHub 阶段包装到您自己的自定义映像中时,它很可能默认无法工作。

最后,

-it
CLI 标志指的是 Docker 交互 + TTY 模式,而
ansible-navigator
有自己的交互 输出模式(默认启用,因为它是 UI),应更改为
stdout
输出模式为了只有日志。

总而言之,我看到了解决您问题的几种选择:

  1. 如果您的容器已经具有适当的依赖项,请继续使用

    ansible-navigator
    但是:

    • 禁用运行自己的执行环境;
    • 启用其
      stdout
      模式而不是
      interactive
      模式:
    deploy-to-live:
      image: <custom image>
      stage: deploy
      script: >-
        ansible-navigator run 10_base.yml
          -i inventories/live
          --execution-environment false
          --mode stdout          
    
  2. 继续使用

    ansible-navigator
    但是:

    execution-environment:
      enabled: True      
      image: <custom_image>
    
    • 启用
      stdout
      模式而不是
      interactive
      模式:
    deploy-to-live:
      stage: deploy
      script: >-
        ansible-navigator run 10_base.yml
          -i inventories/live
          --mode stdout          
    
  3. 使用标准

    ansible-playbook
    在具有 Ansible 和所需依赖项的容器内(换句话说 - 一个 执行环境容器):

    deploy-to-live:
      image: <custom image with Ansible and dependencies>
      stage: deploy
      script: >-
        ansible-playbook 10_base.yml
          -i inventories/live
    

有关更多详细信息,请查看

ansible-navigator
GitHub 上的自述文件配置参考

© www.soinside.com 2019 - 2024. All rights reserved.