首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 系统里,如何将新开的机器自动加进 ansible 主机列表里,不需要人为介入?

在 Linux 系统中,要将新开的机器自动加入 Ansible 主机列表,可以使用以下方法:

  1. 使用 Ansible 的自动发现功能:

在 Ansible 配置文件中,可以设置 host_discovery 选项为 True,并指定一个或多个子网,以便自动发现子网中的主机。

代码语言:txt
复制
[defaults]
host_discovery = True

[discovery]
subnets = 192.168.1.0/24, 192.168.2.0/24

这样,Ansible 会自动发现指定子网中的主机,并将它们添加到主机列表中。

  1. 使用 Ansible 的动态清单功能:

可以使用脚本或程序来生成动态清单,以便将新开的机器自动添加到主机列表中。

例如,可以使用以下 Python 脚本来生成动态清单:

代码语言:python
代码运行次数:0
复制
import os

# 获取所有主机名
hosts = os.popen('ls /etc/ansible/hosts/').read().strip().split('\n')

# 生成动态清单
inventory = {}
for host in hosts:
    inventory[host] = {'hosts': [host]}

print(inventory)

这个脚本会读取 /etc/ansible/hosts/ 目录下的所有主机名,并将它们添加到动态清单中。

  1. 使用 Ansible 的外部脚本功能:

可以使用外部脚本来将新开的机器自动添加到主机列表中。

例如,可以使用以下 Python 脚本来将新开的机器添加到主机列表中:

代码语言:python
代码运行次数:0
复制
import os

# 获取新开的机器名
new_host = os.popen('ls /etc/ansible/hosts/').read().strip().split('\n')[-1]

# 将新开的机器添加到主机列表中
with open('/etc/ansible/hosts', 'a') as f:
    f.write(new_host + '\n')

这个脚本会读取 /etc/ansible/hosts/ 目录下的最新主机名,并将它添加到主机列表中。

总之,要将新开的机器自动加入 Ansible 主机列表,可以使用 Ansible 的自动发现功能、动态清单功能或外部脚本功能。这些方法可以帮助自动化管理和维护 Ansible 主机列表,提高工作效率和准确性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用Python实现Zabbix-API

做运维的朋友应该知道,公司IDC机房经常有上架、下架、报修和报废的服务器。如果服务器数量很多的时候很容易造成监控遗漏。        大的互联网公司把监控系统和CMDB(资产管理系统|配置管理数据库系统)集成在一起,当上架一台新机器的时候CMDB里面会记录相关的信息,Zabbix根据CMDB里面信息自动Link相关的模块,添加|删除监控。很多小的公司没有资产管理系统,但作为监控的负责人应该每天知道上架了哪些新的机器,确保能添加到Zabbix监控里面。       首先给大家说一下脚本思路: 1)通过Nmap工具扫描网段,扫描出已经使用的IP地址。 2)通过Nmap检测已经扫描IP的3389或者22端口是否开放,可以判断那些事windows机器,那些是Linux机器。 3)Linux下面通过ssh + hostname命令找出Linux主机名。 4)Windows下面通过nmblookup -A 命令找出Windows主机名。 5)用Python脚本读扫描结果文件,把主机名写到列表里面。 6)用Zabbix python API 调用已经监控的主机名,写到列表里面。 7)两个列表取交集,用for循环判断哪些主机名没有监控。 8)发邮件通知监控负责人。

01
领券