Установка и настройка KVM на Ubuntu Server 20.04 LTS (Focal Fossa)

Этап 1 - Загрузка и установка пакетов

Произведите установку требуемых пакетов с помощью apt:

sudo apt -y install qemu-kvm libvirt-daemon bridge-utils virtinst libvirt-daemon-system

Дополнительно установите другие полезные инструменты управления виртуальными машинами:

sudo apt -y install virt-top libguestfs-tools libosinfo-bin qemu-system virt-manager

Убедитесь, что модуль vhost_net загружен и включен:

sudo modprobe vhost_net

lsmod | grep vhost

Настройте автоматический запуск сервиса:

sudo systemctl enable libvirtd

Запустите сервис libvirtd:

sudo systemctl start libvirtd

Чтобы управлять вашей виртуальной машиной (-ами) без прав root, ваш пользователь должен принадлежать к двум группам пользователей libvirt и kvm. Выполните следующие команды, чтобы добавить вашего пользователя в соответствующие группы (заменив user именем вашего пользователя):

$ sudo adduser user libvirt

$ sudo adduser user kvm

Этап 2 - Настройка сети и KVM-моста

Определите все доступные сетевые интерфейсы используя команду ip или lshw:

sudo ip a

sudo lshw -class network

Отредактируйте файл конфигурации 00-installer-config.yaml который находится в директории /etc/netplan/.

sudo nano /etc/netplan/00-installer-config.yaml

В файле конфигурации прописаны настройки локальной сети с динамическим ip-адресом (DHCP) и логическим именем вашего локального интерфейса, например eno1:

network:
  version: 2
  renderer: networkd

  ethernets:
    eno1:
      dhcp4: false
      dhcp6: false

  bridges:
    br0:
      interfaces: [eno1]
      dhcp4: true
      dhcp6: false
      mtu: 1500
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: true
      dhcp6: false

Для локальной сети в которой используются статические ip-адреса подойдет следующая конфигурация:

network:
  version: 2
  renderer: networkd

  ethernets:
    eno1:
      dhcp4: false 
      dhcp6: false 

  bridges:
    br0:
      interfaces: [eno1]
      addresses: [192.168.1.239/24]
      gateway4: 192.168.2.1
      mtu: 1500
      nameservers:
        addresses: [8.8.8.8]
      parameters:
        stp: true
        forward-delay: 4
      dhcp4: no
      dhcp6: no

Используйте netplan для генерации необходимой конфигурации:

sudo netplan generate

Примените конфигурации netplan:

sudo netplan apply

 

Примеры синхронизации Rsync

Rsync - это программное обеспечение с открытым исходным кодом, которое можно использовать для синхронизации файлов и папок с локального компьютера на удаленный и наоборот. Примечательная особенность Rsync - возможность передавать зашифрованные файлы с помощью SSH и SSL. Кроме того, здесь передача файлов выполняется в один поток, в отличие от других подобных программ, создающий отдельный поток для передачи каждого файла. Это увеличивает скорость и убирает дополнительные задержки, которые становятся проблемой при передаче большого количества маленьких файлов.

Возможно использование rsync для синхронизации файлов, каталогов, при этом может применяться сжатие и шифрование. Программа впервые была применена в июне 1996 года, она разработана Эндрю Тридгелом и Полом Маккерасом. Rsync синхронизация выполняется по протоколу RSYNC, который специально разработан не просто для передачи файлов между двумя компьютерами, а для их синхронизации. Если точнее, то передается не файл полностью, а только то, что было изменено.

Как вы уже поняли, в этой статье мы рассмотрим rsync примеры синхронизации, настройку rsync, а также ее основные возможности и опции.

Особенности Rsync

Давайте сначала рассмотрим примечательные особенности Rsync:

  • Возможность поддерживать синхронизацию целых деревьев каталогов;
  • Можно сохранять символические ссылки, жесткие ссылки,  владельцев и права файла, метаданные и время создания;
  • Не требует особых привилегий;
  • Передача файлов одним потоком;
  • Поддержка RSH, SSH в качестве транспорта;
  • Поддержка анонимного Rsync.

Синтаксис Rsync

Мы не будем подробно останавливаться на установке этой утилиты в системе. Она очень популярна, поэтому вы можете установить ее с помощью своего пакетного менеджера из официальных репозиториев. В Ubuntu команда установки будет выглядеть вот так:

sudo apt-get install rsync

А теперь, уже по традиции подобных статей, рассмотрим синтаксис команды rsync:

$ rsync опции источник приемник

В качестве источника и приемника может выступать удаленная или локальная директория. Например, ssh, rsync, samba сервер или локальная директория. Опции задают дополнительные параметры rsync.

Опции Rsync

Теперь давайте кратко рассмотрим параметры rsync. Здесь перечислены не все опции. Для более подробной информации смотрите man rsync:

  • -v - Выводить подробную информацию о процессе копирования;
  • -q - Минимум информации;
  • -c - Проверка контрольных сумм для файлов;
  • -a - Режим архивирования, когда сохраняются все атрибуты оригинальных файлов;
  • -R - Относительные пути;
  • -b - Создание резервной копии;
  • -u - Не перезаписывать более новые файлы;
  • -l - Копировать символьные ссылки;
  • -L - Копировать содержимое ссылок;
  • -H - Копировать жесткие ссылки;
  • -p - Сохранять права для файлов;
  • -g - Сохранять группу;
  • -t - Сохранять время модификации;
  • -x - Работать только в этой файловой системе;
  • -e - Использовать другой транспорт, например, ssh;
  • -z - Сжимать файлы перед передачей;
  • --delete - Удалять файлы которых нет в источнике;
  • --exclude - Исключить файлы по шаблону;
  • --recursive - Перебирать директории рекурсивно;
  • --no-recursive - Отключить рекурсию;
  • --progress - Выводить прогресс передачи файла;
  • --stat - Показать статистику передачи;
  • --version - Версия утилиты.

