【问题标题】:Dynamic Ansible SSH key management动态 Ansible SSH 密钥管理
【发布时间】:2019-12-06 14:54:45
【问题描述】:

我正在创建一个 ansible 角色来动态管理用户 SSH 密钥。一般的想法是让它读取该目录中的所有files/*.pub 文件并将它们组合成单个authorized_keys 文件以供root 用户使用。

在下面的示例中,a.pub 和 b.pub 将是要添加的两个键。该任务应将这两个文件都添加到authorized_keys 文件中,并在添加和删除文件时保持.pub 文件列表与文件同步。因此,如果将c.pub 添加到文件夹中,它将被添加到authorized_keys 文件中,而无需修改任务。

角色结构:

/-- roles
|   |-- ssh
|   |   |-- files
|   |       |-- a.pub
|   |       |-- b.pub
|   |-- tasks
|       |-- main.yml
|-- site.yml

【问题讨论】:

    标签: ansible


    【解决方案1】:

    您正在寻找的是fileglob lookup 并将用作:

    - name: ensure authorized keys
      authorized_key:
        exclusive: yes
        key: >
           {% for fn in lookup("fileglob", "files/*.pub") %}
           {{ lookup("file", fn) }}
           {% endfor %}
        # ... whatever other options you want
    

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      相关资源
      最近更新 更多