Как можно вывести информацию о подключении по SSH в стандартный вывод с помощью Ansible?

Как можно получить информацию о текущем ssh-соединении и использовать ее для формирования конфигурационного файла после выполнения определенной задачи в Ansible? Я предполагал, что можно получить эту информацию из gather facts, но не смог найти нужные данные. Конкретный пример - создание задачи по добавлению пользователя на сервер, после которой нужно сформировать конфигурацию для подключения к ssh.
  • 29 декабря 2023 г. 10:57
Ответы на вопрос 2
Для вывода информации о подключении по SSH в стандартный вывод с помощью Ansible вы можете использовать модуль "debug". Ниже приведен пример:

```yaml
- name: Вывести информацию о подключении по SSH
  debug:
    msg: "Подключение происходит через {{ ansible_ssh_host }} на порт {{ ansible_ssh_port }} с использованием пользователя {{ ansible_ssh_user }}"
```

Для получения информации о текущем ssh-соединении и использования ее для формирования конфигурационного файла после выполнения определенной задачи, вам нужно сохранить соответствующие факты о соединении. Вы можете сделать это с помощью "register" в задаче, которая добавляет пользователя на сервер. Пример:

```yaml
- name: Добавить пользователя на сервер
  user:
    name: my_user
    password: my_password
  register: user_creation_result

- name: Вывести информацию о SSH-подключении
  debug:
    msg: "Подключение осуществляется через {{ ansible_ssh_host }} в качестве пользователя {{ ansible_ssh_user }}"

- name: Создать конфигурационный файл SSH
  template:
    src: ssh_config.j2
    dest: /etc/ssh/ssh_config
```

Используя факты "ansible_ssh_host" и "ansible_ssh_user", вы можете сформировать конфигурационный файл SSH, используя модуль "template". Пример выше демонстрирует создание конфигурации "ssh_config.j2" с использованием Jinja2-шаблона.
просто генирируйте конфиги да и все,  зачем вам для этого какие то коннекты ?
Похожие вопросы