вторник, 28 февраля 2012 г.

VirtualBox Serial Console

Консоль может понадобиться, если по той или иной причине отстутсвует доступ к гостевой машине по ssh.

суббота, 25 февраля 2012 г.

Решение проблемы с bge драйвером NetXtreme BCM5723

Во FreeBSD9 появилась неприятная проблема с гигабитными сетевыми картами Broadcom NetXtreme BCM5723, такие часто стоят в серверах HP. Проблема проявляется записями в /var/log/messages:
bge0: watchdog timeout -- resetting
Затем следует падение и поднятие линка через несколько секунд.
Добавление следующей строки в /boot/loader.conf привело к стабильной работе:
hw.bge.allow_asf=0
Все дело, в том, что значение по умолчанию начиная с 9 ветки стало 1

среда, 22 февраля 2012 г.

Доступ в git поверх ssh для группы разработчиков

Задача довольна типичная - дать доступ в git группе разработчиков.
Для начала устанавливаем git стандартным системным способом, далее создаем аккаунты для разработчиков. При этом важно, чтобы основая группа ( в passwd) была одинаковой:
user1:*:1001:1000:User &:/home/user1:/usr/local/bin/bash
user2:*:1002:1000:User &:/home/user2:/usr/local/bin/bash 
Группа - это четвертое поле, у меня 1000, но это значение может быть любым.
Разумеется, ее перед этим нужно создать в /etc/group:
git:*:1000:
Теперь самое главное, при создании репозитория, важно включить шаринг по группе:
$ cd /home/git/ && mkdir repo
$ cd repo
git init  --bare --share=group  
Initialized empty shared Git repository in /home/git//repo/
Эти команды нужно выполнять из под аккаунта с gid равном группе разработчиков, иначе нужно будет поменять группу.
Дополнительно можно указать кастомные параметры в sshd_config для группы разработчиков
Match Group git
  AllowTcpForwarding no
  X11Forwarding no
  AllowAgentForwarding no
  PasswordAuthentication no
 Отключен форвардинг портов и парольная авторизация.

среда, 1 февраля 2012 г.

dhcp и получение hostname

По умолчанию имя хоста не запрашивается из dhcp, но в некоторых случаях это может быть неудобно, например, если речь идет о виртуальных машинах, с сетью в режиме bridge.
Чтобы изменить такое поведение достаточно на клиенте создать файл /etc/dhclient.conf со следующим содержанием:

request subnet-mask, broadcast-address, routers, domain-name, domain-name-servers, host-name;
require host-name;
Первая строка запрашивает маску, роутер, имя домена, неймсерверы, имя хоста. Вторая делает имя хоста обязательным и если сервер не передает его, то ответ будет проигнорирован.
Но это еще полдела, надо несколько изменить конфигурацию сервера. Правим dhcpd.conf и добавим

use-host-decl-names on;
Использовать имена определений, как имена хостов. И далее:
host vm6.bsd-root.com {
  hardware ethernet 08:00:27:1e:1e:05;
  fixed-address 10.4.0.21;
}
Тут я предпологаю, что остальные параметры (маска, неймсерверы, роутер, домен) были заданы ранее. hardware ethernet нужно посмотреть в параметрах интерфейса виртуальной машины.