Настройка опции удаленной установки агентов (minions)

Установка пакета salt-ssh

При установке модуля координации (SaltStack), после того как вы скачаете и распакуете архив, установите пакет salt-ssh любым удобным способом, например:

sudo apt install salt-ssh=3006.4

или

sudo apt install ./inno-salt/salt-ssh_3006.4_amd64.deb

Конфигурация сервера управления (master)

  1. 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.

  2. Создайте файл конфигурации /etc/salt/roster (в формате, указанном в примере ниже) и укажите в нем список устройств, к которым должны применяться настройки ростера, заданные в файле /etc/salt/master.d/roster.conf.

    Пример файла:

    dev-lcm-vm0104.lcm.terra.inno.tech: {}
    dev-lcm-vm0105.lcm.terra.inno.tech: {}
    ...
    dev-lcm-vm0109.lcm.terra.inno.tech: {}

Настройка обмена SSH-ключами между сервером управления (master) и агентами (minions)

Настройки сервера управления (master)

Настройки, приведенные ниже, выполняются на хосте, на котором установлен сервера управления (master).

  1. Создайте директорию для хранения ключей, используемых salt-ssh, выполнив команду:

    sudo mkdir -p /etc/salt/pki/master/ssh/
  2. Создайте SSH-ключ, который позволит подключиться к хосту для последующей удаленной установки агента, выполнив команду:

    sudo ssh-keygen -b 3072 -t rsa -q -N '' -f /etc/salt/pki/master/ssh/salt-ssh.rsa -C "salt-ssh"
  3. Измените права доступа к файлу, выполнив команду:

    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
  4. Проверьте публичную часть созданного ключа и сохраните ее в буфер обмена для дальнейшего использования на удаленном хосте, выполнив команду:

    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).

  1. Убедитесь, что служба sshd запущена и работает, выполнив команду:

    sudo systemctl status sshd

    Ответ должен содержать значение Active: active (running).

  2. Убедитесь, что создан пользователь, под которым будет производиться удаленная установка агента и под этим пользователем можно подключиться по SSH. Пользователь должен быть наделен root-правами или правами необходимыми для выполнения административных действий.

    Далее в качестве примера используется пользователь с именем salt-ssh.

  3. Откройте или создайте файл /home/salt-ssh/.ssh/authorized_keys для редактирования, где /home/salt-ssh — это домашний каталог пользователя, под которым будет производиться удаленная установка:

    sudo vi /home/salt-ssh/.ssh/authorized_keys
  4. Вставьте в файл публичный ключ, скопированный ранее в буфер обмена, например:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCdAzMz56BL2XLxsayXA4LyEuFcBVKgU2MHOJltcR6AAMio4Sb8y2cvRhe3io9jhpl/8zsYjzpIRFpXJMK5W1INeVGs5x+MzpucrrcrvNzBdPWYXsEvyYgdzmpjB89X/66hr1qQZ6G/UXkFpdvpRfhE8yefYjZnIhj+dAiUF0ZhRm7oX7QYX2hOLLwGAZ3M9aOmqT+T9XmqF0yrf+KotREEvSlWtR0SJ3c67vqLxPXcn4hlrjAHrl6agvlGyHMVA1S9/cyDwh/3Q+WDS/M3TfHBiJWqXJQPC9rDtUOfJl9HT0RbkBif8wYOSkUO995iMarSj+hPL9pZ8a6u2+9EiSlNwIrAwj19OUvJl/ydek+49VhOvTqXO+UqeD+Yqlb0nEp4tip5XcSihUG2xl9c6GPVvNk8B4WWh2XHzxrEQpL2OXqcY1kbkguisaBUtFOmN3OaqGkoqdVAaIFiq1FJaF4b0yD4gmF5Ni5EaYPkApdHQO1Bu6jItnsXApVIywNpCGE= salt-ssh
  5. Убедитесь, что файл имеет правильные права доступа и владельца, выполнив команду:

    sudo chmod 600 /home/salt-ssh/.ssh/authorized_keys

    При необходимости отредактируйте данные, выполнив команду:

    sudo chown salt-ssh: /home/salt-ssh/.ssh/authorized_keys
  6. Выполните проверку доступов на хосте сервера управления (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)