如何控制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个),可以写个极简的自定义回调插件,覆盖默认的标题输出逻辑:
- 在你的Ansible项目里创建
callback_plugins目录(没有的话新建一个) - 在目录里新建
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)
- 最后在
ansible.cfg里启用这个插件:
[defaults] callback_plugins = ./callback_plugins stdout_callback = custom_headers
这样每次执行Playbook时,PLAY和TASK标题后就会固定显示20个星号,你还能根据需求给不同类型的标题设置不同数量,比如PLAY用30个、TASK用20个,改一下代码里的数字就行。
内容的提问来源于stack exchange,提问作者Sridhar
相关产品推荐
相关产品推荐

