Настройка Linux в окружении VirtualBox
August 3, 2010 in Software…Заканчиваю эпос в трех частях (1, 2) об настройке виртуального Linux-сервера под Windows.
Беспарольный sudo
Поскольку никто, кроме тебя, на виртуалку попасть не сможет, целесообразно убрать пароль с sudo. Так удобнее. Для этого в /etc/sudoers
нужно дописать строку
%username% ALL=NOPASSWD: ALL
где %username%, конечно – логин твоего пользователя, %username%.
Настройка сети
Вышеупомянутые статические настройки. Возможно, придется поменять IP-адреса (я почти уверен, что не придется) – правильные можно подсмотреть в выдаче ifconfig
.
# /etc/network/interfaces # Loopback - не забудь его не убрать auto lo iface lo inet loopback # NAT - служит выходом в Интернет, потому и gateway. auto eth0 iface eth0 inet static address 10.0.2.15 gateway 10.0.2.2 netmask 255.255.255.0 network 10.0.2.0 broadcast 10.0.2.255 # Host-only адаптер auto eth1 iface eth1 inet static address 192.168.56.101 netmask 255.255.255.0 network 192.168.56.0 broadcast 192.168.56.255
Остается настроить статический DNS. Проблема вот в чем: виртуальная машина получает свои DNS посредством DHCP у машины-хозяина, причем получает в момент загрузки. Предположим теперь, что я загрузил виртуалку дома, и она получила в качестве DNS мой роутер 192.168.1.1
. Потом я пошел на работу, выключив (или усыпив) ноут – виртуалка при этом сохранила свое состояние, при чем для нее ничего не поменялось вообще. Она по-прежнему использует в качестве DNS роутер – уже недоступный – и поэтому теряет способность разрешать доменные имена. Довольно-таки неочевидный затык.
Чтобы избавиться от этого, в файл /etc/dhcp3/dhclient.conf
добавляем строчку:
# Принудительно используем сервера OpenDNS (можешь указать любые другие) supersede domain-name-servers 208.67.222.222,208.67.220.220;
По-моему это не идеальный конфиг, по уму надо все настройки перенести в dhclient.conf
, но пока и так работает.
Настройка SSH
SSH-сервер по умолчанию в Убунте не стоит:
sudo apt-get install openssh-server
Предположим, ты используешь PuTTY. Тогда тебе остается сгенерировать им SSH-ключ – для удобства без ключевой фразы – и:
mkdir ~/.ssh echo "public key copypasted from putty" >~/.ssh/authorized_keys
После чего используем сгенерированный ключ для беспарольного входа на виртуалку. А если средствами ярлыка или BAT-файла вызывать putty -load virtualbox_session_name
– то даже без путтевского окна настроек.
Установка VirtualBox Guest Additions
Данная штука нужна обязательно хотя бы потому, что без нее на виртуалке сбивается время. Тут все просто – монтируем образ, предоставляемый VirtualBox-ом, и выполняем
sudo /media/cdrom/VBoxLinuxAdditions-x86.run
Гостевые дополнения также позволяют монтировать папки из машины-хозяина внутрь виртуалки, но мне это было не нужно и я этим не занимался. Замечу, что, скажем, рельсовые проекты в такие папки класть нельзя, ибо в них не соблюдаются права файлов.
Настройка Samba
Опять-таки нам выгодно открыть наибольший доступ по Samba, поскольку доступна она будет только с машины-хозяина.
Устанавливаем самбу:
sudo apt-get install samba
и прописываем такой себе минимальный конфиг (/etc/samba/smb.conf
):
[global] workgroup = WORKGROUP interfaces = lo eth1 bind interfaces only = yes security = share map to guest = bad user usershare allow guests = yes guest account = %username% [home] path = /home/%username% guest ok = yes guest only = yes read only = no directory mask = 0755 create mask = 0644
С таким конфигом можно заходить из Windows на \\192.168.56.101\home
и смотреть домашнюю папку своего пользователя.
Хосты
Чтобы не прописывать виртуальные хосты по несколько раз (на самой виртуалке, на машине-хозяине, на других виртуалках), имеет смысл настроить легонький DNS-сервер dnsmasq. Я до этого пока не добрался, прописываю хосты ручками.
Резюмируя
Вот и все. Пожалуй, все.
Я понимаю, что пишу не в стиле руководства для новичков – увы, излагать в духе «запустите sudo nano… кстати, nano – это такой текстовый редактор… для начала найдите на клавиатуре буковку эс… эс как доллар» я терпеть не могу. Гугл с удовольствием поможет разобраться в мелких деталях.
Надеюсь, помогу кому-нибудь слезть с денвера или Ruby for Windows в адекватную для веб-разработки среду. Ну или бросить мытарства с гномами-кедами-компизами без всякого ущерба для работы.
Вопросы? Предложения?
Понравился пост? Купи мне кофе