AlphaHydrae.ssh-key
Ansible SSH 密钥
Ansible 角色,用于为用户生成 SSH 密钥。
将 ssh_key_root_link
设置为 true
将把密钥符号链接到 root 用户的 .ssh 目录中。
角色变量
SSH 密钥属性
ssh_key_user
(或user
)- 必需 - 要为其生成 SSH 密钥的用户(默认为user
变量的值)。ssh_key_bits
[整数]
- 生成的密钥的位数(默认为 8192)。ssh_key_comment
- SSH 密钥块末尾的注释(默认为{{ ssh_key_user }}@{{ ansible_hostname }}
,例如jdoe@mycomputer
)。
非 root 用户的 SSH 密钥位置
ssh_key_dir
- 密钥将生成的 .ssh 目录(默认为{{ host_user_homes }}/{{ ssh_key_user }}/.ssh
,其中host_user_homes
是由 AlphaHydrae.multipass 角色提供的)。ssh_key_file
- SSH 密钥文件的位置(默认为{{ ssh_key_dir }}/id_rsa
)。
root 用户的 SSH 密钥位置
ssh_key_root_dir
- root 用户的 .ssh 目录(默认为{{ host_root_home }}/.ssh
;host_root_home
变量由 AlphaHydrae.multipass 角色提供)。ssh_key_root_file
- root 用户的 SSH 密钥文件的位置(默认为{{ ssh_key_root_dir }}/id_rsa
)。
Root 符号链接变量
ssh_key_root_link
[布尔值]
- 是否将生成的密钥符号链接到 root 用户的 .ssh 目录中(默认为false
;如果ssh_key_user
是 root 用户,则无效)。
依赖关系
AlphaHydrae.multipass 角色用于确定用户主目录的位置基础目录。 该角色根据目标主机的平台设置以下事实的合理默认值:
host_root_user
- root 用户的用户名(例如root
)。host_root_group
- root 用户的组(例如root
)。host_root_home
- root 用户的主目录(例如/root
)。host_user_homes
- 用户主目录的位置基础目录(例如,Linux 上为/home
,在 OS X上 为/Users
)。
示例 Playbook
- hosts: servers
roles:
- role: AlphaHydrae.ssh-key
ssh_key_user: jdoe
自定义 SSH 密钥属性
- hosts: servers
roles:
- role: AlphaHydrae.ssh-key
ssh_key_user: jdoe
ssh_key_bits: 2048
ssh_key_comment: my-key
使用已定义的默认用户(例如在 playbook 级别)
- hosts: servers
vars:
user: jdoe
roles:
- role: AlphaHydrae.ssh-key
将密钥符号链接到 root 用户的 .ssh 目录中
- hosts: servers
roles:
- role: AlphaHydrae.ssh-key
ssh_key_user: jdoe
ssh_key_root_link: true