Создание инфраструктура в Yandex Cloud с помощью Terraform/Ansible?
Коллеги, доброй ночи. Изучаю облачную инфраструктуру, в учебных целях выполняю задачу, хотел бы получить пару советов/замечания.
На хост Ubuntu с установил Terraform, Ansible.
https://github.com/mistermedved01/fops-sysadm-diplom
Задача
Создать отказоустойчивый веб-сайт с балансировкой нагрузки через Application Load Balancer между двумя зонами доступности. Настроить мониторинг Zabbix.
Подзадача - Сайт
Создать две ВМ в разных зонах, установить на них сервер nginx. Создать ALB.
application-load-balancer-website.tf
- Создание группы ВМ;
- Политика размещения в разных зонах;
- Cоздание ALB;
network.tf
- Создание сети lan01 с двумя подсетями sub01 и sub02.
После того как созданы ВМ и ALB ставим ngnix с помощью Ansible Playbook nginx_install. Inventory формируется с помощью tf-inventory-for-ansible.py
Подзадача - Мониторинг
Создать ВМ, развернуть на ней Zabbix Server. На остальные ВМ установить Zabbix Agent.
install-zabbix-host.tf
- Cоздание ВМ;
- С помощью provisioner "file" копируются с хоста на ВМ zabbix_server.conf и setupzabbix.sh;
- С помощью provisioner "file" запускается setupzabbix.sh;
- Также в конце файла описана передача IP-адреса Zabbix Server в templates/zabbix_agentd.conf.j2. Необходимо для дальнейшей установки агентов;
После выполнения данных действий Zabbix Server готов, осталось зайти на веб-интерфейс и завершить его настройку.
Установка Zabbix Agent на ВМ
- Ранее созданный Inventory копируем в каталог плейбука zabbix-agent_install
- Запускаем плейбук install-zabbix-agent.yml
- Заходим на Zabbix Server и добавляем ВМ в список
UPD
Ввиду большого кол-ва вопросов - В чем проблема/вопрос.
Создание 2-х ngnix-серверов + ALB в Yandex Cloud с помощью Terraform успешно выполнена.
Открытый вопрос - какой наиболее оптимальный вариант раскатки Zabbix Server и Zabbix Agent?
Дополнительно:
В чем вопрос?
И это всё проще сделать вручную, для 2х серверов писать автоматизацию такое себе
https://registry.terraform.io/providers/yandex-clo...
Вопрос в дизайне создания Zabbix Server, Zabbix Agent
Открытый вопрос в дизайне создания Zabbix Server, Zabbix Agent.
если на сервере при этом настроить авторегистрацию - всё подключится автоматом
Агенты же ставятся через Ansible.
Я думал кто-то здесь в состоянии предложить что-то иное решение, более логичное.
Пока здесь все только пишут вилами по воде словно это маил.ру вопросы, а не хабр форум прогеров)
"A" вот это плохо делает а "tf" хорошо но зато "TF" плохо команды умеет выполнят а "A" лучше
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для создания инфраструктуры в Yandex Cloud с помощью Terraform и Ansible, вам потребуется выполнить несколько шагов.
1. Установите Terraform и Ansible на ваш компьютер. Вы можете найти инструкции по установке на официальных сайтах Terraform и Ansible.
2. Создайте файл конфигурации Terraform (например, main.tf), в котором определите необходимые ресурсы в Yandex Cloud. Ниже приведен пример конфигурации для создания виртуальной машины:
provider "yandex" { token = "your_yandex_cloud_token" cloud_id = "your_cloud_id" zone = "your_zone" } resource "yandex_compute_instance" "example" { name = "example-instance" zone = "your_zone" platform_id = "standard-v2" resources { cores = 2 memory = 2 } }
3. Запустите Terraform, чтобы создать инфраструктуру в Yandex Cloud. Выполните команду `terraform init` для инициализации проекта, затем `terraform plan` для просмотра плана создания ресурсов и, наконец, `terraform apply` для применения изменений.
4. После создания виртуальной машины с помощью Terraform, вы можете использовать Ansible для управления конфигурацией этой машины. Создайте файл inventory.yml, в котором определите IP-адрес вашей виртуальной машины:
all: hosts: example-instance: ansible_host: your_instance_ip
5. Создайте плейбук Ansible (например, playbook.yml), в котором определите задачи для конфигурации вашей виртуальной машины. Ниже приведен пример плейбука для установки nginx:
- hosts: example-instance tasks: - name: Install nginx apt: name: nginx state: present
6. Запустите Ansible, чтобы применить плейбук к вашей виртуальной машине. Выполните команду `ansible-playbook -i inventory.yml playbook.yml`.
Таким образом, вы сможете создать инфраструктуру в Yandex Cloud с помощью Terraform и управлять конфигурацией созданных ресурсов с помощью Ansible. Не забудьте заменить placeholder'ы в приведенных примерах на реальные значения, соответствующие вашей среде.