Dormestmass: Админ — это состояние души

Локальный репозитарий для CentOS

Иногда довольно удобно иметь свое локальное зеркало репозитариев, это позволяет снизить количество входящего трафика при обновлении нескольких серверов, а также ускорить сам процесс обновления.

В данной заметке я описал процесс создания локального репозитария для CentOS 5.2, архитектура x86_64. Для репозитария необходим работающий http сервер, wget/rsync и утилита createrepo.

Создаем каталог для репозитария:

host# mkdir -pv /var/www/html/centos/5.2/{os,updates}/x86_64

Base repository.

Просто копируем с инсталяционного DVD-диска каталог CentOS в каталог /var/www/html/centos/5.2/os/x86_64, а файлы ключей RPM-GPG-* в /var/www/html/centos/.

Запускаем утилиту createrepo:

host# createrepo /var/www/html/centos/5.2/os/x86_64

Updates repository.

С обновлениями немного сложнее. Лица, имеющие выход по rsync, идут на CentOS European Mirrors, выбирают себе зеркало и синхронизируются с него.

host# /usr/bin/rsync -iavrt rsync://ftp.tlk-l.net/pub/mirrors/centos.org/5.2/updates/x86_64/ /var/www/html/centos/5.2/updates/x86_64/

Поскольку по rsync копируются не только rpm-ки, а и заголовки репозитария, то запуск createrepo не требуется.

Далее »

Популярность: 35%

FreeBSD: SNMP для mrtg за 5 минут

Есть роутер на FreeBSD 7.0. Задача: отрисовывать загрузку интерфейсов при помощи mrtg или cacti.

Для работы этих утилит необходима поднятая служба SNMP на сервере.

Можно конечно поставить порт net-mgmt/net-snmp, но есть путь проще и быстрее, особенно, если нам SNMP нужен только для съема статистики с интерфейсов. В базовой системе FreeBSD уже имеется SNMP-сервер, под названием bsnmpd. Остается только его включить и запустить.

Итак, приступим.

Далее »

Популярность: 3%

Little Hint: Запуск Х приложений на удаленной машине

В случае необходимости запускать графические приложения на удаленных хостах (например утилиты конфигурирования) можно воспользоваться возможностью туннелирования Х11 через ssh.

Конфигурация до безобразности проста.

На удаленной стороне настраиваем sshd:

server# grep X11 /etc/ssh/sshd_config
…skipped…
X11Forwarding yes

На локальной машине настраиваем ssh-клиент. Настройки можно прописать как глобально (в /etc/ssh/ssh_conf), так и для отдельного пользователя (~/.ssh/config):

rshramko@rawbeer:~$ grep X11 ~/.ssh/config
  ForwardX11 yes
  ForwardX11Trusted yes

Перезапускаем sshd на удаленной стороне и соединяемся с ней с ключем -X:

rshramko@rawbeer:~$ ssh -X -v rshramko@server.domain.ua
OpenSSH_5.1p1 Debian-3ubuntu1, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /home/rshramko/.ssh/config

…skipped…
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Last login: Mon Dec 29 10:02:30 2008 from rawbeer.domain.ua

Проверяем работу туннелирования, запустив любое Х-приложение, например xterm. Окно этого приложения должно открыться у вас на десктопе.

Далее »

Популярность: 3%

Привязка MAC-адресов к портам в Catalyst

Практически во всех коммутаторах cisco catalyst имеется возможность указать MAC-адреса сетевых устройств, которые должны работать через определенный порт коммутатора. Этим самым можно немного повысить безопасность своей локальной сети.

Делается это следующим образом. Для начала нужно явно перевести порт в режим access и включить на порту port-security. Далее, для того, чтобы не прописывать руками на каждом порту MAC-адреса (фу какая гадость), нужно заставить коммутатор самому их изучить командой port-security mac-address sticky.

Приблизительно так:

Далее »

Популярность: 8%

Cisco: Автосохранение конфигурации по rcp

Маленький скриптик для сохранения конфигурации маршрутизаторов по rcp. До этого пользовался сохранением через snmp, однако с 800 серии снимать не получилось. Руки давно чесались исправить ситуацию, но все времени не хватало.

