无法将属性与数字进行比较。错误:“‘AnsibleUnsafeText’和‘int’实例之间不支持”

2024-04-25

- getent:
    database: passwd
- debug: 
    var: getent_passwd | dict2items | selectattr('value.1', '>=', 1000) | map(attribute='key') | list

输出是

TASK [debug] ******************************************************************************************************
fatal: [localhost]: FAILED! => {"msg": "Unexpected templating type error occurred on 
({{getent_passwd | dict2items | selectattr('value.1', '>=', 1000) | map(attribute='key') | list}}): 
'>=' not supported between instances of 'AnsibleUnsafeText' and 'int'"}

如何将“value.1”更改为整数?


Q: "我该如何改变value.1为整数?"

A: Use json_query https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#json-query-filter功能收件人号码 https://jmespath.org/specification.html#to-number。例如

    - debug:
        var: getent_passwd|
             dict2items|
             json_query('[?to_number(value[1]) >= `1000`].key')

Q: "我该如何改变1000到一个变量?"

A:替换也应该转换为数字。声明是一个好主意query分别地。例如

    - set_fact:
        myusers: "{{ getent_passwd|dict2items|json_query(query) }}"
      vars:
        myuid: 1000
        query: "[?to_number(value[1]) >= to_number('{{ myuid }}')].key"

Q: "如何在 json_query 函数中添加更多条件?喜欢selectattr('value.5', 'ne', '/sbin/nologin')."

A: Use pipe https://jmespath.org/specification.html#pipe-expressions or 与表达式 https://jmespath.org/specification.html#grammar。例如

    - getent:
        database: passwd
    - set_fact:
        myusers: "{{ getent_passwd|dict2items|json_query(query) }}"
      vars:
        myuid: 1000
        myshell: /usr/sbin/nologin
        query: "[?to_number(value[1]) >= to_number('{{ myuid }}')] |
                [?value[5] == '{{ myshell }}'].{user: key, uid: value[1], shell: value[5]}"
    - debug:
        var: myusers

give

    "myusers": [
        {
            "user": "libvirt-qemu", 
            "shell": "/usr/sbin/nologin", 
            "uid": "64055"
        }, 
        {
            "user": "nobody", 
            "shell": "/usr/sbin/nologin", 
            "uid": "65534"
        }
    ]

拟合变量和比较运算符 https://jmespath.org/specification.html#comparison-operators满足您的需求。

json_query 中的管道可能被视为反模式。所以与表达式 https://jmespath.org/specification.html#grammar应使用而不是管道。例如

  query: "[?(to_number(value[1]) >= to_number('{{ myuid }}')) &&
            (value[5] == '{{ myshell }}')].{user: key, uid: value[1], shell: value[5]}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将属性与数字进行比较。错误:“‘AnsibleUnsafeText’和‘int’实例之间不支持” 的相关文章

  • Python - “ascii”编解码器无法解码字节

    我正在使用 Python 2 6 和 Jinja2 创建 HTML 报告 我为模板提供了许多结果 模板循环遍历它们并创建 HTML 表 当调用 template render 时 我突然开始收到此错误 td result result st
  • 获取 Ansible 控制机 IP 地址的最佳方法

    我正在使用 Ansible 和ufw在我的服务器上设置防火墙 作为ufw规则 我希望允许来自 Ansible 控制机的 SSH 但不允许来自其他任何地方 我的问题是 获取控制机本身的 IP 地址以便我可以将其放入规则中的最佳方法是什么 我知
  • 将变量内容复制到事实中后,Ansible 会抛出错误

    我有变量 其中包含带有其他模板引擎标记的字符串 不幸的是它们是三个花括号 如果我直接使用这些变量 一切都很好 如果我将它们复制到事实中以便随后修改它们 Ansible 会抛出错误 示例剧本 hosts localhost connectio
  • Ansible:权限被拒绝(公钥、密码)

    我无法连接到 Ansible 中的主机 这是错误 192 168 1 12 无法到达 gt 改变 假 msg 错误 SSH 在连接过程中遇到未知错误 我们建议您使用 vvvv 重新运行该命令 这会导致 将启用 SSH 调试输出以帮助诊断问题
  • Ansible Expect 模块无法匹配字符串/正则表达式脚本问题

    我正在尝试通过 Ansible 在 Vagrant 机器中自动安装脚本 我尝试了很多方法在网络上寻找解决方案 但文档和示例非常薄弱 我试图安装的脚本提示了我试图以编程方式回答的问题Ansible 期望模块 Ansible 任务 名称 运行
  • 无法在守护进程模式下运行 Ansible

    我可以运行 Ansible 像守护进程一样管理我的主机吗 例如 我有时会更改我的剧本 但我不想手动运行 ansible playbook main yml 请不要建议 crontab 有一个特定的点 我不能在生产服务器上使用 crontab
  • 如何将文件从 Ansible Tower 上传到 Artifactory?

    我每次都会收到此错误 但仅在尝试从 Ansible Tower 上传到 Artifactory 时出现在特定文件上 这些文件都是在清单主机上创建的Oracle Collection Tool 然后在上传到 Artifactory 之前获取到
  • 我怎样才能得到dag中的execution_date?运算符的外部?

    我怎样才能获得execution date参数在 dag 之外 execution min execution date strftime M if execution min 00 logging info YES It s 00 fin
  • 使用 ansible SSH 到远程服务器

    我正在使用 ansible 来自动化一些任务 其中之一要求我ssh到服务器A 然后从A到B 然后从B到C 我似乎找不到任何方法来做到这一点 有什么建议么 鉴于您不使用 Paramiko 进行 ssh transport ssh https
  • 有条件地使用文件夹大小

    我只想在大小大于特定大小时删除文件夹 不幸的是我无法达到想要的结果stat module Attempt hosts pluto tasks stat path home ik thunderbird register folder nam
  • Ansible:即使成为 sudo 用户,也无法配置 sudo 命令

    testuser 是 sudo 用户 sudo cat etc sudoers d 90 cloud init testuser testuser ALL ALL NOPASSWD ALL 我可以手动登录 testuser 并在没有密码的情
  • 如何使用 url_for() 将路径和查询数据传递到使用 FastAPI 和 Jinja2 的路由?

    我想从 Jinja2 模板中调用 FastAPI 路由 并传递两者path and query该路由的数据 参数 我在 Jinja2 模板中尝试过如下所示 url for function1 uustr data uustr interva
  • 附加到 group_vars 中的 Ansible 字典而不使用 hash_behaviour = merge

    我想定义一个字典变量 各个主机组可以将自己的密钥添加到其中在group vars中 不使用set fact 例如 像这样的东西 group vars ftp servers yml important ports ftp 21 group
  • 如何在 jinja2 中缩进嵌套的 if/for 语句

    我有一个很长的 Jinja2 模板 其中有很多嵌套if for声明 很难读 我想缩进 位 使其更清晰 但是 如果我这样做 这些块的内容也会进一步缩进 我怎样才能缩进just the bits 我正在使用安塞布尔 重现步骤 template
  • Google App Engine 开发服务器中的 PyCrypto“ImportError:无法导入名称 blockalgo”

    我有一个使用 PyCrypto 使用 AES 加密字符串的函数 当我在单元测试中调用该函数时 一切正常 在生产环境中 它也运行得很好 但是 在GAE开发服务器上调用该函数时 会抛出错误 ImportError 无法导入名称blockalgo
  • 在 jinja2 模板中转义 jinja2 语法

    我在 Flask 中提供来自 Jinja2 模板的动态页面 现在 我在脚本标记内定义客户端模板 比如 Jinja2 clone Nunjucks 问题是 客户端模板的语法如下 that Flask sJinja2 解释器可以解释而不是渲染v
  • Ansible 无法运行任何命令或 shell

    我在 RPi 上运行任何命令或 shell 时遇到问题 当我使用以下代码时 name Example command ansible builtin command cmd cat etc motd 我收到此错误 Unsupported p
  • Ansible 测试变量以什么开头

    我需要能够安装 MySQL 库 Python 有 1 个用于 v2 的包和另一个用于 v3 的包 我需要能够告诉 Ansible 要安装哪个包 name Ensure MySQL python is installed pip name M
  • 动态添加jinja模板

    我有一个 jinja 模板 它是一组 div 标签内的唯一内容 div include temppage html div 当我按下按钮时 我想用其他内容替换标签之间的所有内容 我希望用另一个 jinja 模板 include realpa
  • 如何更改 ansible_default_ipv4?

    我想将 ansible default ipv4 更改为指向 eth1 而不是 eth0 我可以在剧本中或通过 extra vars 选项来执行此操作吗 ansible 使用命令 https github com ansible ansib

