Команды Vagrant
Создание виртуальной машины с помощью Vagrant
Подготовленные виртуальные машины:
https://app.vagrantup.com/boxes/search
Vagrant копирует виртуальные машины с следующие директории.
$ pwd
/home/marley/.vagrant.d/boxes
$ ls
bento-VAGRANTSLASH-ubuntu-14.04 hashicorp-VAGRANTSLASH-precise64
coreos-alpha ubuntu-VAGRANTSLASH-bionic64
coreos-beta ubuntu-VAGRANTSLASH-trusty64
coreos-stable ubuntu-VAGRANTSLASH-xenial64
debian-VAGRANTSLASH-jessie64 v0rtex-VAGRANTSLASH-xenial64
Если версия обновляется, то в каталогах присутствуют разные версии. Может занимать много места.
$ cd ubuntu-VAGRANTSLASH-trusty64
$ ls
20161214.0.0 20170208.0.0 metadata_url
Команды
// Инициализировать конфиг файл с определенной операционной системой
$ vagrant init ubuntu/bionic64
// Задать параметры создаваемой виртуальной машины
$ vi Vagrantfile
// Запустить
$ vagrant up
// Подключиться
$ vagrant ssh
// приостановить
$ vagrant suspend
// остановить
$ vagrant halt
// продолжить
$ vagrant resume
// перезагрузить виртуалку (если я все правильно понял)
$ vagrant reload
//
$ vagrant destroy
// Destroy without confirmation
$ vagrant destroy -f
$ vagrant box list
coreos-alpha (virtualbox, 1298.1.0)
coreos-stable (virtualbox, 1185.3.0)
coreos-stable (virtualbox, 1235.6.0)
coreos-stable (virtualbox, 1235.9.0)
debian/jessie64 (virtualbox, 8.7.0)
hashicorp/precise64 (virtualbox, 1.1.0)
ubuntu/trusty64 (virtualbox, 20161214.0.0)
ubuntu/trusty64 (virtualbox, 20170208.0.0)
ubuntu/xenial64 (virtualbox, 20161213.0.0)
ubuntu/xenial64 (virtualbox, 20170209.0.0)
Ошибка
$ vagrant ssh core-01 -- -A
A Vagrant environment or target machine is required to run this
command. Run `vagrant init` to create a new Vagrant environment. Or,
get an ID of a target machine from `vagrant global-status` to run
this command on. A final option is to change to a directory with a
Vagrantfile and to try again.
$ vagrant global-status
id name provider state directory
------------------------------------------------------------------------
d2681b6 core-01 virtualbox running /home/marley/coreos-vagrant
bf4323b core-02 virtualbox running /home/marley/coreos-vagrant
1151104 core-03 virtualbox running /home/marley/coreos-vagrant
The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date. To interact with any of the machines, you can go to
that directory and run Vagrant, or you can use the ID directly
with Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"
$ vagrant ssh d2681b6
Last login: Sat Dec 3 22:16:56 UTC 2016 from 10.0.2.2 on pts/0
CoreOS stable (1185.3.0)
Failed Units: 3
helloworld.service
[email protected]
[email protected]
Еще команды:
$ vagrant status
Current machine states:
core-01 running (virtualbox)
core-02 running (virtualbox)
core-03 running (virtualbox)
$ vagrant ssh-config
Host core-01
HostName 127.0.0.1
User core
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/marley/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
ForwardAgent yes
Host core-02
HostName 127.0.0.1
User core
Port 2203
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/marley/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
ForwardAgent yes
Host core-03
HostName 127.0.0.1
User core
Port 2207
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/marley/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
ForwardAgent yes
// Чтобы можно было по ssh ходить между узлами без пароля
$ ssh-add ~/.vagrant.d/insecure_private_key
Identity added: /home/marley/.vagrant.d/insecure_private_key (/home/marley/.vagrant.d/insecure_private_key)
Потом:
$ ssh core-01 -p 2222 -i ~/.vagrant.d/insecure_private_key
$ ssh core-01