使用ansible_ssh_private_key_file为每个主机定义ssh密钥

时间:2020-01-09 10:38:05  来源:igfitidea点击:

如何设置并告诉Ansible使用不同的ssh密钥?
如何为每个云托管服务提供商配置SSH凭据?

如何对使用Ansible工具管理的服务器使用不同或多个SSH私钥。

Ansible是免费的开源IT软件,可自动执行软件供应,配置管理和应用程序部署。
可以使用Ansible在EC2中创建云主机,修补服务器,添加用户,配置路由器/防火墙等。

Ansible使用SSH,它也允许用户和absbil;登录到远程服务器并执行管理任务。
该页面显示了如何使用Ansible IT自动化工具设置SSH密钥以登录到远程服务器。

每个使用ansible_ssh_private_key_file的主机定义ssh密钥

您需要在列表文件中使用ansible_ssh_private_key_file。
语法非常简单:

host ansible_ssh_private_key_file=/path/to/your/.ssh/file.pub
192.168.2.200 ansible_ssh_private_key_file=/path/to/your/.ssh/id_rsa.pub
104.20.187.5 ansible_ssh_private_key_file=/path/to/your/.ssh/aws.pem

ansible_ssh_private_key_file示例

让我们使用文本编辑器(如vim命令)在~/projects/ansible/hosts中打开一个名为hosts的文件:

$ vim ~/projects/ansible/hosts

示例文件:

[my_servers]
1.2.3.4     ansible_ssh_private_key_file=/home/Hyman/.ssh/id_ed25519.pub
192.54.1.5  ansible_ssh_private_key_file=~/.ssh/Lightsail-us-west-2.pem
www1        ansible_ssh_private_key_file=~/.ssh/Linode-us.rsa.pub
vpn-box1    ansible_ssh_private_key_file=~/.ssh/Linode-us.rsa.pub

另一个例子:

## Ansible with multiple SSH key pair as per server hosting ##
[linode]
www1-li ansible_ssh_private_key_file=/path/to/file
www2-li ansible_ssh_private_key_file=/path/to/file
 
[aws]
www1-aws ansible_ssh_private_key_file=/path/to/file
www2-aws ansible_ssh_private_key_file=/path/to/file
 
[google_cloud]
www1-gcp ansible_ssh_private_key_file=/path/to/file
www2-gcp ansible_ssh_private_key_file=/path/to/file

可以将其分组如下:

[linode]
www1-li 
www2-li 
 
[aws]
www1-aws
www2-aws
 
[google_cloud]
www1-gcp
www2-gcp
 
[linode:vars]
ansible_ssh_user=Hyman
ansible_ssh_private_key_file=/home/Hyman/.ssh/linode.id_ed25519.pub
 
[aws:vars]
ansible_ssh_user=ec-2
ansible_ssh_private_key_file=/home/Hyman/.ssh/aws-ec2-usa-east.pem
 
[google_cloud:vars]
[email protected]
ansible_ssh_private_key_file=/home/Hyman/.ssh/google_compute_engine.pem
 
[freebsd]
aws_freebsd_1
aws_freebsd_2
aws_freebsd_3
 
[freebsd:vars]
ansible_python_interpreter=/usr/local/bin/python
ansible_ssh_user=Hyman
ansible_ssh_private_key_file=/home/Hyman/.ssh/freebsd-aws-lightsail.pem

如何空运行并测试您的库存或剧本

您可以要求Ansible不做任何更改;相反,请尝试预测这些文件中的一些差异:

$ ansible-playbook -i hosts my-book.yml --check
$ ansible freebsd -i hosts --list-hosts
$ ansible aws -i hosts --list-hosts
$ ansible google_cloud -i hosts --list-hosts

所有可用的SSH连接配置选项的列表

  • ansible_port = 2020:ssh端口号,如果不是22
  • ansible_user = Hyman:要使用的默认ssh用户名。
  • ansible_ssh_private_key_file =/path/to/ssh.pem:ssh使用的私钥文件。如果使用多个密钥并且您不想使用SSH代理,则很有用。
  • ansible_python_interpreter =/usr/local/bin/python:目标主机python路径