Ansible 2.8.7 API 使用异常1:“connection plugin class ansible.utils.sentinel.Sentinel was not found“

 系统环境
    ------
     - CENTOS7.6-1810
     - virtualenv
     - python 3.8.0
     - ansible 2.8.7
     - eclipse 201909 + PyDEV 7.4


    以前自定义options:
    
    from collections import namedtuple
    from optparse import Values
    
        options = {'verbosity': 0, 'connection': 'smart', 'timeout': 15,..........}
        ops = Values(options)
    
    
    现在改为如下, 异常消失:
    
    from ansible import context
    from ansible.module_utils.common.collections import ImmutableDict

     方法1.
    context._init_global_context(ops)

    方法2.
        context.CLIARGS = ImmutableDict(
            connection='smart', module_path=None, verbosity=5,
            forks=10, become=None, become_method=None, 
            become_user=None, check=False, diff=False)

    #如果报键值异常:

    Traceback (most recent call last):
        if context.CLIARGS['syntax']:
      File "/mydev/.envs/ansible287/lib/python3.8/site-packages/ansible/module_utils/common/collections.py", line 20, in __getitem__
        return self._store[key]
      KeyError: 'syntax'

则追加相应Options参数,如syntax=None,start_at_task=None。。。。。。

 

 

 

ansible==2.9.12 方法二好使;根本原因是ansible/utils/context_objects.py 中声明全局变量CLIArgs,比如在 ansible/executor/task_queue_manager.py 中使用,也就是说需要提前需要设置CLIArgs的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值