使用 Kerberos 对 Windows 进行 Ansible 不起作用

2024-01-20

我尝试使用 Ansible 1.9.0.1 使用域用户名配置 Windows 服务器。我已经成功设置了 Linux Ansible 控制盒,并且能够使用基本身份验证来运行 ansible/ansible-playbook play。但是,使用域用户运行会失败。 Windows 节点上启用了 Kerberos:

winrm get winrm/config/client/auth Auth Basic = true Digest = true Kerberos = true Negotiate = true Certificate = true CredSSP = true

我尝试运行的剧本仅引用ansible的win_ping模块,以下是输出:

PLAY [Manage SMI] *************************************************************

TASK: [Ping] ******************************************************************
<host1> ESTABLISH WINRM CONNECTION FOR USER:  on PORT 5985 TO >host1
<host1> ESTABLISH WINRM CONNECTION FOR USER:  on PORT 5985 TO >host2
<host1> REMOTE_MODULE win_ping
<host1> EXEC (New-Item -Type Directory -Path $env:temp -Name >"ansible-tmp-1429639247.03-231225138744234").FullName | Write-Host -Separator >'';
<host2> REMOTE_MODULE win_ping
<host2> EXEC (New-Item -Type Directory -Path $env:temp -Name >"ansible-tmp-1429639247.03-8060403929807").FullName | Write-Host -Separator '';

FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
           to retry, use: --limit @/home/deck/test.retry

host1            : ok=0    changed=0    unreachable=1    failed=0
host2            : ok=0    changed=0    unreachable=1    failed=0

根据系统事件日志,用户已正确进行身份验证,因此看起来文件传输到 tmp 目录失败。

任何帮助是极大的赞赏。


一位同事找到了解决此问题的方法。使用 kerberos 时,pywinrm 中似乎存在问题,导致模块在尝试调用 Transport.py 内的 KerbosTicket 时死亡。如果使用以下内容修补 Transport.py:

class KerberosTicket:
"""
Implementation based on http://ncoghlan_devs-python-notes.readthedocs.org/en/latest/python_kerberos.html
"""
def __init__(self, service):
    # added line below
    self.test=1
    ignored_code, krb_context = kerberos.authGSSClientInit(service)
    kerberos.authGSSClientStep(krb_context, '')
    # TODO authGSSClientStep may raise following error:
    #GSSError: (('Unspecified GSS failure.  Minor code may provide more information', 851968),
    # ("Credentials cache file '/tmp/krb5cc_1000' not found", -1765328189))
    self._krb_context = krb_context
    gss_response = kerberos.authGSSClientResponse(krb_context)
    self.auth_header = 'Negotiate {0}'.format(gss_response)

