首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止ansible.playbook.PlayBook中的冗长

停止ansible.playbook.PlayBook中的冗长
EN

Stack Overflow用户
提问于 2015-03-31 09:41:47
回答 1查看 2.1K关注 0票数 0

我在我的CLi中使用ansible。因此,所有的错误处理,我想自己做,我不想提供额外的信息,可能会使一个用户迷失方向。

当我试图在python代码中运行ansible剧本时,我收到了详细的msg消息:

代码语言:javascript
复制
PLAY [Role] ***************************************************************

GATHERING FACTS ***************************************************************
ok: [127.0.0.1]

TASK: [base-devel-go | Install go lang support] *******************************
ok: [127.0.0.1]

我使用可读剧本作为流的源。现在我看到了很多冗长的东西。我想把它藏起来,但却找不到该怎么做?

代码语言:javascript
复制
playbook = params["playbook"]
inventory = ansible.inventory.Inventory(hosts)
inventory.set_playbook_basedir(os.path.dirname(playbook))

stats = callbacks.AggregateStats()
playbook_cb = callbacks.PlaybookCallbacks(verbose=utils.VERBOSITY)
runner_cb = callbacks.PlaybookRunnerCallbacks(
    stats, verbose=utils.VERBOSITY)


params["inventory"] = inventory
params["stats"] = stats
params["callbacks"] = playbook_cb
params["runner_callbacks"] = runner_cb

pb = ansible.playbook.PlayBook(**playbook_params)
pr = pb.run()

我试图在callbacks.py中找到答案,但我的python级别没有找到答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-09 04:45:17

这是禁用输出的最简单方法。我在CLi中使用ansible。因此,当我运行它时,我认为python绑定了->,这里有输出。但我找到了禁用它的方法:

代码语言:javascript
复制
from ansible import callbacks
# pylint: disable=too-many-arguments
def display(msg, color=None, stderr=False,
            screen_only=False, log_only=True, runner=None):
    # prevent a very rare case of interlaced multiprocess I/O
    callbacks.log_flock(runner)
    msg2 = msg
    if color:
        msg2 = stringc(msg, color)
    if not log_only:
        if not stderr:
            try:
                print msg2
            except UnicodeEncodeError:
                print msg2.encode('utf-8')
        else:
            try:
                print >>sys.stderr, msg2
            except UnicodeEncodeError:
                print >>sys.stderr, msg2.encode('utf-8')
    if callbacks.constants.DEFAULT_LOG_PATH != '':
        while msg.startswith("\n"):
            msg = msg.replace("\n", "")
        if not screen_only:
            if color == 'red':
                logging.error(msg)
            else:
                logging.info(msg)
    callbacks.log_unflock(runner)

# disable verbose
callbacks.display = display
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29365452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档