ansible常用模块之 -- known_hosts模块 – 在known_hosts文件中添加或删除主机
known_hosts模块 – 在known_hosts文件中添加或删除主机
一、摘要
- known_hosts模块允许您从known_hosts文件中添加或删除主机密钥。
- 从Ansible 2.2开始,每个主机允许多个条目,但是ssh支持的每种密钥类型只有一个。例如,如果你想通过ssh使用git模块,这是很有用的
- 如果要管理的主机密钥非常多,您会发现template模块更有用。
二、参数
参数 | 选项/默认值 | 描述 |
---|---|---|
hash_host boolean | · no ← · yes | 哈希known_hosts文件中的主机名 |
key | SSH公共主机密钥,作为字符串(如果state=present则为必需,如果state=absent则为可选,在这种情况下,主机的所有密钥都将被删除)。密钥必须是ssh的正确格式(参见sshd(8),“SSH_KNOWN_HOSTS FILE format”小节)。具体来说,密钥不应该与SSH pubkey文件中的格式匹配,而应该在包含pubkey的行前面加上主机名,与它在known_hosts文件中出现的方式相同。行前的值也必须与name参数的值匹配。格式应为’ <hostname[,IP]> ssh-rsa <pubkey>” | |
name required | 要添加或删除的主机(必须与key中指定的主机匹配)。它将被转换为小写,以便ssh-keygen能够找到它。 必须匹配或出现在关键属性 | |
path | Default: “(homedir)+/.ssh/known_hosts” | 要编辑的known_hosts文件 |
state | · present ← · absent | present是为了添加主机密钥,absent是为了删除它。 |
三、示例
# 告诉主机它可能想要SSH到的服务器
- name: tell the host about our servers it might want to ssh to
known_hosts:
path: /etc/ssh/ssh_known_hosts
name: foo.com.invalid
key: "{{ lookup('file', 'pubkeys/foo.com.invalid') }}"
# 调用known_hosts的另一种方法
- name: Another way to call known_hosts
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
官方文档:https://docs.ansible.com/ansible/2.9/modules/known_hosts_module.html#known-hosts-module