ansible - 如何从公共切换到私人
问题描述
- name: Search1
become: no
delegate_to: localhost
command: "../home/ev/search.py {{ item }}"
register: name
with_items: "{{ansible_all_ipv4_addresses|ipaddr('public') }}"
changed_when: false
我试图在我们的库存中执行上面的剧本,并且只在具有公共 IP 的服务器上工作,但它没有在诸如 VPS/AWS 等在其接口上定义了私有 IP 的服务器上工作。
有没有办法说主机是否有私有IP然后使用这个:
- name: Search2
become: no
delegate_to: localhost
command: "../home/ev/search.py {{ item }}"
register: name
with_items: "{{INVENTORY_HOSTNAME|ipaddr('public') }}"
changed_when: false
解决方案
我能够使用 when: ansible_interface|length > 5 在接口之间切换。我有许多服务器的接口超过 5 个 + 绑定。我在服务器上只有 1 个私有接口。
推荐阅读
- api - VueJS POST http://127.0.0.1:8000/login 404(未找到)
- node.js - 处理高负载的 Node.js 后端
- pytorch - CUDA 内存不足。尝试分配 14.00 MiB(GPU 0;4.00 GiB 总容量;2 GiB 已分配;6.20 MiB 空闲;2GiB 由 PyTorch 保留)
- jquery - 点击行上的数据表有时不起作用
- r - r shiny:从数据库中的搜索更新 rhandsontable 默认输入
- asp.net-core - 在自定义 RequestCultureProvider 中访问 ASP.NET Core HttpContext.Session
- axios - React - api调用返回未定义
- python - ModuleNotFoundError 但仅在嘲笑时
- javascript - 在 Squarespace 弹出事件侦听器/触发器之后运行代码
- flutter - 无法读取图像:错误:“未来”类型的值
'不能分配给'文件'类型的变量