antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 1 Апрель , 2011

Конфиг штука важная, поскольку хранит результаты непосильного труда админов. Сегодня мы посмотрим, что с ним можно сделать и как по максимуму обеспечить удобство работы с ним и его целостность.

Немного теории

Для начала посмотрим, как именно вьятта работает со своими настройками. Каждый конфиг проходит в своей жизни три стадии:

  1. Рабочая копия (working);
  2. Действующий конфиг (active);
  3. Сохраненный конфиг.

Рабочая копия это то, что получается когда пользователь внес изменения, но еще не применил их. На каждую сессию (на вход пользователя или работу скрипта) создается своя рабочая копия. У нее два варианта дальнейшей жизни: быть объединенной с действующей (командой commit) или быть отброшенной.

Действующий конфиг это, очевидно, тот, который система в настоящий момент использует.

Сохраненный конфиг это простой текстовый файл. По умолчанию они хранятся в каталоге /opt/vyatta/etc/config/.

Для тех, кому интересно, как рабочая и действующая копии конфига устроены внутри. Это деревья каталогов в /opt/vyatta/config/active (для действующего) и /opt/vyatta/config/tmp/* (для рабочих копий). Узлу, например, service telnet port там соответствует каталог service/telnet/port. Значение для узла хранится в файле node.val

Трогать это все руками не рекомендуется, если только не для изучения внутреннего устройства системы.

Делаем копии конфига

Получить копию дейстующего конфига на стандартный вывод можно командой show|no-more. В этом случае он будет показан целиком, без разделения на экраны, как это происходит по умолчанию.

Сохраненные конфиги это простые текстовые файлы. Тот, который загружается по умолчанию, называется /opt/vyatta/etc/config/config.boot. Командой save с аргументом (вроде save config-2011.04.01 можно сохранить его под другим именем.

Загрузить ранее сохраненный конфиг можно командой load <FILE NAME>. Также можно загружать его по сети, указав URL (например, load ftp://example.com/config.txt).

Так же можно и сохранять конфиг на удаленный сервер, указав целевой URL. Например, save tftp://192.0.2.1/config.boot

Кроме этого, в системе есть файл, который хранит настройки по умолчанию (которые использует свежеустановленная система), называется он /opt/vyatta/etc/config.boot.default. Соответственно, загрузив его, можно вернуться к начальным настройкам.

Копируем кусок конфига с другой системы

Тут есть два варианта. Первый по идеологии напоминает Cisco и состоит в получении команд текущего конфига и вставке их в консоль целевой системы. Просмотреть команды можно с помощью команды операционного режима show configuration commands|match <KEYWORD>, где KEYWORD — слово для выборки, например, «service ssh».

# run show configuration commands |match "service ssh"
set service ssh port '22'
set service ssh protocol-version 'v2'

Второй состоит в слиянии двух файлов конфигурации командой merge. Для этого нужно подготовить файл с нужным куском настроек, перенести его на целевую систему (или положить в доступное по сети место) и ввести команду merge /path/to/file. Вам выдадут предупреждение об отсутствиии строки версии (если вы не скопировали ее из оригинального конфига, это самая последняя строка), но его можно игнорировать.

Автоматизируем резервное копирование конфига

Начиная с версии 6.2 появилась возможность автоматически делать резервную копию конфига после каждого commit’а. Делается это следующим образом: set system config-management commit-archive location <URL>. Например:

# show system config-management 
 commit-archive {
     location ftp://10.91.17.5/pub/configs
 }

Все, теперь каждый раз, когда вы применяете свои изменения, ваш конфиг будет копироваться в указанное место под именем вида config.boot-yourhostname.yyyymmdd_hhmmss.

Поддерживается сохранение по TFTP, FTP и SCP.

Ищем виноватых

Начиная опять же с 6.2 каждый commit оставляет свой след в истории, и даже сохраняются тексты разных ревизий конфига. Настроить количество ревизий для хранения можно командой: set system config-management commit-revisions <NUMBER>.

Командой операционного режима show system commit можно увидеть имеющиеся ревизии. Примерно так:

# run show system commit 
0   2011-04-01 00:20:36 by vyatta via cli
1   2011-04-01 00:08:30 by user1 via cli
2   2011-04-01 00:03:16 by user2 via cli
3   2011-04-01 00:01:52 by user3 via cli

Можно посмотреть либо конфигурацию целиком, как она выглядела на момент ревизии с некоторым номером по команде show system commit file <NUMBER>, либо ее отличия от текущей командой show system commit diff <NUMBER>. Например:

# run show system commit diff 0
@@ -110,7 +110,7 @@
     console {
     }
     domain-name baturin.org
-    host-name dut1
+    host-name r1
     login {
         user vyatta {
             authentication {
@@ -121,8 +121,6 @@
     }
     name-server 10.91.17.10
     ntp {
-        server 0.vyatta.pool.ntp.org {
-        }
         server 1.vyatta.pool.ntp.org {
         }
         server 2.vyatta.pool.ntp.org {

Появившиеся в ревизии строки отмечены символом «+», убранные в ней, соответственно, символом «-».

Заключение

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

 

Опубликовано: Vyatta

 

» Оставить комментарий

Вы должны войти чтобы прокомментировать.