我们不能 100% 确定为什么会这样,但目前这是我们的解决方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Kerberos 对 Windows 进行 Ansible 不起作用 的相关文章

  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何使用 OpencV 从 Firebase 读取图像?

    有没有使用 OpenCV 从 Firebase 读取图像的想法 或者我必须先下载图片 然后从本地文件夹执行 cv imread 功能 有什么办法我可以使用cv imread link of picture from firebase 您可以
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • Windows C++ 中的键盘钩子还是什么?

    我希望构建自己的应用程序 它可以将键盘命令 消息 发送到 Windows 操作系统 例如 当我按下组合键 ctrl shift n 时 我希望启动 notepad exe 我怎样才能做到这一点 您对所使用的概念有什么建议吗 我读过 何时使用
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 根据一组条件将数据框中的值替换为其他数据框中的值

    在 df1 中 我需要将 msec 的值替换为 df2 中的相应值 df1 lt data frame ID c rs rs rs tr tr tr cond c 1 1 2 1 1 2 block c 2 2 4 2 2 4 correc
  • 为什么我不能“转到默认值”或“转到案例 x;”在开关选择结构内?

    C11 第 6 8 1 节 http www iso 9899 info n1570 html 6 8 1 or C99 http www iso 9899 info n1256 html 6 8 1 或第 3 6 1 节C89 http
  • Android:我应该以什么方式将代码与样式分开?

    从 html php css 开始 Android 编程 我在网上搜索了一种将代码与样式分开的简单方法 现在我需要在列表或表格视图中显示数据库中的数据 简而言之 我从数据库获取一个游标 迭代它 在代码中动态创建每个列表项作为 TextVie
  • 如何在 leiningen repl 中预加载 clojure 文件?

    我希望在启动 clojure REPL 时预加载一些 clojure 函数 这些函数没有多大用处 除非您在 REPL 上下文中使用它们 如果有帮助 我通常使用 leiningen 为我启动 clojure REPL 我如何告诉 clojur
  • 函数是如何柯里化的?

    我了解柯里化的概念是什么 并且知道如何使用它 这些不是我的问题 而是我很好奇这是如何在比 Haskell 代码更低的级别上实际实现的 例如 当 2 4被柯里化 是一个指向2维持直到4被传入 甘道夫会扭曲时空吗 这是什么魔法 简短回答 是的
  • 将 S3 与 Active Storage 结合使用时出现“请求已过期”

    我是第一次使用 ActiveStorage 在开发中一切正常 但在生产 Heroku 中我的图像无缘无故地消失了 第一次显示正常 但现在没有显示图像 在控制台中我可以看到这个错误 GET https XXX s3 amazonaws com
  • 设置用户控件的默认事件

    我有一个User Control包含一堆控件 我想设置这个的默认事件User Control to the Click我的一个按钮的事件 我知道为了将默认事件设置为 UserControl 的事件之一 我应该添加以下属性 DefaultEv
  • 使用 MediaStore Android 10 下载大文件

    我正在尝试下载一个文件来下载Android 10及以上版本的目录 我做了如下 val resolver contentResolver val contentValues ContentValues apply put MediaStore
  • Yii - 从控制器动态更改规则

    假设我有一个可以有颜色的产品 根据产品类型 可能需要也可能不需要色域 如果总是需要颜色 我会在产品模型中包含以下内容 public function rules return array array colour required 但是 我
  • opencv函数中的内存泄漏

    我注意到我的程序的内存使用量有时会毫无意义地增加 特别是当我使用cvWaitKey 0 我的程序倾向于在 10 秒内将内存使用情况拍摄到一个巨大的大小 有解决办法吗 或者这是一个 OpenCv 错误 我有一个简单的函数叫做Show Imag
  • 数据集设计器问题 - Visual Studio 2008

    我们使用数据集在应用程序中的各个节点之间传递少量数据 数据集本身位于程序集中 因为它是许多其他组件的引用 Visual Studio 数据集工具养成了一个奇怪的习惯 即每次构建完成后都会创建一个新的设计器 所以 该项目看起来像这样 MyDa
  • Graphql 只查询非空对象

    我正在尝试执行这样的查询 people pet name result people pet null people pet name steve 我想要的是只得到包含宠物的人 有什么方法可以实现这一点而不是在我的解析器上编码 事实上 这是
  • Linux 内核模块 - 创建 proc 文件 - proc_root 未声明错误

    我从该 URL 复制并粘贴代码 以使用内核模块创建和读取 写入 proc 文件 但收到 proc root 未声明的错误 这个例子在几个网站上都有 所以我认为它是有效的 有什么想法为什么我会收到此错误吗 我的 makefile 需要不同的东
  • 如何在虚拟模式下自动调整列表视图的列宽?

    当我使用 TListView ViewStyle vsReport 时 我可以自动调整列的宽度 设置LVSCW AUTOSIZE or LVSCW AUTOSIZE USEHEADER http msdn microsoft com en
  • 当某些列有多个分隔符时,将 pandas 数据框从宽转换为长

    From 将 pandas 数据框从宽转换为长 https stackoverflow com questions 45123924 convert pandas dataframe from wide to long 45124130 4
  • 类型错误:Object(...) 不是第一个运行 webpack 的函数

    我尝试基于 webpack 运行我的应用程序 但在第一次运行期间出现错误 Uncaught TypeError Object is not a function at Object
  • 使用 KnpPaginatorBundle 对连接表进行排序

    我设置了一个测试来更加熟悉 Symfony2 和 KnpPaginatorBundle 我有一张包含宠物的桌子 其中引用了宠物动物类型 Dog Cat ETC 我可以按id name 但是当我尝试按动物排序时type我收到一条错误消息 指出
  • 将 Google 文档集成到网站中以进行内容创建

    我正在建立一个自助出版网站 我想将 Google 文档集成到我的网站中 并允许每个出版商 作家从我的网站编写她 他的书 然后从我的网站或直接从 Google 文档更新内容 并保持两个版本的内容同步 这可能吗 谢谢 是的 这是可能的 您可以获
  • .net 4 向后兼容性

    在 net 4 中开发的 Windows 应用程序引用在 net 3 5 中开发的程序集 是否需要安装 net 4 和 net 3 5 才能运行该应用程序 我怀疑是这样 正如我的观察之一 此外 这感觉很合乎逻辑 因为两者的执行都需要不同的运
  • 使用 Kerberos 对 Windows 进行 Ansible 不起作用

    我尝试使用 Ansible 1 9 0 1 使用域用户名配置 Windows 服务器 我已经成功设置了 Linux Ansible 控制盒 并且能够使用基本身份验证来运行 ansible ansible playbook play 但是 使