随机推荐

  • 使用字典作为数据源绑定组合框

    我正在使用 NET 2 0 并且尝试将组合框的数据源绑定到已排序的字典 所以我收到的错误是 在数据源上找不到 DataMember 属性 Key SortedDictionary
  • 记录到 golang 中的文件

    我从 golang 开始 当我开始构建我的应用程序时 我想从一开始就添加日志记录 这就是我遇到问题的地方 如果我打开一个文件并使用标准日志记录库 我就可以写入文件 就像这样 package main import os fmt log fu
  • Socat串口嗅探

    我目前正在尝试访问连接到应用程序的串行端口的两个方向上的数据 我想做的是 ttymxc0 socat sniff ttyV0 应用程序ttymxc0 是真实端口 ttyV0 是虚拟端口 我发现 socat 命令适用于 Ubuntu 16 0
  • 为什么我仍然收到“已超过传入邮件的最大邮件大小配额 (65536)”错误?

    我遇到了众所周知的 WCF 错误 已超出传入消息的最大消息大小配额 65536 要增加配额 请使用相应绑定元素上的 MaxReceivedMessageSize 属性 在阅读了此错误的前五个 Google 结果后 我仍然不知道我的服务 客户
  • Http PUT 请求到 jpeg

    我收到了如下 HTTP PUT PUT photo HTTP 1 1 X Apple AssetKey F92F9B91 954E 4D63 BB9A EEC771ADE6E8 X Apple Transition Dissolve Con
  • 如何使用 Spring Security 和 Spring Session 从多个服务器获取相同的会话

    很抱歉我的英语还是不太好 请耐心等待 希望您能理解我的问题 我有两个网络服务器 每个网络应用程序都是相同的 Web 服务器共享一台 Redis 服务器 我使用 Spring Security 和 Spring Session 当我登录第一台
  • jQuery ajax 基于父类别的无限动态选择框

    我有一个类别表 category id category name parent id 1 Electronics 0 2 Mobile Phones 1 3 Computers 1 4 Iphone 2 5 Samsung Galaxy
  • R 中 read.table() 函数中的多个 na.strings

    我有一个方桌 它有两个 na strings 例如 A 和 B 我需要将其转换为 NA 到目前为止 我可以将其中之一转为 NA 但不能同时转为 NA 我该怎么做 我可以在该参数中使用函数吗 如果是 我应该使用什么功能 我尝试过像 na st
  • Android 开发应用程序生命周期结束

    我目前正在编写一个应用程序 最终将推向市场 但目前它仍处于 Alpha 阶段 我正在尝试想出 定时炸弹 应用程序的最佳方法 因此如果它在特定日期之后运行 它将提示用户说 alpha 应用程序已过期并关闭 我不会对市场上的应用程序执行此操作
  • 如何在 Visual Studio Community 2015 中更新 Xamarin for Android

    我最近安装了 Visual Studio Community 2015 并且一直在关注 MSDN 教程 当设计应用程序的外观时 我选择了 Resources layout 文件夹中的 Main axml 文件 Android 设计器失败并显
  • 将 XML 绑定到 ItemsSource 时应用动态 XPath 表达式

    我有一个 XML 文档 描述如何为用户输入构建 UI 元素 并且有包含一些数据和 XPath 表达式的数据对象 我有一个数据对象类型的 DataTemplate 它使用 HierarchicalDataTemplate 来构建基于 XML
  • 基于复选框构建 SQL 查询

    假设我有一个表单 其中有 30 个与音乐流派相对应的复选框 它提交给 PHP 表单处理程序 我有一个艺术家表 其中有一个流派字段 构建具有以下行为的查询的最佳实践是什么 从艺术家中选择名称 其中genreid 1 ORgenreId 2 O
  • if else 在存储过程sql server中

    我创建了一个存储过程 如下所示 Create Procedure sp ADD USER EXTRANET CLIENT INDEX PHY ParLngId int output as Begin SET ParLngId Select
  • Python 脚本未在 cron 中运行

    我正在尝试从 cron 运行 Python 脚本 我使用 crontab 以用户身份而不是 root 身份运行命令 我的 Python 脚本的 shebang 位于顶部 usr bin env python我做到了chmod x它使脚本可执
  • 发生未知错误:用户在 Xcode 13.3 上拒绝了 github.com (-17) 的证书

    我遇到了这个奇怪的错误 每次我尝试将本地 git 存储库推送到 Github 时 这个错误都会让我烦恼 希望有人能帮我解决这个奇怪的事情 我的工作环境 Xcode 13 3 就我而言 网络调试代理导致了这个问题 看来 Xcode 固定了 g
  • 为什么 IE 不解析从 WCF 数据服务返回的 XML?

    我目前正在运行 IE8 并正在使用 WCF 数据服务进行一些测试 当我在浏览器中调用我的一个集合时 我得到 您正在查看的提要包含经常更新的内容 消息 并且不会显示任何 XML 因为它不能理解 Atom 内容元素 不过 我可以轻松地在 Chr
  • 将多个工作表导入到 R 中的多个数据框中

    我有一个包含很多工作表的 Excel 文件 我需要一个代码来将每个工作表导入到单独的数据框中 该数据框架的命名方式与 Excel 中的工作表名称相同 例如 选项卡 A B C 将分别作为数据框 A B 和 C 导入 从其他线程中 我看到了这
  • 无法从“int *”转换为“int []”?

    我知道这可能是一个常见问题 但我尝试搜索但仍然找不到明确的答案 我有以下代码 int f int a 1 2 3 return a int main int a f Error here getch return 0 此代码产生错误消息 C
  • 无法在后台任务中调用 Task.Run()

    我想在后台任务的线程中做一些事情 所以我尝试使用 Task Run 但它不起作用 任何人都可以向我展示另一种在后台任务中创建线程的方法 这是我的代码 public sealed class KatzBackgroundTask IBackg
  • 无法将属性与数字进行比较。错误:“‘AnsibleUnsafeText’和‘int’实例之间不支持”

    getent database passwd debug var getent passwd dict2items selectattr value 1 gt 1000 map attribute key list 输出是 TASK deb