Bug 28553

Summary: [FR] box для vagrant на базе Сизифа
Product: Sisyphus Reporter: Igor Zubkov <icesik>
Component: mkimage-profilesAssignee: Антон Мидюков <antohami>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P3 CC: aen, antohami, enp, evg, mike, pv
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
начальная фича и проверочный образ
none
скриншот с ошибкой..
none
ls /dev none

Description Igor Zubkov 2013-02-13 17:24:39 MSK
Есть такой очень удобный софт для виртуализации как vagrant. Он использует под капотом VirtualBox (возможно в будущем это может изменится, но пока он поддерживает только его). Я думаю что минимальный образ который может загрузится и поднять сеть будет достаточно. Т.е. как минимальный сервер: std-def ядро, glibc, rpm, apt, openssh server. sshd должен быть включён.

Box это в терминалогии vagrant обычный образ для VirtualBox в котором поднята сеть и положен ssh ключ vagrant. Этот ключ публичный.

Остальные подробности могу добавить потом.
Comment 1 Michael Shigorin 2013-02-13 19:02:37 MSK
Посмотри doc/vm.txt и собери себе vm/net.vdi (+/- что ещё захочешь).

А на vagrant я было смотрел как раз для генерации образов, в итоге оказалось проще содрать у коллеги сделанное для clustrx.
Comment 2 Igor Zubkov 2013-02-13 22:26:18 MSK
(В ответ на комментарий №1)
> Посмотри doc/vm.txt и собери себе vm/net.vdi (+/- что ещё захочешь).

Я не дописал. Никто не хочет и не будет собирать себе образы для vagrant таким образом. Надо что бы они просто автоматически собирались и выкладывались рядом с регулярными сборками десктопных исошкек.

Лично я считаю порог вхождения в mkimage-profiles слишком высоким. А с учётом того что эти знания применить потом даже негде, то учить этот инструмент я не буду. Так же поступят и все остальные.

> А на vagrant я было смотрел как раз для генерации образов, в итоге оказалось
> проще содрать у коллеги сделанное для clustrx.

vagrant не собирает образы. Он всего лишь прослойка для простого и удобного разворачивания и руления виртуальными машинами. Максимум что он умеет, это перепаковывать образы через VirtualBox.
Comment 3 enp 2014-05-08 11:03:46 MSK
Вот тут расписана процедура изготовления бокса - http://williamwalker.me/blog/creating-a-custom-vagrant-box.html
Comment 4 Michael Shigorin 2014-05-08 12:02:14 MSK
Ещё раз: цеплять vagrant в виде генератора образов на сейчас не вижу смысла,
а в чём иная суть предложенной разработки -- из comment #0 не понял.

Просьба уточнить, чем не устраивает http://altlinux.org/starterkits#vm
Comment 5 Igor Zubkov 2014-05-08 17:55:18 MSK
(В ответ на комментарий №4)
> Ещё раз: цеплять vagrant в виде генератора образов на сейчас не вижу смысла,
> а в чём иная суть предложенной разработки -- из comment #0 не понял.

Перечитай заново всё то что я написал.

> Просьба уточнить, чем не устраивает http://altlinux.org/starterkits#vm

Я хочу делать такое:
$ vagrant box add --name sisyphus http://ftp.altlinux.org/.../sisyphus.box
$ vagrant init sisyphus
$ vagrant up

Какой из тех образов можно скормить vagrant что бы такое заработало?

Охота что бы такие образы для vagrant делались регулярно. Хотя бы на базе Sisyphus.

И ещё один момент, в новом vagrant была добавлена поддержка других типов виртуальных и не очень (amazon ec2 к примеру) машин. Предлагаю считать что тут у нас vagrant на VirtualBox.
Comment 6 Igor Zubkov 2014-05-08 18:16:42 MSK
(В ответ на комментарий №4)
> Ещё раз: цеплять vagrant в виде генератора образов на сейчас не вижу смысла,
> а в чём иная суть предложенной разработки -- из comment #0 не понял.

Если уж быть ещё более дотошным, то нужен просто образ от в формате VirtualBox с парой хаков внутри:
1. Включена сеть
2. Установленный sshd и запускается по-умолчанию
2. Добавлен пользователь vagrant с паролем vagrant
3. Добавлен публичный ключ vagrant из самого vagrant
4. Установлен sudo, отключён requiretty и настроен что бы пользователь vagrant мог его использовать без пароля ("vagrant ALL=(ALL) NOPASSWD:ALL").
5. Установлены дополнения для VirtualBox.

Это всё предельно просто. Только я в вашей каше из makefiles просто не знаю как это сделать.
Comment 7 Michael Shigorin 2014-05-08 20:35:59 MSK
Во, так понятней.  А каша вообще-то немного документирована как внутри себя,
так и на http://altlinux.org/m-p и недостаток/невнятность/избыток документации
признаются багами.
Comment 8 Igor Zubkov 2014-05-08 21:18:15 MSK
(В ответ на комментарий №7)
> Во, так понятней.

Готов помочь с тестирование. :)

