Использование Ansible с Vagrant

Возможность Vagrant запускать предварительно настроенные коробки удобна, но вы можете делать аналогичные вещи с той же эффективностью с помощью графического интерфейса VirtualBox’s (или VMWare, или Parallel). У Vagrant есть дополнительные возможности:

  • Управление сетевым интерфейсом: Можно пересылать порты на виртуальную машину, совместно использовать сетевое подключение или пользоваться частными сетями для обмена данными между виртуальными машинами и только для хостов.
  • Управление общими папками: Vagrant устанавливает общие ресурсы между хост-компьютером и виртуальными машинами с помощью NFS или (гораздо медленнее) совместное использование папок в VirtualBox.
  • Управление несколькими компьютерами: Vagrant способен настраивать и контролировать несколько виртуальных машин в пределах одного Vagrantfile.
  • Подготовка

Это последняя особенность, которая важна для нас. Ansible является одним из многих программ, интегрированных с Vagrant (другие включают в себя basic shell scripts, Chef, Docker, Puppet, и Salt). Когда вы вызываете команду vagrant provision (или vagrant up) в первый раз, Vagrant обращается с виртуальной машины на Ansible и сообщает Ansible, что необходимо запустить playbook. Мы поговорим о Ansible playbooks позже. На данный момент мы собираемся отредактировать наш Vagrantfile, чтобы использовать Ansible, чтобы настроить нашу виртуальную машину.

Откройте Vagrantfile, который был создан, когда мы использовали команду vagrant init . Добавьте следующие строки непосредственно перед последним ‘end’ (Vagrantfiles используют синтаксис Ruby):

# Provisioning configuration for Ansible.
config.vm.provision "ansible" do |ansible|
    ansible.playbook = "playbook.yml"
end

Это очень простая конфигурация для начала использования Ansible с Vagrant. Есть много других Ansible настроек, которые можно использовать, когда мы глубже изучим Ansible. На данный момент мы просто хотим настроить очень простейший playbook — файл, созданный для того, чтобы сообщить ансибле, как настроить виртуальную машину.

results matching ""

    No results matching ""