Ansible内置模块之known_hosts
Ansible内置模块之 known_hosts
ansible.builtin.known_hosts 模块允许您在 known_host 文件中添加或删除主机公钥。从 Ansible 2.2开始,每个主机允许多个条目,但 ssh 支持的每个公钥类型只能有一个条目。例如,如果您想在 ssh 上使用[ansible.builtin.git]模块,这将非常有用。如果要管理大量的主机公钥,[ansible.builtin.template]模块更有用。
1. 选 项 说 明
选项 | 必须 | 类型 | 默认值 | 说明 |
url | 是 | str | 无 | 要下载文件的 URL |
dest | 是 | str | 无 | 目标文件路径 |
mode | 否 | str | 无 | 目标文件的权限,如 0644、0755 等 |
owner | 否 | str | 无 | 目标文件的所有者 |
group | 否 | str | 无 | 目标文件的属组 |
checksum | 否 | str | no | 用于验证下载文件的 SHA256 校验和 |
force | 否 | bool | 无 | 如果目标文件存在,是否强制覆盖 |
timeout | 否 | int | no | 设置下载的超时时间(秒) |
headers | 否 | list | 无 | 用于下载请求的 HTTP 头 |
url_password | 否 | str | 无 | 用于下载请求的密码 |
url_username | 否 | str | 无 | 用于下载请求的用户名 |
validate_certs | 否 | bool | yes | 如果为 no,忽略 SSL 证书验证错误 |
use_proxy | 否 | bool | yes | 是否使用系统中定义的代理 |
client_cert | 否 | str | 无 | 用于下载请求的客户端证书文件路径 |
client_key | 否 | str | 无 | 用于下载请求的客户端密钥文件路径 |
http_agent | 否 | str | ansible-httpget | 设置下载请求的 HTTP User-Agent 头 |
2. 用 例
# 利用文件向 known_hosts 文件添加主机公钥
- 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') }}"
# 向 known_hosts 文件添加主机公钥
- 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
path: /etc/ssh/ssh_known_hosts
state: present
# 向 known_hosts 文件添加特定ssh端口的主机公钥
- name: Add host with custom SSH port
ansible.builtin.known_hosts:
name: '[host1.example.com]:2222'
key: '[host1.example.com]:2222 ssh-rsa ASDeararAIUHI324324'
path: /etc/ssh/ssh_known_hosts
state: present
# 向 known_hosts 文件添加多个主机公钥
- name: Add multiple host keys to known_hosts
ansible.builtin.known_hosts:
path: /home/user/.ssh/known_hosts
host: "{{ item.host }}"
key: "{{ item.key }}"
state: present
loop:
- { host: "git.example.com", key: "ssh-rsa AAAAB3NzaC1yAQEYb... user@host" }
- { host: "hg.example.com", key: "ssh-rsa AAAAB3NzaC1ycAAr5zYb... user@host" }
# 向默认的 known_hosts 文件添加主机公钥并哈希化主机名
- name: Add a host key to known_hosts with hashed hostnames
ansible.builtin.known_hosts:
host: git.example.com
key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr5zYb... user@host
hash_host: yes
# 从 known_hosts 文件中删除主机公钥
- name: Remove a host key from known_hosts
ansible.builtin.known_hosts:
path: /home/user/.ssh/known_hosts
host: git.example.com
state: absent
Ansible相关文章推荐
原文地址:https://blog.csdn.net/weixin_49224830/article/details/143721467
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!