Настройка опции удаленной установки агентов (minions)
Чтобы настроить возможность удаленной установки агента (minion), выполните действия:
Установка пакета salt-ssh
При установке модуля координации (SaltStack),
после того как вы скачаете и распакуете архив, установите пакет salt-ssh любым удобным способом, например:
sudo apt install salt-ssh=3006.4
или
sudo apt install ./inno-salt/salt-ssh_3006.4_amd64.deb
Конфигурация сервера управления (master)
-
Cоздайте файл конфигурации сервера управления (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
Настройки удаленного хоста (без агента)
Настройки, приведенные ниже, выполняются на удаленном хосте, на котором еще не установлен агент (minion).
-
Убедитесь, что служба
sshdзапущена и работает, выполнив команду:sudo systemctl status sshd
Ответ должен содержать значение
Active: active (running). -
Убедитесь, что создан пользователь, под которым будет производиться удаленная установка агента и под этим пользователем можно подключиться по SSH. Пользователь должен быть наделен root-правами или правами, необходимыми для выполнения административных действий.
Ниже в качестве примера используется пользователь с именем
salt-ssh. -
Откройте или создайте файл
/home/salt-ssh/.ssh/authorized_keysдля редактирования, где/home/salt-ssh— это домашний каталог пользователя, под которым будет производиться удаленная установка:sudo vi /home/salt-ssh/.ssh/authorized_keys
-
Вставьте в файл публичный ключ, скопированный ранее в буфер обмена, например:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCdAzMz56BL2XLxsayXA4LyEuFcBVKgU2MHOJltcR6AAMio4Sb8y2cvRhe3io9jhpl/8zsYjzpIRFpXJMK5W1INeVGs5x+MzpucrrcrvNzBdPWYXsEvyYgdzmpjB89X/66hr1qQZ6G/UXkFpdvpRfhE8yefYjZnIhj+dAiUF0ZhRm7oX7QYX2hOLLwGAZ3M9aOmqT+T9XmqF0yrf+KotREEvSlWtR0SJ3c67vqLxPXcn4hlrjAHrl6agvlGyHMVA1S9/cyDwh/3Q+WDS/M3TfHBiJWqXJQPC9rDtUOfJl9HT0RbkBif8wYOSkUO995iMarSj+hPL9pZ8a6u2+9EiSlNwIrAwj19OUvJl/ydek+49VhOvTqXO+UqeD+Yqlb0nEp4tip5XcSihUG2xl9c6GPVvNk8B4WWh2XHzxrEQpL2OXqcY1kbkguisaBUtFOmN3OaqGkoqdVAaIFiq1FJaF4b0yD4gmF5Ni5EaYPkApdHQO1Bu6jItnsXApVIywNpCGE= salt-ssh
-
Убедитесь, что файл имеет правильные права доступа и владельца, выполнив команду:
sudo chmod 600 /home/salt-ssh/.ssh/authorized_keys
При необходимости отредактируйте данные, выполнив команду:
sudo chown salt-ssh: /home/salt-ssh/.ssh/authorized_keys
-
Выполните проверку доступов на хосте сервера управления (master), выполнив шаги, описанные в разделе ниже.
Проверка подключения на хосте сервера управления (master)
Чтобы выполнить проверку подключения к удаленному серверу с хоста сервера управления (master), выполните команду:
sudo ssh -i /etc/salt/pki/master/ssh/salt-ssh.rsa -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null "<имя_пользователя>@<имя_удаленного_хоста>" id
Где:
имя_удаленного_хоста — имя хоста, настройки которого были выполнены выше, и на который будет производиться
установка агента (minion);
имя_пользователя — имя пользователя, под которым будет производиться подключение и запуск скриптов установки
агента (minion) через Осмакс.
В случае успешного подключения на удаленном хосте отображается идентификатор пользователя, например:
uid=1000(admin) gid=1000(admin) группы=1000(admin),27(sudo)