Скрип запускается еженощно по cron и сохраняет полученные конфигурационные файлы в RCS. Результатом работы является письмо с diff-ами конфигов.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/bin/sh
# Copyright (c) Roman Shramko
# The script loads configuration from cisco routers and puts it in a cvs tree
 
# the list of routers
ROUTERS="routers.cfg"
# please specify a secure path for storing configs
STORAGE="/home/srn/copycfg"
LASTCONF="$STORAGE/last"
 
cd $STORAGE
 
# check config
if [ ! -f "$ROUTERS" ] ; then
    echo "Can't find $ROUTERS"
fi
 
# check the RCS dir
if [ ! -d "RCS" ] ; then
    mkdir "RCS"ip rcmd rcp-enable
ip rcmd rsh-enable
ip rcmd remote-host admin 10.100.0.66 srn enable
ip rcmd remote-host admin 10.100.102.106 srn enable
 
fi
 
while read router
do
    if [ -f "$router.conf" ] ; then
        rm -f "$router.conf"
    fi
 
    if [ -z "$router" ] ; then
        continue
    fi
 
    # check the availability of the $router
    # ping it and check the result code ping's returned
    ping -c 3 -o $router 2>&1 > /dev/null
    if [ ! $? -eq 0 ] ; then
        # ping's failed
        echo "No responce from $router"
        continue
    fi
 
    # create a tmp file
    TMPF=`mktemp conf.XXXXXX`
 
    # copy a config via the rcp protocol
    rcp "admin@$router:running-config" "$TMPF"
 
    if [ ! -s "$TMPF" ] ; then
        # $TMPF is empty
        continue
    fi
 
    # get the line with the hostname of the router
    host=`grep hostname $TMPF | head -1`
    # delete the word 'hostname'
    host=${host#hostname }
    # remove from the config the line with "ntp clock-period"
    grep -v 'ntp clock-period' $TMPF > "$host.conf"
    rm -f $TMPF
 
    # create and initialize a rcs file if it had not created
    if [ ! -f "RCS/$host.conf,v" ] ; then
        rcs -q -i -t-"base version" "$host.conf"
        ci -q -m'-' -l "$host.conf"
    fi
 
    # create a diff file
    DIFF=`rcsdiff -qu "$host.conf"`
 
    # if we have a difference
    if [ -n "$DIFF" ] ; then 
        echo "*********************************"
        echo 
        echo "The $host's ($router) config was changed:"
        echo 
        echo "$DIFF"
        echo 
        echo "*********************************"
        # commit changes
        ci -q -m'-' -l "$host.conf"
    fi
    mv "$host.conf" $LASTCONF
done < "$ROUTERS"
 
#EOF
Далее »

Популярность: 3%

Cisco: страховка от неприятностей

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

Администрируя поздно вечером в авральном режиме маршрутизатор, он положил интерфейс, по которому к ней подключался. Циска за 150 км и здание давно закрыто. Неприятная ситуация… Можно, конечно, долго рассуждать о том, что надо внимательно смотреть, думать перед вводом команд итд итп. Но мне кажется, практически с каждым случались подобные случаи.

А ведь есть простой способ подстраховатся.

Наверно все знают, что в маршрутизаторах cisco есть команда reload.

Далее »

Популярность: 6%

Один Zim заменяет кучу бумажек

Не знаю как у вас, а у меня обычно под рукой лежит листик-другой бумаги, на которой приходится записывать различную информацию, не имеющую никакой важности. То телефон чей-то, то срочное задание, ну вы поняли о чем я.

Недавно открыл для себя Zim.

Сами разработчики его называют не иначе как desktop wiki. Попробовал и присел на него прочно. Позволяет заменить кучу бумажек на рабочем столе. Прозрачное сохранение, автоматическое создание файлов, выделение текста, плагины… Заинтересовавшиеся могут почитать про остальные фичи на официальном сайте.

Вообщем, рекомендую.

P.S. К слову, утилита написана на Perl, так что её можно запустить и под Windows.
Если у кого-то получится, отпишитесь, плс.

Популярность: 3%