Ansible добавить ключи - PullRequest
       39

Ansible добавить ключи

1 голос
/ 02 апреля 2020

Я пытаюсь добавить некоторые ключи к моим root авторизованным ключам в экземпляре, но похоже, что он перезаписывает список и вставляет только последний ключ, Кто-нибудь знает, как это отсортировать?

- name: Set authorized key
  authorized_key:
    user: root
    state: present
    key: "{{item}}"
  loop: "{{keys}}"

файл vars

keys:
    - "https://gitlab.com/user1.keys"
    - "https://github.com/user2.keys"

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Q: "Похоже, он перезаписывает список и вставляет только последний ключ. Кто-нибудь знает, как это отсортировать?"

A: По умолчанию authorized_key не удаляет неуказанные ключи из файла авторизованного ключа. См. Параметр эксклюзив . Убедитесь, что данные, которые вы вводите key с.

0 голосов
/ 03 апреля 2020

Из документации, под опцией exclusive :

Удалить ли все остальные не указанные ключи из файла авторизованных ключей. Несколько ключей могут быть указаны в одном значении строки ключа, разделяя их символами новой строки. Эта опция не поддерживает цикл, поэтому, если вы используете with_, она будет исключительной для каждой итерации l oop. Если вы хотите, чтобы в файле было несколько ключей, вам нужно передать их все для ввода в один пакет, как указано выше.

Это означает, что вы можете достичь того, чего хотите, используя Jinja join фильтр в вашем массиве:

- name: Set authorized key
  authorized_key:
    user: root
    state: present
    key: "{{ keys | join('\n') }}"
...