И что бы не было путаницы, думаю что target лучше всего сделать vagrant-virtualbox. И файл на выходе vagrant-virtualbox.box
Comment 9 enp 2014-05-12 09:09:39 MSK
Там еще неприятность в том, что в /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/plugins/communicators/ssh/communicator.rb прибито гвоздями sudo -E, которого наш древний sudo не знает :(
Comment 10 Igor Zubkov 2014-05-12 14:58:39 MSK
(В ответ на комментарий №9)
> Там еще неприятность в том, что в
> /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/plugins/communicators/ssh/communicator.rb
> прибито гвоздями sudo -E, которого наш древний sudo не знает :(

Это не влияет на то, что нужен образ sisyphus (ну или бранчей) для запуска vagrant. Мне не особо волнует что сам vagrant не работает на текущем Сизифе.
Comment 11 Pavel Vainerman 2014-09-01 01:22:31 MSK
а как здесь дела? мне тоже актуально иметь box (образ) для vagrant..
хотя бы какой-нибудь..
Comment 12 Michael Shigorin 2014-09-01 01:42:37 MSK
Created attachment 6132 [details]
начальная фича и проверочный образ

Смотрел на него задумчиво примерно вчера, пока затык.  "Наработок" негусто.
Comment 13 Igor Zubkov 2014-09-01 15:06:41 MSK
(В ответ на комментарий №12)
> Created an attachment (id=6132) [details]
> начальная фича и проверочный образ
> 
> Смотрел на него задумчиво примерно вчера, пока затык.  "Наработок" негусто.

Выглядит вроде как правильно. Собери образ и положи куда-нибудь.
Comment 14 Michael Shigorin 2014-09-04 15:10:08 MSK
Собрано вслепую и, скорее всего, не заработает -- просьба сообщить, что не так:
http://fly.osdn.org.ua/~mike/iso/test/vagrant-base-20140904-x86_64.vdi
Comment 15 Pavel Vainerman 2014-09-04 19:49:11 MSK
(В ответ на комментарий №14)
> Собрано вслепую и, скорее всего, не заработает -- просьба сообщить, что не так:
> http://fly.osdn.org.ua/~mike/iso/test/vagrant-base-20140904-x86_64.vdi
  не может root смонтировать.. ругается на 'Unknown agrgument' в udevadm_settle...
Comment 16 Pavel Vainerman 2014-09-04 19:50:22 MSK
Created attachment 6136 [details]
скриншот с ошибкой..

Скриншот с ошибкой загрузки..
Comment 17 Michael Shigorin 2014-09-04 19:52:35 MSK
Спасибо; а что говорит ls /dev (или echo /dev/*) и как бы самому посмотреть?
Comment 18 Pavel Vainerman 2014-09-04 22:55:27 MSK
Created attachment 6137 [details]
ls /dev

(В ответ на комментарий №17)
> Спасибо; а что говорит ls /dev (или echo /dev/*) 
  прилагаю скриншот

> и как бы самому посмотреть?
  так собственно я просто в VirtualBox создал машину, запускаю и всё. До vagrant-а дело ещё не дошло..
Comment 19 Michael Shigorin 2014-09-09 18:30:19 MSK
Ага, не хватало ahci в tar2fs.  Просьба проверить http://fly.osdn.org.ua/~mike/iso/test/vagrant-base-20140909-x86_64.vdi.xz -- у меня в virtualbox загружается, хотя и с кучей ругани на invalid devname entry.
Comment 20 Igor Zubkov 2014-09-09 19:04:58 MSK
(В ответ на комментарий №19)
> Ага, не хватало ahci в tar2fs.  Просьба проверить
> http://fly.osdn.org.ua/~mike/iso/test/vagrant-base-20140909-x86_64.vdi.xz -- у
> меня в virtualbox загружается, хотя и с кучей ругани на invalid devname entry.

При загрузке какой-то мусор лезит в терминал.

Потом, пользователя vagrant с паролем vagrant впустило. Рута с паролем vagrant нет, хотя должно было. sudo не стоит, хотя тоже должно. Пока тестировать больше нечего.

Если что, я образ просто подключил к VirtualBox и загрузился.
Comment 21 Igor Zubkov 2014-09-09 19:07:07 MSK
(В ответ на комментарий №16)
> Created an attachment (id=6136) [details]
> скриншот с ошибкой..
> 
> Скриншот с ошибкой загрузки..

Это скорее всего из-за того что новый udev не знает опции --quiet. Надо дождатся исправления make-initrd в Сизифе.
Comment 22 Michael Shigorin 2014-09-09 21:31:20 MSK
Э, про root:vagrant в comment 6 ничего не было! ;-)

Обновил (MD5: 4e72e328e490bb53c06ed41f3264b5c0), просьба глянуть: http://fly.osdn.org.ua/~mike/iso/test/vagrant-base-20140909-x86_64.vdi.xz
Comment 23 Michael Shigorin 2014-09-13 00:45:15 MSK
Оно что -- заработало, что все хором замолчали? :)
Comment 24 Pavel Vainerman 2014-09-13 00:48:00 MSK
(В ответ на комментарий №23)
> Оно что -- заработало, что все хором замолчали? :)
  ну для моей задачи мне достаточно было образа запускаемого при помощи
vagrant. Соответственно более серьёзно, я проверить не могу просто.
Comment 25 Michael Shigorin 2014-09-13 15:33:49 MSK
Так запустился?  Просто если да, то я коммиты причешу и опубликую в m-p хоть.
Comment 26 Pavel Vainerman 2014-09-13 17:26:50 MSK
(В ответ на комментарий №25)
> Так запустился?  Просто если да, то я коммиты причешу и опубликую в m-p хоть.
  Да. В VB запускается... root по паролю vagrant пускает, sudo есть.
Специфику vagrant не проверял..
Comment 27 Michael Shigorin 2015-02-16 19:41:53 MSK
Обновлённый по состоянию на сегодня box можно взять здесь:
http://fly.osdn.org.ua/~mike/iso/test/vagrant-base-20150216-x86_64.vdi.xz
(md5: 45c1beb53485940acca2773ecd414bd4)

Если устраивает -- мержу соответствующую ветку в mkimage-profiles.
Comment 28 Igor Zubkov 2015-02-16 22:24:30 MSK
(В ответ на комментарий №27)
> Обновлённый по состоянию на сегодня box можно взять здесь:
> http://fly.osdn.org.ua/~mike/iso/test/vagrant-base-20150216-x86_64.vdi.xz
> (md5: 45c1beb53485940acca2773ecd414bd4)
> 
> Если устраивает -- мержу соответствующую ветку в mkimage-profiles.

Проверино:
1. login: root, password: vagrant -- работает
2. login: vagrant, password: vagrant -- работает
(Тут в документации не написано, должен ли у пользователя vagrant вообще быть пароль. Когда я найду ответ на этот вопрос в документации, я напишу суда.)
3. "sudo su -" от пользователя vagrant работает. Без пароля работает.
4. Дальше в этой сборке оказался пустой /home/vagrant/.ssh/authorized_keys. После докладывания, ssh vagrant@localhost в virtualbox'е заработал. Но это не показатель того что там всё правильно.
5. В этой сборке оказались уже старые дополнения для virtualbox. 4.3.20, а текущая версия уже 4.3.22. Было бы не плохо их обновить.
6. В этом образе оказалось слишком мало свободного места. Всего 20-30 мегабайт. Можно больше? А то реально тестировать просто не возможно.


(В ответ на комментарий №9)
> Там еще неприятность в том, что в
> /opt/vagrant/embedded/gems/gems/vagrant-1.5.4/plugins/communicators/ssh/communicator.rb
> прибито гвоздями sudo -E, которого наш древний sudo не знает :(

И до сих пор не поддерживает. А в исходниках всё ещё использует "sudo -E". Я пока не знаю, чем это может обернутся для нас. Надо тестировать.


Остальное буду тестировать дальше.
Comment 29 Michael Shigorin 2015-02-16 23:08:09 MSK
(В ответ на комментарий №28)
> 4. Дальше в этой сборке оказался пустой /home/vagrant/.ssh/authorized_keys.
Да, заметил в офлайне нюанс с порядком запуска скриптов.  Поправил.

> 5. В этой сборке оказались уже старые дополнения для virtualbox.
Это как в сизиф приедут.

> 6. В этом образе оказалось слишком мало свободного места.
Добавил до гигабайта пока, заодно собираю vmdk вместо vdi, как у них принято:
http://fly.osdn.org.ua/~mike/iso/test/vagrant-base-20150216-x86_64.vmdk.xz
(md5: 17f4f49160810d0291fd280bf0353b88)

> И до сих пор не поддерживает. А в исходниках всё ещё использует "sudo -E".
> Я пока не знаю, чем это может обернутся для нас. Надо тестировать.
Это ортогональный вопрос про упаковку самого vagrant.
Comment 30 Igor Zubkov 2015-02-16 23:30:58 MSK
(В ответ на комментарий №28)
> 2. login: vagrant, password: vagrant -- работает
> (Тут в документации не написано, должен ли у пользователя vagrant вообще быть
> пароль. Когда я найду ответ на этот вопрос в документации, я напишу суда.)

Перечитал документации. Пароль у пользователя vagrant должен быть vagrant.

"Also, even though Vagrant uses key-based authentication by default, it is a general convention to set the password for the "vagrant" user to "vagrant". This lets people login as that user manually if they need to."

Т.е. у нас тут правильно.
Comment 31 Michael Shigorin 2015-02-16 23:51:53 MSK
Угу.  Заканчиваю оформление этих коммитов и собираюсь опубликовать в составе mkimage-profiles 1.1.58 -- а дальше заняться метаданными для формата box (экспортированная тестовая машинка с осенних экспериментов под рукой есть).
Comment 33 Repository Robot 2015-02-17 00:05:05 MSK
mkimage-profiles-1.1.58-alt1 -> sisyphus:

* Mon Feb 16 2015 Michael Shigorin <mike@altlinux> 1.1.58-alt1
- vagrant feature (closes: #28553)