Vagrant — автоматизация виртуальных машин

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

Просмотр версии:
vagrant — -version 

https://app.vagrantup.com/boxes/search — список доступных образов

Создание машины:
vagrant init generic/centos7
Включение машины:
vagrant up
Запрос состояния машин: 
vagrant status 
Полное выключение машины :
vagrant halt
Удаление машины :
vagrant destroy
Зайти в машину по ssh :
vagrant ssh

Допишим в файл ключей запись о машине которая хоччет подключаться к виртуальной :
vim ~/.ssh/authorized_keys


В хост системе в отдельном терминале выведем свой публичный ключ и его содержимое добавим в конец файла на виртуальной машине:
vim ~/.ssh/id_rsa.pub

После этого можно попасть на виртуальную машину :
ssh -p 2222 vagrant@127.0.0.1

По умолчанию в виртуальной машине создается пользователь vagrant с паролем vagrant
Выполнение команд от root возможно с применением sudo , работает даже на CentOS

На хост машине имеется файл конфигурации Vagrantfile, в нем можно задать свои параметры, пробросить порт увеличить память и тд, без учета комментариев это выглядит так:

Vagrant.configure("2") do |config|
  config.vm.box = "generic/centos7"
  config.vm.provider "virtualbox" do |vb|
        vb.memory = "2048"
   end
   config.vm.network "forwarded_port", guest: 80, host: 8080
   config.vm.synced_folder "src/", "/srv/website" , disable: true

   config.vm.provision "shell", inline: <<-SHELL
     sudo yum -y update
     sudo yum install -y httpd
     sudo systemctl enable httpd
     sudo systemctl start httpd
     sudo firewall-cmd --zone=public --add-service=http --permanent
     sudo systemctl restart firewalld.service
   SHELL
end

1 Скачается и создастся виртуальная машина на базе CentOS с оперативной памятью 2 Гб, 
2 Из виртуальной машины будет проброшен порт 80 -> 8080 хост системы
3 Будет создана общая папка для синхронизации файлов ( /src — на хосте , /srv/website  на виртуалке.
4 Система обновиться
5 Установится web сервер , он будет добавлен в «автозагрузку» 
6 На постоянной основе под него будет открыт порт на фаерволе.

Документация по применяемым параметрам :

https://www.vagrantup.com/docs/vagrantfile/machine_settings.html

Закладка Постоянная ссылка.

Комментарии запрещены.