是否可以使用 ansible 管理服务器上的空闲端口?
我有以下场景:
我们有一些服务器将使用基本的 ansible 配置进行设置。之后,我们想要安装不同的应用程序(通过使用 docker-compose),这些应用程序必须绑定到计算机上的可用端口。现在的问题是,我事先不知道哪些端口已用于同一台计算机上的不同应用程序。第二个问题是我不能只寻找空闲端口,因为有可能并非所有 docker 容器都在运行。
有人能解决这个问题吗?
谢谢你。
如何使用 Ansible 在远程服务器上管理空闲端口?
我了解您喜欢在安装其他软件的过程中仅使用目标系统上的免费或可用端口。
您所描述的用例的解决方案是添加自定义事实。
假设端口配置(配置为在远程节点内使用)是关于该系统的事实。
Ansible 事实是与远程系统相关的数据,包括操作系统、IP 地址、附加文件系统等等。您可以在
变量中访问此数据。ansible_facts
因此,关于
目前没有计划设立中央存储。
这是没有必要的,因为人们可以使用当前配置,关于远程节点的
ansible_facts
,他们自己将其视为一种分布式数据库并只是收集它们。
我们想要安装不同的应用程序(通过使用
),这些应用程序必须绑定到计算机上的可用端口。docker-compose
在此过程中,只需向目标投放额外的本地事实即可。
我事先并不知道哪些端口已被同一台机器上的不同应用程序使用。第二个问题是我不能只寻找空闲端口,因为有可能并非所有 docker 容器都在运行。
收集事实,如
---
- hosts: localhost
become: false
gather_facts: true
tasks:
- name: Show Facts
debug:
msg: "{{ ansible_facts.ansible_local }}"
然后会提供必要的信息,正在使用的端口。
分步示例
关于