Spec-Zone.ru › Ansible 2.11

Руководство по Vagrant

Введение

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

Это руководство описывает, как использовать Vagrant 1.7+ и Ansible вместе.

Если вы не знакомы с Vagrant, вы можете посетить документацию.

В этом руководстве предполагается, что у вас уже установлен и работает Ansible. Запуск из Git-разветвления допустим. Для получения дополнительной информации следуйте руководству Установка Ansible.

Настройка Vagrant

Первый шаг после установки Vagrant — создание Vagrantfile и его настройка в соответствии с вашими потребностями. Это подробно описано в документации Vagrant, но вот быстрый пример, который включает раздел для использования провайдера Ansible для управления одной машиной:

# This guide is optimized for Vagrant 1.8 and above.
# Older versions of Vagrant put less info in the inventory they generate.
Vagrant.require_version ">= 1.8.0"

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/bionic64"

  config.vm.provision "ansible" do |ansible|
    ansible.verbose = "v"
    ansible.playbook = "playbook.yml"
  end
end

Обратите внимание на раздел config.vm.provision, который ссылается на Ansible-план под названием playbook.yml в той же директории, что и Vagrantfile. Vagrant запускает провайдер, как только виртуальная машина загрузится и будет готова к доступу по SSH.

В вашей Vagrantfile можно настроить множество опций Ansible. Для получения дополнительной информации посетите документацию по провайдеру Ansible.

$ vagrant up

Это запустит ВМ и выполнит план задания провайдера (при первом запуске ВМ).

Чтобы повторно запустить план задания на существующей ВМ, просто выполните:

$ vagrant provision

Это повторно запустит план задания для существующей ВМ.

Обратите внимание, что включение параметра ansible.verbose укажет Vagrant на вывод полного ansible-playbook команды, используемой за кулисами, как показано в этом примере:

$ PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --connection=ssh --timeout=30 --limit="default" --inventory-file=/home/someone/coding-in-a-project/.vagrant/provisioners/ansible/inventory -v playbook.yml

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

Ручное выполнение Ansible

Иногда вам может понадобиться запустить Ansible вручную на машинах. Это быстрее, чем запускать vagrant provision и довольно просто сделать.

В нашем примере Vagrantfile Vagrant автоматически создаёт файл инвентаризации Ansible в .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory. Эта инвентаризация настроена в соответствии с SSH-туннелем, который автоматически создаёт Vagrant. Типичный автоматически созданный файл инвентаризации для одномашинной среды может выглядеть примерно так:

# Generated by Vagrant

default ansible_host=127.0.0.1 ansible_port=2222 ansible_user='vagrant' ansible_ssh_private_key_file='/home/someone/coding-in-a-project/.vagrant/machines/default/virtualbox/private_key'

Если вы хотите запустить Ansible вручную, вам нужно убедиться, что вы передаёте ansible или ansible-playbook команды с правильными аргументами, по крайней мере, для инвентаризации.

$ ansible-playbook -i .vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory playbook.yml

Расширенное применение

В главе «Советы и рекомендации» документации по провайдеру Ansible содержится подробная информация о более расширенных возможностях Ansible, таких как:

  • как выполнить план задания параллельно в многомашинной среде
  • как интегрировать локальный файл конфигурации ansible.cfg

См. также

Главная страница Vagrant

Главная страница Vagrant с загрузками

Документация Vagrant

Документация Vagrant

Провайдер Ansible

Документация Vagrant по провайдеру Ansible

Отслеживание проблем Vagrant

Открытые проблемы с провайдером Ansible в проекте Vagrant

Работа с playbooks

Введение в playbooks

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/scenario_guides/guide_vagrant.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API