Настройка опции удаленной установки агентов (minions)
| Настройка удаленной установки агентов (minions) является опциональной. |
Чтобы настроить возможность удаленной установки агента (minion), выполните действия:
Установка пакета salt-ssh
При установке модуля координации (SaltStack),
после того как вы скачаете и распакуете архив, из дистрибутива установите пакет salt-ssh любым удобным способом.
Пример команды для установки пакетов из репозитория:
sudo apt install salt-ssh=3006.7.4
Пример команды для установки пакетов из архива:
sudo apt install ./inno-salt/salt-ssh_3006.7.4_amd64.deb
Конфигурация сервера управления (master)
-
Создайте файл конфигурации сервера управления (master)
/etc/salt/master.d/roster.conf:roster_defaults: sudo: True ssh_options: - "StrictHostKeyChecking=no" - "UserKnownHostsFile=/dev/null"Где:
-
roster_defaults— блок параметров, которые используются при управлении удаленными серверами:-
sudo— параметр, указывающий на то, что при подключении к удаленному серверу через SSH команды выполняются от имени суперпользователя; -
ssh_options— список опций SSH, которые применяются при подключении к удаленным серверам:-
StrictHostKeyChecking— опция включения/выключения проверки хост-ключей (host key checking); возможные значения:-
yes— SSH-клиент строго проверяет ключи хостов при подключении к новым серверам: если ключ хоста не найден в файлеknown_hosts, SSH-клиент выдает предупреждение и запрашивает разрешение на добавление этого ключа в файлknown_hosts; -
no— отключение проверки ключей хостов;
-
-
UserKnownHostsFile— опция, указывающая путь к файлу, в котором хранятся известные ключи хостов (known hosts); по умолчанию, SSH клиент сохраняет ключи хостов в файле~/.ssh/known_hosts.
-
-
-
-
Создайте файл конфигурации
/etc/salt/roster(в формате, указанном в примере ниже) и укажите в нем список устройств, к которым должны применяться настройки ростера, заданные в файле/etc/salt/master.d/roster.conf.Пример файла:
dev-osmax-vm0104.osmax.terra.inno.tech: {} dev-osmax-vm0105.osmax.terra.inno.tech: {} ... dev-osmax-vm0109.osmax.terra.inno.tech: {}
Настройка обмена SSH-ключами между сервером управления (master) и агентами (minions)
Настройки сервера управления (master)
Настройки, приведенные ниже, выполняются на хосте, на котором установлен сервер управления (master).
-
Создайте директорию для хранения ключей, используемых
salt-ssh, выполнив команду:sudo mkdir -p /etc/salt/pki/master/ssh/
-
Создайте SSH-ключ, который позволит подключиться к хосту для последующей удаленной установки агента, выполнив команду:
sudo ssh-keygen -b 3072 -t rsa -q -N '' -f /etc/salt/pki/master/ssh/salt-ssh.rsa -C "salt-ssh"
-
Измените права доступа к файлу, выполнив команду:
sudo chmod 600 /etc/salt/pki/master/ssh/salt-ssh.rsa
Если сервер управления (master) запускается не под root-пользователем, может потребоваться смена владельца файла. Например, если сервер управления (master) запускается под пользователем с именем salt, выполните команду:sudo chown salt: /etc/salt/pki/master/ssh/salt-ssh.rsa
-
Проверьте публичную часть созданного ключа и сохраните ее в буфер обмена для дальнейшего использования на удаленном хосте, выполнив команду:
sudo cat /etc/salt/pki/master/ssh/salt-ssh.rsa.pub
Пример результата:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCdAzMz56BL2XLxsayXA4LyEuFcBVKgU2MHOJltcR6AAMio4Sb8y2cvRhe3io9jhpl/8zsYjzpIRFpXJMK5W1INeVGs5x+MzpucrrcrvNzBdPWYXsEvyYgdzmpjB89X/66hr1qQZ6G/UXkFpdvpRfhE8yefYjZnIhj+dAiUF0ZhRm7oX7QYX2hOLLwGAZ3M9aOmqT+T9XmqF0yrf+KotREEvSlWtR0SJ3c67vqLxPXcn4hlrjAHrl6agvlGyHMVA1S9/cyDwh/3Q+WDS/M3TfHBiJWqXJQPC9rDtUOfJl9HT0RbkBif8wYOSkUO995iMarSj+hPL9pZ8a6u2+9EiSlNwIrAwj19OUvJl/ydek+49VhOvTqXO+UqeD+Yqlb0nEp4tip5XcSihUG2xl9c6GPVvNk8B4WWh2XHzxrEQpL2OXqcY1kbkguisaBUtFOmN3OaqGkoqdVAaIFiq1FJaF4b0yD4gmF5Ni5EaYPkApdHQO1Bu6jItnsXApVIywNpCGE= salt-ssh
-
(Опционально) если вы используете режим мульти-мастер с автоматическим переключением (failover), скопируйте файлы
salt-ssh.rsaиsalt-ssh.rsa.pubи поместите их в каталог/etc/salt/pki/master/ssh/на каждом используемом сервере управления (master).
Настройки удаленного хоста (без агента)
Настройки, приведенные ниже, выполняются на удаленном хосте, на котором еще не установлен агент (minion).
-
Убедитесь, что служба
sshdзапущена и работает, выполнив команду:sudo systemctl status sshd
Ответ должен содержать значение
Active: active (running). -
Создайте пользователя, под которым будет производиться удаленная установка агента и под этим пользователем можно подключиться по SSH.
Ниже в качестве примера используется пользователь с именем
salt-ssh.Пользователю необходимо предоставить root-права или права для выполнения административных действий, следуя описанным ниже шагам.В директории
/etc/sudoers.dсоздайте файлsalt-sshи добавьте в него строку, которая позволит пользователю (salt-ssh) выполнять командыaptот имениrootбез запроса пароля:salt-ssh ALL=(root) NOPASSWD: /usr/bin/apt *
Для проверки прав пользователя, а также списка доступных пользователю команд, выполните команды:
id salt-ssh sudo --list --other-user=salt-ssh
Пример вывода команды
sudo --list --other-user=salt-ssh:User salt-ssh may run the following commands on minion-no-1: (ALL) NOPASSWD: /usr/bin/apt
Где пользователь
salt-sshимеет право выполнять только команды, связанные с управлением пакетами, такие какapt, без необходимости вводить пароль.Для проверки работоспособности команд, связанных с
apt, используйте следующие команды от имени пользователяsalt-ssh:-
Зайдите в систему под пользователем
salt-ssh. -
Обновите список доступных пакетов:
sudo apt update
-
Установите тестовый пакет (например,
htop) без запроса подтверждения:sudo apt install htop -y
Если обе команды выполняются успешно, это подтверждает, что пользователь
salt-sshимеет необходимые права для выполнения команд управления пакетами черезsudo. -
-
Создайте каталог домашний каталог пользователя, под которым будет производиться удаленная установка?
/home/salt-ssh/.sshдля хранения конфигурационных файлов и ключей SSH (Secure Shell), выполнив команду:mkdir /home/salt-ssh/.ssh
-
Откройте или создайте файл
/home/salt-ssh/.ssh/authorized_keysдля редактирования. -
Вставьте в файл публичный ключ, скопированный ранее в буфер обмена.
-
Убедитесь, что файл имеет правильные права доступа и владельца и при необходимости отредактируйте данные, используя команды:
sudo chmod 600 /home/salt-ssh/.ssh/authorized_keys sudo chown salt-ssh: /home/salt-ssh/.ssh/authorized_keys
-
Выполните проверку доступов на хосте сервера управления (master), выполнив шаги, описанные в разделе ниже.
Конфигурация пакетного менеджера APT
Для удаленной установки агентов (minions) на целевых хостах с Debian-подобными дистрибутивами необходимо правильно настроить пакетный менеджер APT и добавить репозитории, содержащие пакеты SaltStack. Выполните шаги:
-
Добавьте репозиторий, содержащий пакеты SaltStack, вставив следующую строку в файл
/etc/apt/sources.list.d/osmax-astra-apt-packages.list:deb https://artifacts.inno.tech/repository/osmax-astra-apt-packages/ 1.7_x86-64 main
-
Настройте учетные данные для аутентификации (если это требуется), вставив следующую строку в файл
/etc/apt/auth.conf.d/osmax-astra-apt-packages.conf:machine artifacts.inno.tech/repository/osmax-astra-apt-packages/ login <username> password <password>
Проверка подключения на хосте сервера управления (master)
Чтобы выполнить проверку подключения к удаленному серверу с хоста сервера управления (master), выполните команду:
sudo ssh -i /etc/salt/pki/master/ssh/salt-ssh.rsa -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null "<имя_пользователя>@<имя_удаленного_хоста>" id
Где:
-
имя_удаленного_хоста— имя хоста, настройки которого были выполнены выше, и на который будет производиться установка агента (minion); -
имя_пользователя— имя пользователя, под которым будет производиться подключение и запуск скриптов установки агента (minion) через Осмакс. В случае успешного подключения на удаленном хосте отображается идентификатор пользователя, например:uid=1001(salt-ssh) gid=1002(salt-ssh) groups=1002(salt-ssh),20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),100(users)