ansible.builtin.known_hosts 模块 - 将主机添加到 known_hosts
文件中
注意
此模块是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使没有指定 collections 关键字,您也可以使用简短的模块名称 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 pubkey 文件中找到的格式匹配,而应在包含 pubkey 的行之前添加主机名,这与它在 known_hosts 文件中显示的方式相同。添加到行之前的 value 必须与 name 参数的 value 相匹配。 应采用 对于自定义 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