Настройка сервера Rsync

Как вы понимаете, нельзя просто так взять и закинуть на первую попавшуюся машину файлы без установки на нее специального программного обеспечения. На удаленной машине должен быть установлен и настроен RSYNC, SSH, Samba или FTP сервер, с помощью которого Rsync сможет авторизоваться на машине и передавать туда файлы.

Рассмотрим минимальную настройку сервера rsync, для того чтобы могло быть выполнено копирование файлов rsync. Он позволит нам не только синхронизировать файлы на машину, но и получать их от туда.

Сначала создайте конфигурационный файл со следующим содержимым:

sudo vi /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
[share]
path = /tmp/share/
hosts allow = 192.168.56.1
hosts deny = *
list = true
uid = root
gid = root
read only = false

Snimok ekrana ot 2019 02 25 11 05 10 1024x576

Здесь мы задаем путь к нашей папке для синхронизации, разрешаем доступ к серверу только с ip адреса (192.168.56.1) и запрещаем все остальные подключения. Параметры uid и gid указывают пользователя и группу, от которых будет запущен демон. Лучше не использовать root, а указать пользователя nobody и выдать ему права на ту папку, в которую будет выполняться синхронизация каталогов rsync.

Настройка rsync завершена, остается сохранить файл, запустить сервер rsync и добавить его в автозагрузку:

sudo systemctl start rsync

sudo systemctl enable rsync

Snimok ekrana ot 2019 02 25 11 06 33 1024x576

Сервер будет предоставлять доступ к файлам без запроса пароля.

Примеры синхронизации Rsync

Дальше давайте рассмотрим использование rsync, примеры синхронизации.

1. Копирование и синхронизация файлов на локальном компьютере

Rsync позволяет синхронизировать файлы и папки в пределах одной машины. Давайте сначала рассмотрим использование rsync для синхронизации файла на локальном компьютере:

rsync -zvh file /tmp/backups/

Snimok ekrana ot 2019 02 25 11 08 37 1024x576

Указав опцию --progress вы можете видеть сколько процентов уже скопировано, а сколько еще осталось:

rsync -zvh --progress file /tmp/backups/

Snimok ekrana ot 2019 02 25 11 08 50 1024x576

2. Синхронизация папок на локальной машине

Синхронизация папок rsync выполняется так же просто, как и файлов:

rsync -zvh /home/user/documents /tmp/backups/

Если вы хотите, чтобы все атрибуты файлов, такие, как дата изменения и создания сохранялись, необходимо использовать опцию -a:

 

rsync -azvh /home/user/documents /tmp/backups/

Snimok ekrana ot 2019 02 25 11 12 39 1024x576

3. Синхронизация с удаленным сервером

Ненамного сложнее синхронизировать файлы с удаленным сервером. Скопируем локальную папку documents, на удаленный сервер:

rsync -avz /home/sergiy/tmp/ Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/home/

По умолчанию rsync попытается использовать транспорт ssh. Если вы хотите использовать ранее созданный сервер rsync, нужно указать это явно:

rsync -avz /home/sergiy/tmp/ rsync://192.168.56.102:/share

Точно также можно синхронизировать файлы с rsync из удаленного сервера:

rsync -avz Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/home/ /home/sergiy/tmp/

Адрес удаленного сервера записывается в таком формате:

имя_пользователя@адрес_машины/папка/на/удаленной_машине

Синхронизация папок rsync будет выполняться на стандартном порту.

4. Синхронизация файлов по SSH

Чтобы задать протокол подключения используется опция -e. При использовании SSH все передаваемые данные шифруются и передаются по защищенному каналу, таким образом, чтобы никто не мог их перехватить. Для использования SSH вам нужно знать пароль пользователя в системе.

Синхронизация файлов rsync с удаленного сервера по ssh будет выглядеть вот так:

rsync -avzhe ssh Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/root/install.log /tmp/

Если вы используете другой порт для ssh, то здесь его можно указать:

rsync -avzhe "ssh -p 22" Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/root/install.log /tmp/

Snimok ekrana ot 2019 02 25 12 55 19 1024x576

А теперь передадим данные на тот же сервер:

rsync -avzhe ssh backup.tar Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/backups/

5. Просмотр прогресса при синхронизации

Для просмотра прогресса копирования файла с одной машины на другую используется опция progress:

rsync -avzhe ssh --progress /home/user/documents Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/root/documents

6. Синхронизация не всех файлов в rsync

Опции include и exclude позволяют указать какие файлы нужно синхронизировать, а какие исключить. Опции работают не только с файлами но и с директориями.

Например, скопируем все файлы, начинающиеся на букву R:

rsync -avze ssh --include 'R*' --exclude '*' Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/root/documents/ /root/documents

7. Удаление при синхронизации

Во время синхронизации можно удалять файлы, которых нет на машине откуда идет rsync синхронизация, для этого используется опция --delete.

Например:

rsync -avz --delete Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/documents/ /tmp/documents/

Если перед выполнением этой команды создать в папке файл которого нет на удаленном сервере, то он будет удален.

8. Максимальный размер файлов

Вы можете указать максимальный размер файлов, которые нужно синхронизировать. Для этого используется опция --max-size. Например, будем синхронизировать только файлы меньше 200 килобайт:

rsync -avzhe ssh --max-size='200k' /user/documents/ Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/root/documents

9. Удаление исходных файлов

Есть возможность удалять исходные файлы после завершения синхронизации с удаленным сервером:

rsync --remove-source-files -zvh backup.tar /tmp/backups/

Таким образом, файл backup.tar будет удален после завершения копирования в папку /tmp/backups.

10. Режим симуляции rsync

Если вы новичок, и еще не использовали rsync, то возможно захотите посмотреть как отработает команда без применения реальных действий в файловой системе. Для этого есть опция dry-run. Команда только выведет все выполняемые действия в терминал, без выполнения реальных изменений:

rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/

11. Ограничить скорость передачи

