ansible.builtin.known_hosts 模块 - 从 known_hosts
文件中添加或删除主机
注意
此模块是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使不指定 集合关键字,您也可以使用简短的模块名称 known_hosts
。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.known_hosts
,以便轻松链接到模块文档并避免与可能具有相同模块名称的其他集合发生冲突。
概述
ansible.builtin.known_hosts 模块允许您从
known_hosts
文件中添加或删除主机密钥。从 Ansible 2.2 开始,每个主机允许有多个条目,但每个 ssh 支持的密钥类型只有一个。如果您要通过 ssh 使用 ansible.builtin.git 模块,这将非常有用。
如果您有大量的主机密钥需要管理,您会发现 ansible.builtin.template 模块更加有用。
参数
参数 |
注释 |
---|---|
对 known_hosts 文件中的主机名进行哈希处理。 选择
|
|
SSH 公共主机密钥,以字符串形式表示。 如果 该密钥必须是 SSH 的正确格式(请参阅 sshd(8) 的“SSH_KNOWN_HOSTS FILE FORMAT”部分)。 具体来说,密钥不应与 SSH 公钥文件中找到的格式匹配,而应该在包含公钥的行前加上主机名,这与它在 known_hosts 文件中的显示方式相同。附加到该行的值也必须与 name 参数的值匹配。 应采用 对于自定义 SSH 端口, |
|
要添加或删除的主机(必须与 key 中指定的主机匹配)。它将被转换为小写,以便 必须与 key 属性中存在的 <hostname> 或 <ip> 匹配。 对于自定义 SSH 端口, |
|
要编辑的 known_hosts 文件。 如果需要,将创建 known_hosts 文件。其余路径必须在运行模块之前存在。 默认: |
|
选择
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完全支持 |
可以在 check_mode 下运行并返回更改状态预测,而不会修改目标,如果不受支持,则操作将被跳过。 |
|
支持: 完全支持 |
将在 diff 模式下返回有关已更改内容(或在 check_mode 下可能需要更改的内容)的详细信息 |
|
平台: posix |
可以针对其操作的目标操作系统/系列 |
示例
- name: Tell the host about our servers it might want to ssh to
ansible.builtin.known_hosts:
path: /etc/ssh/ssh_known_hosts
name: foo.com.invalid
key: "{{ lookup('ansible.builtin.file', 'pubkeys/foo.com.invalid') }}"
- name: Another way to call known_hosts
ansible.builtin.known_hosts:
name: host1.example.com # or 10.9.8.77
key: host1.example.com,10.9.8.77 ssh-rsa ASDeararAIUHI324324 # some key gibberish
path: /etc/ssh/ssh_known_hosts
state: present
- name: Add host with custom SSH port
ansible.builtin.known_hosts:
name: '[host1.example.com]:2222'
key: '[host1.example.com]:2222 ssh-rsa ASDeararAIUHI324324' # some key gibberish
path: /etc/ssh/ssh_known_hosts
state: present