вторник, 3 августа 2010 г.

Настройка клиента amanda для бекапа через ssh

В продолжение цикла статей про Amanda, привожу маленькое руководство для настройки клиента Amanda, который будет бекапиться сервером с помощью ssh и авторизоваться по ssh-ключам.


Подобно тому, как я делал это для сервера amanda, я беру rpm-пакет от Zmanda.
# yum install xinetd
# rpm -Uivh amanda-backup_client-3.1.1-1.rhel5.i386.rpm
Так как нам нужна только работа через ssh, выключаем сервис amandabackup в xinetd:
# chkconfig amandaclient off
А если и xinetd вам не нужен (а если он даже не стоял, значит не нужен :)), то и его.
# chkconfig xinetd off

Чтобы клиента можно было просто бекапить, нужно совершить немного действий на сервере:
  1. Определить какой-то dumptype (если подходящего еще нет).
  2. Прописать клиента и что на нем бекапить в /etc/amanda/configname/disklist:
    amandaclient.example.com        /etc        comp-root-tar
  3. Убедиться, что хостнейм клиента у пользователя аманды в known_hosts.

На клиенте же достаточно только добавить ключ сервера в authorized_keys (можно дополнительно повысить безопасность за счет опций). Это все должно быть указано в одну строку:
no-agent-forwarding,no-port-forwarding,no-X11-forwarding,command="/usr/libexec/amanda/amandad -auth=ssh amdump" ssh-rsa AAAAB3Nz...NQ== amandabackup@amanda-server.example.com

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

После этого, запуском amcheck конфигурация выясняем, все ли ок. Если да - все в порядке и будет работать. Можно переходить к настройке клиента для восстановления файлов из бекапа.

Для этого вам все-таки придется создать конфигурационный файл клиента:
/etc/amanda/amanda-client.conf:
conf "daily"
index_server "amandaserver"
tape_server  "amandaserver"
tapedev      "file:///srv/dumps/daily/tapes"
auth "ssh"
# Путь к ключу SSH, который уже сгенерирован при установке пакета, либо необходимо сгенерировать
# (ssh-keygen -f /var/lib/amanda/.ssh/id_rsa_amrecover)
ssh_keys "/var/lib/amanda/.ssh/id_rsa_amrecover"

amrecover - команда для работы с сервером - работает только от пользователя root.
Так что вам стоит добавить ключ сервера amanda именно в его .ssh/known_hosts:
# ssh amandabackup@amandaserver.example.com
и подтвердить добавление ключа.

Кроме того, пубичный кусок ключа ssh от клиента надо добавить в authorized_keys на сервере, пользователю amandabackup (ну или тому, от которого amanda запускается). Тут я применяю ту же историю с опциями (это все должно быть на одной строке):
no-agent-forwarding,no-port-forwarding,no-X11-forwarding,command="/usr/libexec/amanda/amandad -auth=ssh amindexd amidxtaped" ssh-rsa AAAAB3N...FQ== root@client

Вуаля. Теперь на клиенте можно запустить amrecover и поиграться:
# amrecover
AMRECOVER Version 3.1.1. Contacting server on amandaserver ...
220 amanda-server AMANDA index server (3.1.1) ready.
Setting restore date to today (2010-08-03)
200 Working date set to 2010-08-03.
200 Config set to daily.
200 Dump host set to amandaclient.example.com.
Use the setdisk command to choose dump disk to recover
amrecover> listhost
200- List hosts for config daily
201- amanda-server
201- amandaclient.example.com
200 List hosts for config daily
amrecover> listdisk
200- List of disk for host amandaclient.example.com
201- /etc
200 List of disk for host amandaclient.example.com
amrecover> setdisk /etc
200 Disk set to /etc.
amrecover> history
200- Dump history for config "daily" host "amandaclient.example.com" disk /etc
201- 2010-08-03-20-01-07 0 daily-01:2
200 Dump history for config "daily" host "amandaclient.example.com" disk /etc
amrecover> quit
200 Good bye.

Комментариев нет:

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