为什么 ansible 执行简单任务时速度很慢

Hub*_*NNN 13 ansible

使用 ansible 大约一周后,我发现 ansible 花费的时间相似,无论它要执行的任务有多复杂。

  • 使用 apt 安装 20 个软件包 - 3 秒
  • 使用模板复制具有 2 个配置设置的单个文件 - 3 秒。

虽然我可以使用单个命令轻松安装 20 个软件包,但
模板需要循环运行,因此如果我有 20 个配置文件要复制,则需要整整一分钟的时间。

将其扩展到 10 个角色,其中一些角色重复 5 次,您可以用一个多小时来完成简单的部署。

ansible 应该这么慢吗?或者我可以做些什么来提高性能?

编辑:
根据您的回答,我认为这不是正常行为。以下是@U880D 要求的这些简单任务的一些代码示例。正如我所说,没有什么特别的,只是简单的配置:

# tasks/main.yml

- name: Configure php-{{ php_version }}
  template:
    src: '{{ item }}.j2'
    dest: '/etc/php/{{ php_version }}/{{ item }}'
  loop:
    - cli/conf.d/50-memory.ini
    - fpm/conf.d/50-memory.ini
    - fpm/conf.d/50-opcache.ini
    - fpm/pool.d/www.conf
  notify:
    - restart php {{ php_version }}
Run Code Online (Sandbox Code Playgroud)
# templates/fpm/conf.d/50-memory.ini.j2

memory_limit = {{ php_fpm_memory_limit }}
post_max_size = {{ php_fpm_post_max_size }}
upload_max_filesize = {{ php_fpm_upload_max_filesize }}
max_file_uploads = {{ php_fpm_max_file_uploads }}
Run Code Online (Sandbox Code Playgroud)
# templates/fpm/conf.d/50-opcache.ini.j2

[opcache]
opcache.enable=1
opcache.memory_consumption={{ php_opcache_memory_limit }}
opcache.validate_timestamps=1
opcache.revalidate_freq=1
opcache.huge_code_pages=1
Run Code Online (Sandbox Code Playgroud)

edit2:
我不确定这是否是 task_profile 应该做的,但这是上面在名为 的服务器上该命令的输出management-1。之后我添加了一个调试任务以获得准确的时间。4 个甚至不需要更新的模板花费了约 7.3 秒:

TASK [php : Configure php-8.1] ************************************************************************************************************************************************************************************
Tuesday 22 March 2022  10:17:33 +0100 (0:00:02.730)       0:00:06.616 ********* 
ok: [management-1] => (item=cli/conf.d/50-memory.ini)
ok: [management-1] => (item=fpm/conf.d/50-memory.ini)
ok: [management-1] => (item=fpm/conf.d/50-opcache.ini)
ok: [management-1] => (item=fpm/pool.d/www.conf)

TASK [php : Debug] ************************************************************************************************************************************************************************************************
Tuesday 22 March 2022  10:17:40 +0100 (0:00:07.308)       0:00:13.924 ********* 
Run Code Online (Sandbox Code Playgroud)

mor*_*itz 1

我们刚刚从 ansible 2.7.7 切换到 2.10.7,任务似乎template变得特别慢,整个剧本花费的时间是以前的两倍。

我怀疑这是 ansible 中的一个错误,需要跟踪和修复(尽管我必须检查它是否在更新的 ansible 版本中实际上已修复)。