Вы можете ограничить использование пропускной способности сети с помощью опции --bwlimit:

 rsync --bwlimit=100 -avzhe ssh /user/home/documents/ Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:/root/documents/

Как я уже писал выше, rsync синхронизирует только части файла, если вы хотите синхронизировать файл целиком используйте опцию -W:

rsync -zvhW backup.tar /tmp/backups/backup.tar
backup.tar

12. Автоматическая синхронизация папок rsync

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

Создаем ключ:

ssh-keygen -t rsa

Загружаем ключ на сервер к с которым собираемся синхронизироваться:

ssh-copy-id -i /home/sk/.ssh/id_rsa.pub Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

Теперь можем переходить к настройке расписания cron. Будем запускать синхронизацию каждый день:

crontab -e

00 05 * * * rsync -azvre ssh /home/user/Downloads/ 192.168.56.102:/share

rsync синхронизация каталогов будет выполняться каждый день в пять утра.

Бэкап с помощью Open Source решения — Bareos

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

Bareos – была выбрана как система резервного копирования по таким причинам:

  • является Open Source;
  • активно развивается;
  • имеет множество полезных функций;
  • может расширять свой функционал благодаря плагинам.

 

Описание задачи


Допустим у нас есть 3 машины. Серверы: Bareos, BitrixVm, Windows Server 2012 R2. Для примера все это будет находиться в пределах одной сети, но сам Bareos, конечно же, позволяет выполнять резервное копирование если машина находиться за ее пределами.

Bareos — 172.16.10.10
BitrixVM — 172.16.10.11
Windows Server — 172.16.10.12



Добавим репозиторий:

# wget http://download.bareos.org/bareos/release/latest/CentOS_7/bareos.repo -O /etc/yum.repos.d/bareos.repo



Для сервера с Bareos будем использовать CentOS 7. Происходит обычная установка:

# yum install -y bareos-client bareos-database-tools bareos-filedaemon bareos-database-postgresql bareos bareos-bconsole bareos-database-common bareos-storage bareos-director bareos-common


В качестве базы данных будет использоваться PostgreSQL. Установка происходит также просто:

# yum install -y postgresql-server postgresql-contrib


При установке Bareos в /etc/bareos имеем следующий список файлов и папок, за исключением директории «ssl», к ней перейдем чуть позже:

/bareos-dir.d
/bareos-sd.d
/ssl
bareos-dir.conf
bareos-fd.conf
bareos-sd.conf
bconsole.conf
.rndpwd


После установки в директории /usr/lib/bareos/scripts/ появятся подготовленные скрипты для работы с Bareos. Благодаря им выполним предварительную настройку базы данных (создадим базу, таблицы, и права):

su postgres -c /usr/lib/bareos/scripts/create_bareos_database
su postgres -c /usr/lib/bareos/scripts/make_bareos_tables
su postgres -c /usr/lib/bareos/scripts/grant_bareos_privileges


Важным моментом является то, что имена наших машин должны резолвиться, если нет, то добавим соответствующие строки в /etc/hosts

172.16.10.10	bareos-server
172.16.10.10	bareos-fd
172.16.10.11	bitrixvm
172.16.10.12	win-fd


bareos-server — сам сервер, bareos-fd — также будем делать бэкап самого сервера, т.е. в то же время, будет выступать как клиент, далее в конфигурации это будет видно, bitrixvm — название клиента говорит само за себя, win-fd — клиент с Windows Server 2012 R2.

Настройку серверной части для BareOS, а именно директора, необходимо выполнить в файле bareos-dir.conf. Директор отвечает за все выполняемые операции.

Из основных директив:

Director — описание самого директора,
Storage — устройство на которое пишем бэкапы,
Catalog — содержит информацию по выполненным Job, сохраненным файлам, клиентам, статусам,
Messages — какие сообщения будут собраны и как их доставлять,
Console — настройка консоли для управления директором,
Client — описание клиента, с которого будут сниматься резервные копии,
Pool — позволяет управлять т.н. Volume куда будут писаться данные для разных типов бэкапа (Full, Incremental, Differential), ограничить сроки хранения Volume, размеры,
FileSet — что бэкапим и дополнительные атрибуты,
Schedule — расписание,
Job — описание задачи по бэкапу.


Из официальной документации схема взаимодействия между службами:

3b07e9a6ace0420dae8b29fab2a24329

