Ответ
Для управления инфраструктурой без Ansible/Python есть несколько сильных альтернатив:
-
Terraform (Infrastructure as Code): Идеален для провиженинга и оркестрации облачных ресурсов и сервисов. Он декларативен и хранит состояние.
# Создание 10 идентичных инстансов в AWS resource "aws_instance" "app_server" { count = 10 ami = data.aws_ami.ubuntu.id instance_type = "t3.micro" tags = { Name = "App-Server-${count.index}" } } -
Puppet: Декларативный инструмент конфигурационного менеджмента на собственном DSL. Вы описываете желаемое состояние системы, а Puppet его приводит в соответствие.
# Puppet манифест для установки nginx на все ноды node default { package { 'nginx': ensure => installed, } service { 'nginx': ensure => running, enable => true, require => Package['nginx'], } } -
Chef: Также инструмент конфигурационного менеджмента, но использующий Ruby для написания "рецептов". Более императивный, чем Puppet.
-
SaltStack: Быстрый и масштабируемый инструмент, использует YAML (States) или собственный DSL (PyDSL) для описания конфигурации. Работает по модели master-minion.
-
Облачные инструменты: AWS Systems Manager (SSM), Azure Automation, Google Cloud Deployment Manager позволяют управлять виртуальными машинами и их конфигурацией нативно в рамках своей платформы.
Выбор зависит от стека: Terraform — для облачной инфраструктуры, Puppet/Chef/Salt — для конфигурации уже существующих ОС.