You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何控制Ansible Playbook任务输出中星号(*)的显示数量

调整Ansible Playbook任务标题后的星号数量

嘿,这个需求我之前也折腾过——默认的长串星号有时候确实有点占屏幕空间,想调整的话有两种比较简便的方法:

方法1:通过配置文件调整显示宽度(快速凑效)

Ansible默认的标题星号是跟着终端显示宽度填充的,你可以在ansible.cfg里设置display_width参数,把它改成你想要的宽度,星号长度就会对应变化。比如想让星号只占50个字符宽度:

[defaults]
display_width = 50

这样PLAY、TASK这类标题后的星号就会填充到50个字符宽度,比默认的终端宽度短很多。不过这个是全局调整,所有依赖显示宽度的输出(比如表格类内容)都会跟着受影响。

如果只是临时测试不想改配置,也可以用环境变量临时生效:

ANSIBLE_DISPLAY_WIDTH=50 ansible-playbook your_playbook.yml

方法2:自定义简易回调插件(精准控制星号数量)

要是想精准固定星号数量(比如只显示20个),可以写个极简的自定义回调插件,覆盖默认的标题输出逻辑:

  1. 在你的Ansible项目里创建callback_plugins目录(没有的话新建一个)
  2. 在目录里新建custom_headers.py文件,内容如下:
from ansible.plugins.callback.default import CallbackModule as DefaultCallback

class CallbackModule(DefaultCallback):
    def v2_playbook_on_play_start(self, play):
        # 给PLAY标题设置20个星号
        self._display.display(f"PLAY [{play.name}] {'*' * 20}", color=self.COLOR_OK)

    def v2_playbook_on_task_start(self, task, is_conditional):
        # 给TASK标题设置20个星号
        self._display.display(f"TASK [{task.get_name()}] {'*' * 20}", color=self.COLOR_OK)
  1. 最后在ansible.cfg里启用这个插件:
[defaults]
callback_plugins = ./callback_plugins
stdout_callback = custom_headers

这样每次执行Playbook时,PLAY和TASK标题后就会固定显示20个星号,你还能根据需求给不同类型的标题设置不同数量,比如PLAY用30个、TASK用20个,改一下代码里的数字就行。

内容的提问来源于stack exchange,提问作者Sridhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:46:35