Как другие уже заявили, используйте то, с чем Вы являетесь самыми знакомыми и удостоверяетесь, что вещи как сервис DHCP или не установлены или отключены. Fedora или CentOS имеют смысл в Вашем случае. Я собираюсь отличаться своего рода свои предложения для установки его все же. Я предлагаю установить то, в чем Вы нуждаетесь из источника.
В то время как как сеть dev Вы не можете думать, что это имеет большой смысл, особенно рассматривая, как легкий это должно установить один из готовых созданных пакетов. В то время как администратор Linux может не согласиться, мой собственный опыт, поскольку администратор Windows, играющий с Linux, предполагает, что намного легче поддержать и обновить программное обеспечение (Apache, PHP, и т.д.) при выполнении его из источника.
На Centos, по крайней мере, готовые пакеты имеют тенденцию становиться вставленными в в других отношениях редкие местоположения в файловой системе. Те пакеты также имеют тенденцию довольно устареть, мешая тестировать против последних версий программного обеспечения. Обновление установленного компонента пакета с одним созданным из источника проблематично, если, как я, Вы не являетесь хорошо сведущими в таких вещах.
Коммутаторы Arista можно настроить с помощью Puppet, работающего в операционной системе EOS на самом коммутаторе. Arista даже предоставляет руководство по установке Puppet: Установка Puppet на EOS Так что это не должно быть проблемой.
Для задач инвентаризации (IP-адреса, локации, гарантия) я бы порекомендовал Zabbix.
AFAIK The Foreman already leads into the right direction, so maybe you should start to play with that.
Besides that take a look at Custom Facts. They are a powerful way to access all kinds of data and make it usable in Puppet manifests. E.g. create a custom fact like $::inventory_ipaddress
or even overwrite the $::ipaddress
fact with the canonical one to be used for configuration.
For 1: For a large number of hosts it is generally advisable not to have hundreds of node
definitions, but rather have a set of roles and profiles.
The general design challenge here is to have a clear flow of information from single source(s) of truth to the provisioning.
For 2+3: you could use puppet to call all kinds of auxillary scripts and tools, but I doubt it is the best tool for the job, because it probably will not be the "source of truth".
For 4: This is somewhere in between. I myself use puppet on EC2 instances to periodically trigger a Zabbix inventory update and use facter to fill e.g. role, OS version, security groups. Caveat here: my normative source of truth is a provisioning tool and my puppet manifests where I can change settings; on the other hand this inventory is only the final outcome to verify results.