четверг, 7 апреля 2016 г.

FreeBSD: Обновление операционной системы в пределах одного релиза

Обновление ОС FreeBSD в пределах релиза можно разделить на несколько шагов:

Установка обновлений безопасности:
Проверка наличия обновлений и загрузка: "freebsd-update fetch".
Если системе удалось обнаружить и скачать обновления, то далее выполните: "freebsd-update install" для установки.

Обновление дерева портов:
При обновлении дерева портов впервые со дня установки FreeBSD: "portsnap fetch extract", если же это - повторная процедура: "portsnap fetch update".

Обновление установленных в системе портов:
Для данной цели удобнее всего использовать утилиту "portupgrade", которую можно найти по пути "/usr/ports/ports-mgmt/portupgrade":
cd /usr/ports/ports-mgmt/portupgrade
make install clean
rehash
Затем выполните команды:
pkg update -f
pkg audit -F
portupgrade -vafrR
pkg check -Bd

При необходимости отката внесённых изменений можно воспользоваться: "freebsd-update rollback".

среда, 6 апреля 2016 г.

FreeBSD: Установка VMware Tools

Если ваша FreeBSD является гостевой ОС на VMware vSphere, для удобства работы с ней и оптимизации быстродействия необходимо установить компонент VMware Tools. Делается это следующим образом:

1. В vSphere Client кликните правой кнопкой мыши на виртуальной машине с ОС FreeBSD и выберите: "Guest-> Install/Upgrade VMware Tools".


2. Далее переходим в каталог "/dev" и выполняем "ls". Среди списка определяем CD-ROM, скорее всего это будет "cd0".
3. Монтируем привод в директорию "/mnt": "mount -t cd9660 -o -e /dev/cd0 /mnt".
4. Проверим, что на диске есть файл "vmware-freebsd-tools.tar.gz": "ls /mnt".
5. Создадим папку для установочных файлов: "mkdir /usr/home/vmtools".
6. Распакуем туда архив: "tar xzf /mnt/vmware-freebsd-tools.tar.gz -C /usr/home/vmtools/".
7. Установочный диск больше не нужен, поэтому отмонтируем его: "umount /mnt".
8. Переходим в каталог с инсталлятором VMware Tools: "cd /usr/home/vmtools/vmware-tools-distrib/".
9. Затем начинаем установку командой: "perl ./vmware-install.real.pl". Запустится мастер и задаст ряд вопросов, на которые можно отвечать по умолчанию, просто нажимая "Enter".
При отсутствии в системе интерпретатора языка Perl ("perl: Command not found.") доустанавливаем его:
cd /usr/ports/lang/perl5.20 (или другую версию) 
make install clean
rehash
perl -v (проверяем корректность инсталляции)
10. После установки запускаем конфигуратор: "perl /usr/local/bin/vmware-config-tools.pl".
Если видим сообщение "Please re-run this program after installing the compat6x-amd64 package.", инсталлируем соответствующий пакет:
cd /usr/ports/misc/compat6x/
make install clean
rehash
Затем повторно выполняем: "perl /usr/local/bin/vmware-config-tools.pl" и проходим мастер конфигурации.
11. По завершению работы мастера удаляем директорию с распакованным дистрибутивом: "rm -r /usr/home/vmtools/" и отключаем диск с VMware Tools в vSphere Client: "Guest-> End VMware Tools Install".


На этом установка VMware Tools завершена.

Аналогом данной утилиты является Open VM Tools - разработка с открытым исходным кодом. Для установки перейдите в порты:
cd /usr/ports/emulators/open-vm-tools
make install clean
rehash
Перегрузитесь и установка будет закончена.

Установка с помощью пакетного инсталлятора:
pkg install open-vm-tools
Перезагрузка.

понедельник, 4 апреля 2016 г.

FreeBSD: Натройка сервиса NTP

Для того, чтобы настроить службу времени "ntpd" в ОС FreeBSD, проделайте следующие шаги:

1. Для автоматического запуска сервиса NTP при загрузке ОС добавьте строку ntpd_enable="YES" в файл "/etc/rc.conf". Если к этому ещё добавить ntpd_sync_on_start="YES", то при старте ОС будет дополнительно происходить грубая синхронизация с источником времени.

2. Отредактируйте файл "/etc/ntp.conf". Найдите следующие строки:

server 0.freebsd.pool.ntp.org iburst
server 1.freebsd.pool.ntp.org iburst
server 2.freebsd.pool.ntp.org iburst


Измените их, указав вместо DNS-имён источников по умолчанию свои сервера. Лишние можно удалить или закомментировать.

3. Далее найдите строки:

restrict 127.0.0.1
restrict -6 ::1
restrict 127.127.1.0


Они говорят о том, что наш сервис NTP будет предоставлять точное время только для самого себя("localhost"). Если же вам необходимо, чтобы ОС FreeBSD являлась NTP-сервером для других хостов в сети, пропишите соответствующее разрешения (например, для сети 192.168.0.0/24 - "restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap").

4. По желанию можно добавить логирование работы службы. Для этого вставьте следующую строку: "logfile /var/log/ntp.log". Чтобы организовать ротацию лога, добавьте в файл "/etc/newsyslog.conf" строку "/var/log/ntp.log 644 3 100 * J" (архивировать с помощью bzip2 лог при достижении размера в 100 Кбайт, хранить максимум 3 архива).

5. Выполните до запуска сервиса NTP команду "ntpdate -b your_ntp_source_dns_name" для того, чтобы синхронизировать часы с источником (просто запросить информацию об источнике без синхронизации времени можно командой "ntpdate -q your_ntp_source_dns_name"). Далее стартуем демон: "service ntpd start".
На этом настройку сервиса NTP можно считать законченной.

Чтобы проверить корректность работы, воспользуйтесь командой: "ntpq -p".


Строки полученной в результате выполнения команды таблицы соответствует публичным источникам, которые определены в файле "/etc/ntp.conf", столбцы содержат следующие значения:

Маркер:
'*' - сервер, с которым в настоящий момент выполняется синхронизация,
'#' - сервер отобран для синхронизации, но дистанция до него превышает максимально возможную,
'ο' - сервер отобран для синхронизации и использует сигнал pulse-per-second,
'+' - сервер добавлен в список серверов, отобранных для синхронизации,
'x' - сервер использует некорректный алгоритм,
'.' - сервер выбран из конца списка серверов, отобранных для синхронизации,
'-' - сервер отвергнут группирующим алгоритмом,
пробел - сервер имеет слишком высокий stratum и/или не может быть проверен;

remote - FQDN или IP-адрес сервера;

refid - IP-адрес сервера, с которым в настоящий момент выполняется синхронизация сервера из столбца remote;

st - stratum сервера;

t - режим работы сервера: 'u' - unicast, 'm' - multicast, 'b' - broadcast, '-' - manycast;

when - время, прошедшее с момента последнего ответа сервера в секундах или '-', если сервер еще ни разу не ответил;

poll - интервал опроса сервера в секундах;

reach - состояние восьми последних попыток запроса времени у сервера в восьмеричном представлении;

delay - задержка ответа сервера в секундах;

offset -  различие локального времени и времени на сервере (самый интересный параметр);

jitter — дисперсия, дрожание фазы (чем меньше, тем точнее синхронизация).

Также при диагностике проблем с серверами NTP может помочь команда: "ntpdate -vd your_ntp_source_dns_name". Пример вывода ниже: