Назад | Перейти на главную страницу

использовать файл с хоста как ввод для модуля lineinfile

В настоящее время я настраиваю систему с помощью ansible и хочу максимально ее автоматизировать.

Итак, я создаю открытые ключи на своей доступной машине и копирую их на хосты, чтобы я мог максимально контролировать хосты извне.

Теперь мне нужно настроить связь между моими хостами через открытые ключи. Я использую lineinfile модуль, чтобы убедиться, что ключи присутствуют в authorized_keys и known_hostsфайлы. Есть ли способ прочитать содержимое файла (на машине, с которой запущен ansible) и использовать его в качестве ввода для lineinfile модуль?

Как указал Mxx в комментариях, lookup это ответ. Кроме того, я бы не рекомендовал использовать lineinfile для добавления authorized_keys. Специально для этого уже существует модуль Ansible, который вряд ли доставит вам неприятности. Вот пример игры. Он будет извлекать из локального открытого ключа и должным образом проверять, существует ли он для целевого пользователя.

tasks: - name: Install SSH authorized key authorized_key: > user=root key="{{ lookup('file', '/root/.ssh/id_rsa.pub') }}" state=present