Создание информационной системы с Vagrant для тестирования

В оставшейся части этой главы, поскольку мы хотим провести множество экспериментов без ущерба для рабочих серверов, мы будем использовать multi-machine возможности Vagrant для настройки нескольких серверов, которыми мы будем управлять с Ansible.

Ранее мы использовали Vagrant для загрузки одной виртуальной машины, работающей под управлением CentOS 7. В этом примере мы использовали конфигурацию Vagrant по умолчанию, определенную в Vagrantfile. В этом примере мы будем использовать мощные средства управления несколькими компьютерами.

Три сервера: два приложения, одна база данных:

Мы собираемся управлять тремя виртуальными машинами: двумя серверами приложений и сервером базы данных. Многие простые веб-приложения и веб-сайты имеют схожую архитектуру, и даже несмотря на то, что это может не отражать обширную область существующих комбинаций инфраструктуры, достаточно выделить возможности управления сервером Ansible.

Чтобы начать, создайте новую папку на локальном диске (я люблю использовать ∼ /VMs/[dir]) и создайте новый пустой файл с именем Vagrantfile (Вот как мы описываем наши виртуальные машины для Vagrant). Откройте файл в редакторе и добавьте в него следующий код:

# -*- mode: ruby -*-
# vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.ssh.insert_key = false
    config.vm.provider :virtualbox do |vb|
        vb.customize ["modifyvm", :id, "--memory", "256"]
    end

    # Application server 1.
    config.vm.define "app1" do |app|
        app.vm.hostname = "orc-app1.dev"
        app.vm.box = "geerlingguy/centos7"
        app.vm.network :private_network, ip: "192.168.60.4"
    end

    # Application server 2.
    config.vm.define "app2" do |app|
        app.vm.hostname = "orc-app2.dev"
        app.vm.box = "geerlingguy/centos7"
        app.vm.network :private_network, ip: "192.168.60.5"
    end

    # Database server.
    config.vm.define "db" do |db|
        db.vm.hostname = "orc-db.dev"
        db.vm.box = "geerlingguy/centos7"
        db.vm.network :private_network, ip: "192.168.60.6"
    end
end

Этот Vagrantfile определяет три сервера, которыми мы хотим управлять, и предоставляет каждому уникальное имя хоста (для VirtualBox) и IP-адрес. Ради простоты, все три сервера будут работать на CentOS 7.

Откройте терминал и перейдите в только что созданный каталог с новым Vagrantfile. Для установки серверов выполните команду:

vagrant up

Этот процесс не займет слишком много времени — может быть 5-10 минут.

Пока сервера устанавливаются и настраиваются, мы будем работать над тем, чтобы рассказать Ansible о них.

results matching ""

    No results matching ""