使用ansible_ssh_private_key_file为每个主机定义ssh密钥
时间:2019-11-20 08:54:19 来源:igfitidea点击:
在Ansible中,如何为每个主机设置不同的ssh密钥?
Ansible是免费的开源IT软件,可自动执行软件供应,配置管理和应用程序部署。可以使用Ansible在EC2中创建云主机,修补服务器,添加用户,配置路由器/防火墙等。
Ansible使用SSH登录到远程服务器并执行管理任务。
为每个主机定义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示例
创建hosts文件:
$ vim ~/projects/ansible/hosts
host文件示例:
[my_servers] 1.2.3.4 ansible_ssh_private_key_file=/home/Hyman/.ssh/id_ed25519.pub 192.168.1.100 ansible_ssh_private_key_file=~/.ssh/test.pem www1 ansible_ssh_private_key_file=~/.ssh/ali1.rsa.pub
另一个示例:
[ali] ali-nginx1 ansible_ssh_private_key_file=/path/to/file ali-nginx2 ansible_ssh_private_key_file=/path/to/file [tx] tx-nginx1 ansible_ssh_private_key_file=/path/to/file tx-nginx2 ansible_ssh_private_key_file=/path/to/file
或者不同组使用不同密钥:
[ali] ali-nginx1 ali-nginx2 [tx] tx-nginx1 tx-nginx2 [ali:vars] ansible_ssh_user=Hyman ansible_ssh_private_key_file=/home/Hyman/.ssh/linode.id_ed25519.pub [tx:vars] ansible_ssh_user=ec-2 ansible_ssh_private_key_file=/home/Hyman/.ssh/aws-ec2-usa-east.pem
Ansible测试
如何使用Ansible命令:
$ ansible-playbook -i hosts my-book.yml --check $ ansible ali -i hosts --list-hosts $ ansible tx -i hosts --list-hosts