ssh

ssh

ansible-centos.yml ansible-debian.yml ansible-fedora.yml ansible-lint.yml ansible-test.yml ansible-ubuntu.yml markdownlint.yml shellcheck.yml tft.yml tft_citest_bad.yml woke.yml

Роль Ansible для управления конфигурацией SSH-клиентов.

Требования

Эта роль должна работать на любой системе, предоставляющей клиент openssh и поддерживаемой ansible. Роль была протестирована на:

  • RHEL/CentOS 6, 7, 8, 9
  • Fedora
  • Debian
  • Ubuntu

Требования к коллекциям

Для управления системами rpm-ostree роль требует модули из внешних коллекций. Используйте следующую команду для их установки:

ansible-galaxy collection install -vv -r meta/collection-requirements.yml

Переменные роли

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

ssh_user

По умолчанию (null) роль будет изменять глобальную конфигурацию для всех пользователей. Другие значения будут интерпретированы как имя пользователя, и роль будет изменять пользовательскую конфигурацию, хранящуюся в ~/.ssh/config данного пользователя. Пользователь должен существовать до вызова этой роли, иначе она завершится неудачей.

ssh_skip_defaults

По умолчанию (auto) роль записывает конфигурационный файл для всей системы /etc/ssh/ssh_config и сохраняет настройки по умолчанию ОС (true). Это автоматически отключается, когда создается файл конфигурации drop-in (ssh_drop_in_name!=null) или когда создается файл конфигурации для пользователя (ssh_user!=null).

ssh_drop_in_name

Это определяет имя для файла конфигурации drop-in, который будет размещен в системном каталоге drop-in. Имя используется в шаблоне /etc/ssh/ssh_config.d/{name}.conf для ссылки на изменяемый файл конфигурации. Если система не поддерживает каталог drop-in, установка этой опции приведет к ошибке. Значение по умолчанию null, если система не поддерживает каталог drop-in, и 00-ansible в противном случае.

Рекомендуемый формат NN-name, где NN — двузначное число, используемое для сортировки, а name — любое описательное имя для содержимого или владельца файла.

ssh dict

Словарь, содержащий параметры конфигурации и соответствующие значения. См. пример ниже.

  • ssh_...:

Простые переменные, состоящие из имени опции с префиксом ssh_, могут использоваться вместо словаря выше. Простая переменная переопределяет значения в словаре выше.

ssh_additional_packages

Эта роль автоматически устанавливает пакеты, необходимые для наиболее распространенных случаев использования на данной платформе. Если необходимо установить дополнительные пакеты (например, openssh-keysign для аутентификации на основе хоста), их можно указать в этой переменной.

ssh_config_file

Файл конфигурации, который будет записан этой ролью. Значение по умолчанию определяется шаблоном /etc/ssh/ssh_config.d/{name}.conf, если система поддерживает каталог drop-in, или /etc/ssh/ssh_config в противном случае. Если ssh_user!=null, значение по умолчанию ~/.ssh/config.

Чтобы записать /etc/ssh/ssh_config, даже если каталог drop-in поддерживается, установите ssh_drop_in_name в null.

ssh_config_owner, ssh_config_group, ssh_config_mode

Владелец, группа и режим созданного конфигурационного файла. По умолчанию файлы принадлежат root:root с режимом 0644, если только ssh_user!=null. В этом случае режим будет 0600, а владелец и группа будут взяты из имени пользователя, указанного в переменной ssh_user.

ssh_backup

При установке в значение false оригинальный файл ssh_config не будет сохранен. Значение по умолчанию true.

ssh_transactional_update_reboot_ok

Эта переменная используется для обработки перезагрузок, необходимых для транзакционных обновлений. Если транзакционное обновление требует перезагрузки, роль продолжит с перезагрузкой, если ssh_transactional_update_reboot_ok установлено на true. Если установлено значение false, роль уведомит пользователя о том, что требуется перезагрузка, позволяя самостоятельно обрабатывать необходимость перезагрузки. Если эта переменная не установлена, роль завершится с ошибкой, чтобы предотвратить пропуск требования о перезагрузке.

Пример плейбука

Следующий плейбук настраивает ssh-конфигурацию пользователя root в его домашнем каталоге для использования сжатия, мультиплексирования Control-Master и включает аутентификацию GSSAPI в блоке "match final all". Кроме того, он создает псевдоним "example" для подключения к хосту example.com как пользователь somebody. Последняя строка отключает перенаправление X11.

- name: Управление ssh-клиентами
  hosts: all
  tasks:
  - name: Настроить ssh-клиенты
    include_role:
      name: linux-system-roles.ssh
    vars:
      ssh_user: root
      ssh:
        Compression: true
        ControlMaster: auto
        ControlPath: ~/.ssh/.cm%C
        Match:
          - Condition: "final all"
            GSSAPIAuthentication: true
        Host:
          - Condition: example
            Hostname: example.com
            User: somebody
      ssh_ForwardX11: false

Больше примеров можно найти в каталоге examples/.

rpm-ostree

Смотрите README-ostree.md

Лицензия

LGPLv3, смотрите файл LICENSE для получения дополнительной информации.

Информация об авторе

Jakub Jelen, 2021 - 2023