我有一个剧本,用于查询服务器的 SystemID,可以使用供应商提供的将 id 映射到模型的表将其转换为型号。服务器返回十进制值,但表使用等效的十六进制值。
我想要做的是将十进制字符串转换为可以与供应商提供的表中的条目匹配的十六进制字符串。
例子:
Server returns: SystemID = 1792
Matching entry in vendor table: 0x0700
Run Code Online (Sandbox Code Playgroud)
我在 Ansible 文档和 Web 中搜索了本机 Ansible 命令或 jinja2 表达式来进行转换。
我只发现int(value, base=x)jinja2 函数的作用与我想要做的相反。
本机 pythonhex()命令可以做到这一点。但如果可能的话我想避免这种情况。
以下是解析服务器标准输出以获取 systemid 值的 playbook 任务:
Server returns: SystemID = 1792
Matching entry in vendor table: 0x0700
Run Code Online (Sandbox Code Playgroud)
环境:Ansible 2.9.7 Python 3.8.0 macOS 10.15.4