Содержимое файла bareos-dir.conf:
Director {
#Обязательный параметр имя директора
Name = bareos-server
# Обязательный параметр для файлов запросов
QueryFile = "/usr/lib/bareos/scripts/query.sql"
# Количество одновременно выполняемых Job
Maximum Concurrent Jobs = 10
# Пароль (зачастую используется 20-40 символов, для теста ограничимся 9 знаками)
Password = «zcx@#$BGj»
# Указание какие оповещения использовать (директива Message описывается далее)
Messages = Standart
# TLS шифрование. Будет описано далее.
# TLS включено
TLS Enable = yes
TLS Require = yes

TLS Verify Peer = yes
#Разрешенные CN
TLS Allowed CN = «bareos-server»
TLS Allowed CN = «bitrixvm»
TLS Allowed CN = «win-fd»
# Расположение CA сертификата
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
# Расположение сертификат
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
# Расположение ключа к сертификату
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

Storage {
Name = bareos-server-sd
# Можно указать как по IP так и по имени, для корректной работы TLS важно указывать по #имени
Address = bareos-server
Password = «zcx@#$BGj»
# Задается имя для устройства где будут храненится данные. Параметры устройства установлены в файле bareos-sd.conf
Device = bareos-sd
Media Type = File
Port = 9103
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Catalog {
#Задаются все параметры для подключения к БД
Name = bareos-server
dbdriver = «postgresql»
dbname = «bareos»
dbuser = «bareos»
dbpassword = ""
}

Messages {
# Описываются типы сообщений, которые должны быть отправлены и записаны в лог
Name = Standart
mail = root@localhost = all, !skipped, !audit
console = all, !skipped, !saved, !audit
append = "/var/log/bareos/bareos.log" = all, !skipped, !audit
append = "/var/log/bareos/bareos-audit.log" = audit
}

Client {
# Имя клиента для бэкапа
Name = bareos-fd
# Название каталога
Catalog = bareos-server
Enabled = yes
# Адрес задаем именем
Address = bareos-server
Password = «zcx@#$BGj»
Port = 9102
# Параметры TLS будут описаны позже
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Pool {
# Имя пула для полного бэкапа
Name = bareos-pool -Full
# Автоматически дописывает к файлу с бэкапом метку вида «bareos-client-Full-» + номер #Volume
#Например итоговое название Volume после очередного бэкапа будет иметь вид bareos-client-# Full-0009
Label Format = «bareos-client-Full-»
# Тип пула. По официальной документации BareOS на данный момент осуществляется #только тип Backup
Pool Type = Backup
# Volume для полного бэкапа храниться 3 месяца
Volume Retention = 3 months
# после чего каталог очищается от устаревших данных
AutoPrune = yes
# Volume перезаписывается
Recycle = yes
}

Pool {
# Имя пула для инкрементального бэкапа
Name = bareos-pool-Incremental
Pool Type = Backup
Recycle = yes
Auto Prune = yes
Volume Retention = 10 days
Label Format = «bareos-client-Incremental-»
}

Pool {
# Имя пула для дифференциального бэкапа
Name = bareos-pool-Differential
Pool Type = Backup
Recycle = yes
Auto Prune = yes
Volume Retention = 11 days
Label Format = «bareos-client-Differential-»
}

FileSet {
# Задаем имя для набора файлов
Name = bareos-fileset
# В Include указажем какие файлы будут сохраняться. В данном случае папка /etc
Include {
File = "/etc"
}
}

Schedule {
#Имя расписания
Name = «MonthlyCycle»
# 1 раз в неделю выполняется полный бэкап
Run = Level = Full mon at 2:00
# В течении дня 5 инкрементальных бэкапов каждый час
Run = Level= Incremental hourly at 13:00
Run = Level = Incremental hourly at 14:00
Run = Level = Incremental hourly at 15:00
Run = Level = Incremental hourly at 16:00
Run = Level = Incremental hourly at 17:00
}

Job {
# Название для задачи
Name = Job-Full
# Его тип. Может быть Backup или Restore
Type = Backup
# Уровень бэкапа. Full, Differential или Incremental
Level = Incremental
# Для какого клиента выполняется Job
Client = bareos-fd
# Набор файлов
FileSet = bareos-fileset
# Расписание
Schedule = «MonthlyCycle»
# Название используемого Storage
Storage = bareos-server-sd
# Оповещения
Messages = Standart
# Используемый пул
Pool = bareos-pool -Full
Full Backup Pool = bareos-pool -Full
Differential Backup Pool = bareos-pool-Differential
Incremental Backup Pool = bareos-pool-Incremental
}

Job {
Name = Job-Full-restore
Type = Restore
Client = bareos-fd
FileSet = «bareos-fileset»
Storage = bareos-server-sd
Pool = bareos-pool -Full
Messages = Standart
# Указание пути куда при восстановлении попадут все файлы
Where = /tmp
}


# Добавляем в качестве отдельных файлов конфигурации двух остальных клиентов.

@/etc/bareos/bareos-dir.d/win.conf
@/etc/bareos/bareos-dir.d/bitrixvm.conf


Важно чтобы было соответствие между конфигурациями:

0cbc9d2c54974088996df70580f2a26a

 

Далее настроим Storage в bareos-sd.conf:
Storage {
# Имя
Name = bareos-server-sd
# Максимальное количество одновременно выполняющихся Job
Maximum Concurrent Jobs = 20
# Адрес, указываем по имени
SDAddress = bareos-server
SDPort = 9103
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = no
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Director {
# Описываем параметры директора, который может подключаться к Storage
Name = bareos-server
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

Device {
# Описываем само устройство для хранения
Name = bareos-sd
Media Type = File
# Путь к устройству
Archive Device = /opt/backup
# Разрешить автоматически размечать тома
LabelMedia = yes
# Для одновременного доступа при одновременном выполнении нескольких задач
Random Access = yes
# Автоматически монтировать устройство
AutomaticMount = yes
RemovableMedia = no
AlwaysOpen = no
}

Messages {
Name = Standard
director = bareos-server = all
}

Настройка клиента bareos-fd.conf:

Director {
# Параметры для подключения директора
Name = bareos-server
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

FileDaemon {
# FileDaemon синоним Client
Name = bareos-fd
Maximum Concurrent Jobs = 20
# Отключается совместимость с Bacula. В таком случае включаются все возможности #bareos, которые включены по умолчанию.
Compatible = no
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem

}

Messages {
Name = Standard
director = bareos-server = all
}


После всех основных настроек нужно перезапустить службы bareos:

systemctl restart bareos-dir
systemctl restart bareos-sd
systemctl restart bareos-fd


В случае возникновения ошибок состояние смотрим командой:

systemctl status bareos-dir.service -l


Перейдем к установке плагина bareos клиента для Windows. Можно скачать тут.

Установка плагина проходит также просто. Из списка предлагаемых компонентов выбираем только два указанных на скриншоте: далее задаем имя для клиента, указываем параметры уже имеющегося директора:

6340af49af9e42ccb0cbd9eecacb1106

 

b2b5375f3f1948f2af033ab43d8dbfb7


Прописываем такие данные:

Client Name — win-fd
Director Name — bareos-server
Password — zcx@#$BGj<br< a=""> /> Networks Address — bareos-server</br<>


Введенные настройки всегда можно подправить, файл конфигурации по умолчанию лежит в «C:\Program Data\Bareos\bareos-fd.conf».

В файле hosts также указываем IP для сервера BareOS, чтобы имя резолвилось. Со стороны сервера (bareos-server) конфиг для клиента (win-fd) выглядит следующим образом и находиться по пути /etc/bareos/bareos-dir.d/win.conf:

Развернуть
Client {
Name = win-fd
Address = win-fd
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Pool {
Name = win-bareos-pool-Full
Auto Prune = yes
Label Format = «bareos-client-Full-»
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 3 months
}

Pool {
Name = win-bareos-pool-Differential
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 11 days
Label Format = «win-bareos-client-Differential-»
}

Pool {
Name = win-bareos-pool-Incremental
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 10 days
Label Format = «win-bareos-client-Incremental-»
}

FileSet {
Name = bareos-fileset-win
Include {
File = «C:\\Users\\»
}
}

Job {
Name = Job-win-Full
Type = Backup
Level = Incremental
Client = win-fd
FileSet = bareos-fileset-win
Schedule = «MonthlyCycle»
Storage = bareos-server-sd
Messages = Standart
Pool = win-bareos-pool-Incremental
Full Backup Pool = win-bareos-pool-Full
Differential Backup Pool = win-bareos-pool-Differential
Incremental Backup Pool = bareos-pool-Incremental
}

Job {
Name = Job-win-Full-restore
Type = Restore
Client = win-fd
FileSet = «bareos-fileset-win»
Storage = bareos-server-sd
Pool = win-bareos-pool-Full
Messages = Standart
Where = «C:/tmp»
}


Из директивы FileSet видим, что для задачи Job-win-Full копируем папку пользователей «C:\Users» и в задаче Job-win-Full-restore восстанавливаем ее в папку при необходимости «C:\tmp».

Остался еще один клиент (bitrixvm) для которого нужно выполнять копирование корневой директории и в отдельной задаче копирование базы данных mysql.

Перейдем на машину bitrixvm и выполним установку клиента:

yum install -y bareos-client bareos-common

Перейдем в каталог /etc/bareos

/bareos-dir.d
/bareos-fd.d
/bconsole.conf
/ssl
.rndpwd
tray-monitor.d


Для настройки клиента перейдем в директорию /bareos-fd.d

/client
/director
/messages


По умолчанию, после установки конфигурация разбросана на три показанные выше директории, поэтому для дальнейшего удобства закомитируем частичные конфигурации в директориях director и messages, и выполним все настройки в /client/myself.conf

Развернуть
Client {
Name = bitrixvm
Maximum Concurrent Jobs = 20
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bitrixvm.cert.pem
TLS Key = /etc/bareos/ssl/bitrixvm.nopass.key.pem
compatible = no
}

Director {
Name = bareos-server
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bitrixvm.cert.pem
TLS Key = /etc/bareos/ssl/bitrixvm.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

Messages {
Name = Standard
Director = bareos-server = all, !skipped, !restored
Description = «Send relevant messages to the Director.»
}


Вносим параметры и перезапускаем службу:

/etc/init.d/bareos-fd restart


Прописываем в hosts адрес для bareos-server

Со стороны сервера (bareos-server) конфигурация для клиента (bitrixvm) выглядит следующим образом и находиться — /etc/bareos/bareos-dir.d/bitrixvm.conf:

Развернуть
Client {
Name = bitrixvm
Address = bitrixvm
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem

}

Pool {
Name = bitrixvm-bareos-pool-Full
Label Format = «bitrixvm-bareos-client-Full-»
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 3 months
}

Pool {
Name = bitrixvm-bareos-pool-Differential
Pool Type = Backup
Label Format = «bitrixvm-bareos-client-Differential-»
AutoPrune = yes
Recycle = yes
Select Job resource (1-6): = 11 days
}

Pool {
Name = bitrixvm-bareos-pool-Incremental
Pool Type = Backup
Label Format = «bitrixvm-bareos-client-Incremental-»
AutoPrune = yes
Recycle = yes
Volume Retention = 10 days
}

Job {
Name = Job-bitrixvm-mysql
Type = Backup
Level = Full
Client = bitrixvm
FileSet = bareos-fileset-bitrixvm-mysql
Schedule = «MonthlyCycle»
Storage = bareos-server-sd
Messages = Standart
Pool = bitrixvm-bareos-pool-Incremental
Full Backup Pool = bitrixvm-bareos-pool-Full
Differential Backup Pool = bitrixvm-bareos-pool-Differential
Incremental Backup Pool = bitrixvm-bareos-pool-Incremental

RunScript {
# Выполним скрипт описанный в этой секции до выполнения бэкапа
RunsWhen = Before
# Запускать скрипт, если задача (Job) не будет выполнена успешно
RunsOnFailure = Yes
RunsOnClient = Yes
#
#Сама команда для скрипта
Command = «sh -c 'mysqldump -uroot -ppassword --opt --all-databases > /tmp/dump.sql'»
}
}

Job {
Name = Job-bitrixvm-Full
Type = Backup
Level = Full
Client = bitrixvm
FileSet = bareos-fileset-bitrixvm
Schedule = «MonthlyCycle»
Storage = bareos-server-sd
Messages = Standart
Pool = bitrixvm-bareos-pool-Incremental
Full Backup Pool = bitrixvm-bareos-pool-Full
Differential Backup Pool = bitrixvm-bareos-pool-Differential
Incremental Backup Pool = bitrixvm-bareos-pool-Incremental
}

FileSet {
Name = bareos-fileset-bitrixvm
Include {
Options {
compression = GZIP
}
File = "/"
}
}

FileSet {
Name = bareos-fileset-bitrixvm-mysql
Include {
Options {
# Ставим тип сжатия
compression = GZIP
signature = MD5
}
File = "/tmp/dump.sql"
}
}

Job {
Name = Job-bitrixvm-mysql-restore
Type = Restore
Client = bitrixvm
FileSet = «bareos-fileset-bitrixvm-mysql»
Storage = bareos-server-sd
Pool = bitrixvm-bareos-pool-Full
Messages = Standart
Where = /tmp
}

Job {
Name = Job-bitrixvm-Full-restore
Type = Restore
Client = bitrixvm
FileSet = «bareos-fileset-bitrixvm»
Storage = bareos-server-sd
Pool = bitrixvm-bareos-pool-Full
Messages = Standart
Where = /tmp
}


В секции RunScript параметра Command мы запускаем команду mysqldump, передав все необходимые параметры «mysqldump -uroot -ppassword --opt --all-databases > /tmp/dump.sql».

Сохраненный файл dump.sql будет после бэкапирован как указано для FileSet с названием «bareos-fileset-bitrixvm-mysql».

Для шифрования передачи данных Bareos использует протокол TLS. Для каждого клиента и для директора у нас должны быть CA сертификат, сертификат и ключ. Будем использовать самоподписанные сертификаты, все это можно сделать через openssl.

Перейдем по пути конфигурационного файла openssl /etc/pki/tls/openssl.cnf

Генерируем CA сертификат:

#openssl req -config openssl.cnf -new -x509 -extensions v3_ca -keyout private/myca.key -out certs/myca.crt


После ввода пароля и остальных данных получим два файла:

/etc/pki/CA/private/myca.key
/etc/pki/CA/certs/myca.crt


Подправим/проверим файл настроек openssl.cnf чтобы были верно указаны пути к сертификатам, жирным выделено то, что нужно будет изменить.

Также нужно создать файлы index.txt и serial в папке /etc/pki/CA:

touch /etc/pki/CA/index.txt


В файл serial сразу заносим значение «01», в файле будет содержаться следующий номер для следующего сертификатам:

echo '01' > /etc/pki/CA/serial

 

Содержимое openssl.cnf:
dir = /etc/pki/CA
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
#unique_subject = no

new_certs_dir = $dir/newcerts

certificate = $dir/certs/myca.crt
serial = $dir/serial
crlnumber = $dir/crlnumber

crl = $dir/crl.pem
private_key = $dir/private/myca.key
RANDFILE = $dir/private/.rand

x509_extensions = usr_cert


Генерируем ключ для сервера, необходимо будет ввести пароль.

openssl genrsa -aes256 -out bareos-server.key.pem 4096


Генерируем запрос на сертификат. Важным моментом остается то, что в данном пункте при генерации сертификата необходимо правильно указать Common Name (CN) чтобы оно совпадало с именем машины, иначе возникнут ошибки при попытках выполнить какое-либо задание. В данном примере CN = bareos-server
openssl req -config openssl.cnf -key bareos-server.key.pem -new -sha256 -out bareos-server.csr.pem

Подписываем CSR через CA, получаем сам сертификат

openssl ca -config openssl.cnf -in bareos-server.csr.pem -out bareos-server.cert.pem


Убираем пароль для ключа, т.к. bareos он нужен безпарольный

openssl rsa -in bareos-server.key.pem -out bareos-server.nopass.key.pem


CA ключ и сертификат преобразуем в один файл с расширением PEM

cat /etc/pki/CA/private/myca.key /etc/pki/CA/certs/myca.cert > ca-chain.cert.pem


Генерируем DH ключ

openssl dhparam -out dh1024.pem -5 1024


Копируем сертификаты bareos-server.cert.pem bareos-server.nopass.key.pem ca-chain.cert.pem dh1024.pem в папку /etc/bareos/ssl, которую предварительно нужно создать и установить группу bareos

Для каждого сертификата меняем группу на bareos

chgrp bareos *


Аналогичные действия нужно проделать для каждого клиента (bitrixvm, win-fd):

openssl genrsa -aes256 -out bitrixvm.key.pem 4096
openssl req -config openssl.cnf -key bitrixvm.key.pem -new -sha256 -out bitrixvm.csr.pem
openssl ca -config openssl.cnf -in bitrixvm.csr.pem -out bitrixvm.cert.pem
openssl rsa -in bitrixvm.key.pem -out bitrixvm.nopass.key.pem


Посредством SCP копируем 4 файла bitrixvm.cert.pem bitrixvm.nopass.key.pem ca-chain.cert.pem dh1024.pem на удаленную машину bitrixvm в папку /etc/bareos/ssl, которую предварительно нужно создать и установить группу bareos как для папка так и для сертификатов.

В конфигурации клиента bitrixvm (/etc/bareos/bareos-fd.d/client/myself.conf) в секции Director {} необходимо чтобы были прописаны сертификаты клиента, но не директора. В конфигурации на стороне сервера (/etc/bareos/bareos-dir.d/bitrixvm.conf) в секции Client {} указаны сертификаты директора. После внесения изменений в конфигурации перезапустить службы.

Создание сертификатов для машины win-fd идентично.

Также нужно прописать сертификаты для bconsole, утилита, позволяющая управлять директором в файле /etc/bareos/bconsole.conf:

Развернуть
Director {
Name = bareos-server
DIRport = 9101
address = bareos-server
Password = «mmm_777»
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}


Процедура бэкапа или восстановления выглядит следующим образом. Воспользуемся утилитой bconsole, в качестве приветствия увидим *
run Покажет все возможные Job:

Развернуть
*run
A job name must be specified.
The defined Job resources are:
1: Job-Full
2: Job-Full-restore
3: Job-bitrixvm-mysql
4: Job-bitrixvm-Full
5: Job-bitrixvm-mysql-restore
6: Job-bitrixvm-Full-restore
Select Job resource (1-6): 3

Run Backup job
JobName: Job-bitrixvm-mysql
Level: Full
Client: bitrixvm
Format: Native
FileSet: bareos-fileset-bitrixvm-mysql
Pool: bitrixvm-bareos-pool-Full (From Job FullPool override)
Storage: bareos-server-sd (From Job resource)
When: 2016-10-16 11:05:16
Priority: 10
OK to run? (yes/mod/no):
# Задача ушедшая на выполнение получает JobId
Job queued. JobId=75


Результат выполнения команды можно просмотреть либо через команду message и в ответ получим примерно такое:

Развернуть
16-Oct 11:05 bareos-server-sd JobId 75: Volume «bitrixvm-bareos-client-Full-0011» previously written, moving to end of data.
16-Oct 11:05 bareos-server-sd JobId 75: Ready to append to end of Volume «bitrixvm-bareos-client-Full-0011» size=2086097429
16-Oct 11:05 bareos-server-sd JobId 75: Elapsed time=00:00:01, Transfer rate=319.2 K Bytes/second
16-Oct 11:05 bareos-server JobId 75: Bareos bareos-server 15.2.2 (16Nov15):
Build OS: x86_64-redhat-linux-gnu redhat CentOS Linux release 7.0.1406 (Core)
JobId: 75
Job: Job-bitrixvm-mysql.2016-10-16_11.05.38_07
Backup Level: Full
Client: «bitrixvm» 16.3.1 (01Jul16) x86_64-redhat-linux-gnu,redhat,CentOS release 6.6 (Final),CentOS_6,x86_64
FileSet: «bareos-fileset-bitrixvm-mysql» 2016-10-14 04:57:40
Pool: «bitrixvm-bareos-pool-Full» (From Job FullPool override)
Catalog: «bareos-server» (From Client resource)
Storage: «bareos-server-sd» (From Job resource)
Scheduled time: 16-Oct-2016 11:05:16
Start time: 16-Oct-2016 11:05:42
End time: 16-Oct-2016 11:05:42
Elapsed time: 0 secs
Priority: 10
FD Files Written: 1
SD Files Written: 1
FD Bytes Written: 319,187 (319.1 KB)
SD Bytes Written: 319,285 (319.2 KB)
Rate: 0.0 KB/s
Software Compression: 71.0 % (gzip)
VSS: no
Encryption: no
Accurate: no
Volume name(s): bitrixvm-bareos-client-Full-0011
Volume Session Id: 3
Volume Session Time: 1476554202
Last Volume Bytes: 2,086,417,588 (2.086 GB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK


Или через команду status dir

Развернуть
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
72 Full 0 0 Error 15-Oct-16 13:39 Job-bitrixvm-Full
73 Full 49,442 515.4 M OK 15-Oct-16 14:03 Job-bitrixvm-Full
74 Incr 20 36.81 K OK 16-Oct-16 02:01 Job-Full
75 Full 1 319.1 K OK 16-Oct-16 11:05 Job-bitrixvm-mysql


Где по графе статус можно просмотреть состояние бэкапа. Job с номером 75 прошел успешно.

Восстановление происходит по команде restore

*restore


После чего будет предложен список всех возможных вариантов

To select the JobIds, you have the following choices:

1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel


Покажем список последних 20 заданий:

f3c1e55ae1a3452b9f80cb59f8ec76d4
Жмем 3 и указываем номер JobID, например 75. После этого автоматически попадаем в консоль для выбора файлов, которые хотим восстановить

cwd is: /
$


Список всех доступных команд можно просмотреть через команду help. Проверяем какие файлы есть в наличии в данном бэкапе, отмечаем нужные файлы командой mark через указание файлов или через *, выбрав таким образом все. По завершении выполняем команду done после чего пойдет диалог с системой.

$ ls
tmp/
$ cd tmp/
cwd is: /tmp/
$ ls
dump.sql
$ mark *
1 file marked.
$ done


The job will require the following
Volume(s) Storage(s) SD Device(s)
===========================================================================

bitrixvm-bareos-client-Full-0011 bareos-server-sd bareos-sd

Volumes marked with "*" are online.

1 file selected to be restored.

Выбираем нужную нам задачу восстановления (пункт 2)

The defined Restore Job resources are:
1: Job-Full-restore
2: Job-bitrixvm-mysql-restore
3: Job-bitrixvm-Full-restore
Select Restore Job (1-3): 2


Задаем клиента для которого выполняем восстановление (2)

Defined Clients:
1: bareos-fd
2: bitrixvm
3: win-fd
Select the Client (1-3): 2

Using Catalog «bareos-server»
Run Restore job
JobName: Job-bitrixvm-mysql-restore
Bootstrap: /var/lib/bareos/bareos-server.restore.1.bsr
Where: /tmp
Replace: Always
FileSet: bareos-fileset-bitrixvm-mysql
Backup Client: bitrixvm
Restore Client: bitrixvm
Format: Native
Storage: bareos-server-sd
When: 2016-10-16 11:26:54
Catalog: bareos-server
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): yes

Подтверждаем задачу через yes, командой mod можно отредактировать параметры восстановления перед началом, в том числе и сменить директорию для восстановления. Далее задаче назначается JobId.

Job queued. JobId=76


По команде status dir можно увидеть состояние восстановления. Как видим все прошло успешно. После этого можно переходить на удаленный клиент, и в папке /tmp обнаружим восстановленный файл dump.sql.

76                1    1.100 M  OK       16-Oct-16 11:27 Job-bitrixvm-mysql-restore


В заключении можно сказать, что Bareos активно развивается, имеет в своем арсенале множество полезных функций, которые остались за пределами этой статьи, а наличие плагинов, которые могут расширить функционал также оказывают положительное впечатление (резервное копирование MS SQL, плагины для хранения данных на Ceph, Gluster, бэкап LDAP).

Как установить и настроить Ansible на Ubuntu 18.04

Инструкция по установке Ansible на виртуальный сервер под управлением Ubuntu 18.04.

Что такое Ansible?

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

58 ansible

Установка

Обновите локальную базу пакетов:

sudo apt update


Для начала установите пакет software-properties-common, который позволяет легко управлять дистрибутивами и источниками программного обеспечения от независимых поставщиков:

sudo apt install software-properties-common

С помощью этого инструмента можно управлять персональными архивами пакетов (PPA), которые позволяют распространять собственные пакеты и утилиты без лишних сложностей.


Затем добавьте репозиторий Ansible PPA с помощью следующей команды:

sudo apt-add-repository ppa:ansible/ansible


В процессе присоединения потребуется нажать клавишу Enter.


Еще раз обновите базу пакетов и выполните установку Ansible:

sudo apt update sudo apt install ansible


Теперь на виртуальном сервере установлено программное обеспечение Ansible, необходимое для администрирования ваших хостов.

Настройка доступа к хостам по SSH

Ansible в основном связывается с клиентскими компьютерами через SSH.

В нашей инструкции рассмотрено использование SSH-ключей, т.к. этот способ помогает упростить процесс подключения и является более безопасным, чем использование паролей.

Подробнее о том, что такое SSH-ключи и как с ними работать, можно прочитать в нашей инструкции.


С помощью следующей команды создайте SSH-ключ, который будет использоваться для подключения к хостам:

ssh-keygen -t rsa -b 4096


Скопируйте сгенерированный ключ на каждый хост, который будет обслуживаться Ansible:

ssh-copy-id user_name@ip-address>

Например: ssh-copy-id Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.


С помощью текстового редактора откройте следующий файл конфигурации:

vi /etc/ansible/hosts

Используя следующий синтаксис, где group_name — удобное название группы серверов, а your_server_ip_1 и your_server_ip_2 — IP-адреса обслуживаемых серверов, добавьте строки в открытый файл hosts:

[group_name]
your_server_ip_1
your_server_ip_2

Например:

[servers_ubuntu]
123.122.123.122
46.122.123.20

Сохраните изменения и закройте файл.Важно: на каждом хосте должен быть установлен язык python и пакет python-apt:

 

apt-get install python python-apt

Проверка подключения

По умолчанию Ansible выполняет подключение к удаленному хосту от имени пользователя root, если вы используете другого пользователя, то необходимо выполнить дополнительные настройки. Создайте каталог в структуре конфигурации, в котором будут находиться файлы в формате YAML для каждой группы:

sudo mkdir /etc/ansible/group_vars

Создайте подкаталог с названием вашей группы:

sudo nano /etc/ansible/group_vars/group_name

Например:

sudo nano /etc/ansible/group_vars/servers_ubuntu

Вставьте следующую строку, вместо user_name указав имя вашего пользователя:

---
ansible_user: user_name

Сохраните изменения.

Примечание: отдельные хосты можно настроить, создав алиасы и файлы с именами в соответствии с их псевдонимом в каталоге /etc/ansible/host_vars

Для проверки подключения выполните команду ping:

ansible -m ping all

Ожидаемый результат:

123.122.123.122 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

46.122.123.20 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Как изменить имя хоста на CentOS 8

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

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

В этой статье объясняется, как установить или изменить имя хоста в CentOS 8 без перезагрузки системы.

Прежде чем продолжить эту статью, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.

Имя хоста – это метка, которая идентифицирует устройство в сети. У вас не должно быть двух или более компьютеров с одинаковым именем хоста в одной сети.

Есть три класса hostname: static, pretty и transient.

  • static – Традиционное имя хоста. Он хранится в файле /etc/hostname и может быть установлен пользователем.
  • pretty – Свободное имя хоста UTF8, используемое для представления пользователю. Например, AndreyEx’s desktop.
  • transient – Динамическое имя хоста, поддерживаемое ядром. Серверы DHCP или mDNS могут изменять временное имя хоста во время выполнения. По умолчанию оно совпадает с именем хоста static.

Рекомендуется использовать полное доменное имя (FQDN) для обоих static и transient таких имен, как host.example.ru.

Чтобы просмотреть текущее имя хоста, выполните следующую команду:

hostnamectl

Как изменить имя хоста на CentOS 8

В этом примере текущее имя хоста установлено в centos8.localdomain.

В CentOS 8 и во всех других дистрибутивах Linux, использующих systemd, вы можете изменить имя хоста системы и соответствующие настройки с помощью команды hostnamectl. Синтаксис выглядит следующим образом:

sudo hostnamectl set-hostname host.example.ru
sudo hostnamectl set-hostname "Your Pretty HostName" --pretty
sudo hostnamectl set-hostname host.example.ru --static
sudo hostnamectl set-hostname host.example.ru --transient

Например, чтобы изменить системное статическое имя хоста host.AndreyEx.ru, вы должны использовать следующую команду:

sudo hostnamectl set-hostname host.m-go.ru

Чтобы установить красивое имя хоста AndreyEx’s desktop, введите:

sudo hostnamectl set-hostname "m-go's desktop" --pretty

Команда hostnamectl не производит вывод. В случае успеха возвращается 0, в противном случае – ненулевой код ошибки.

Чтобы убедиться, что имя хоста было успешно изменено, используйте команду hostnamectl.

nmtui это инструмент на основе взаимодействия с NetworkManager. Он также может быть использован для установки или изменения имени хоста.

Запустите инструмент, набрав его имя в терминале:

sudo nmtui

Используйте клавиши со стрелками для перемещения по параметрам, выберите Set system hostname и нажмите Enter.

Введите новое имя хоста.

Нажмите Enter, чтобы подтвердить новое имя хоста.

Наконец, перезапустите службу systemd-hostnamed, чтобы изменения вступили в силу.

sudo systemctl restart systemd-hostnamed

nmcli является инструментом командной строки для управления NetworkManager и может также использоваться для изменения имени хоста системы.

Чтобы просмотреть текущее имя хоста, введите:

sudo nmcli g hostname

Чтобы изменить имя хоста, host.AndreyEx.ru используйте следующую команду:

sudo nmcli g hostname host.m-go.ru

Чтобы изменения вступили в силу, перезапустите службу systemd-hostnamed:

sudo systemctl restart systemd-hostnamed

Чтобы задать или изменить имя хоста в системе CentOS, используйте команду hostnamectl set-hostname, а затем новое имя хоста.

  • 1
  • 2