Я собрал это вместе - который использует 3 отдельных .yml
ConfigTemplate.yml, который содержит остальную часть packetbeat.yml минус интерфейсы.
Interfaces.yml, который являетсявременный файл, используемый для записи интерфейсов в.
packetbeat.yml, который будет использоваться в качестве окончательного файла конфигурации.
Сценарий python должен находиться в каталоге packetbeat вместе с файлом config .yml
Единственным ограничением является то, что ему нужен Python на хост-машинах - следующий этап - посмотреть, можно ли это сделать с powershell.
Надеюсь, это поможет кому-то еще! Любые улучшения приветствуются!
import subprocess
devices = subprocess.check_output(["powershell.exe", "(./packetbeat.exe devices).count"])
devicesCount = int(devices.decode('utf-8'))
print(devicesCount)
deviceCount = range(devicesCount)
with open('ConfigTemplate.yml', 'r') as original: data1 = original.read()
with open('Interfaces.yml', 'w') as modified:
for i in deviceCount:
modified.write("packetbeat.interfaces.device: " + str(i)+ "\n" )
with open('Interfaces.yml', 'r') as original: data2 = original.read()
with open('Packetbeat.yml', 'w') as modified2: modified2.write("# ================== Set listening interfaces ==================" +"\n"+ data2 + "\n" + data1 + "\n")