gpt4 book ai didi

ansible - Ansible 在安装时可以检查 "echo"项目吗?

转载 作者:行者123 更新时间:2023-12-02 19:07:29 27 4
gpt4 key购买 nike

我的 Ansible playbook 中有一个相当长的任务,它使用 APT 安装各种包。此任务在我的笔记本电脑上需要很长时间。有什么方法可以让 Ansible 在迭代包时“回显”正在安装的项目,以便我可以了解此任务需要多长时间?

- name: install global packages
apt: pkg={{ item }} update_cache=yes cache_valid_time=3600
become: True
become_user: root
with_items:
- git
- vim
- bash-completion
- bash-doc
- wput
- tree
- colordiff
- libjpeg62-turbo-dev
- libopenjpeg-dev
- zlib1g-dev
- libwebp-dev
- libffi-dev
- libncurses5-dev
- python-setuptools
- python-dev
- python-doc
- python-pip
- virtualenv
- virtualenvwrapper
- python-psycopg2
- postgresql-9.4
- postgresql-server-dev-9.4
- postgresql-contrib
- postgresql-doc-9.4
- postgresql-client
- postgresql-contrib-9.4
- postgresql-9.4-postgis-2.1
- postgis-doc
- postgis
- nginx
- supervisor
- redis-server

最佳答案

一般来说,Ansible 实际上就是这样做的。它将单独输出每个项目。这意味着:它构建一个 python 包,将其上传到主机并执行它 - 对于每个项目。

aptyum 模块已针对循环进行了优化。 Ansible 不是循环遍历每个项目,而是构建一个包,一次性安装所有循环项目。

你的命令翻译成这样:

apt-get -y install git vim bash-completion bash-doc wput ...

所以在这种情况下,不,没有办法输出单独的步骤来查看 Ansible 在哪里。因为没有单独的步骤。

apt 模块的文档缺少 yum module 中提供的注释。页面:

When used with a loop of package names in a playbook, ansible optimizes the call to the yum module. Instead of calling the module with a single package each time through the loop, ansible calls the module once with all of the package names from the loop.

当您使用远程计算机时,这实际上是一种更好的行为。这大大加快了播放速度。如果您在本地运行剧本,当然没有太大好处。

一个简单的解决方法是不使用 apt 模块,而是运行 shell 命令。

- name: install global packages
shell: apt-get -y install {{ item }}
become: True

关于ansible - Ansible 在安装时可以检查 "echo"项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34968354/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com