我是Ansible的新手。我能夠測試它,並且能夠滿足我的測試要求。爲了在管理節點和客戶機節點之間建立連接,我使用了已經創建的ssh密鑰對。我怎樣才能使用不同的SSH密鑰對的另一個節點?作爲參考,我正在考慮使用不同密鑰對的3 ec2實例。Ansible與多個SSH密鑰對
28
A
回答
34
好消息 - 在基本用例中,這很容易。只需在Ansible inventory中使用ansible_ssh_private_key_file
參數即可。
下面是我個人的文件盜取一些例子:
$ cat hosts.ini
[server1]
54.1.2.3 ansible_ssh_private_key_file=~/.ssh/server1.pem
[testservers]
ec2-54-2-3-4.compute-1.amazonaws.com ansible_ssh_private_key_file=~/.ssh/aws-testserver.pem ansible_ssh_user=ubuntu
ec2-54-2-3-5.compute-1.amazonaws.com ansible_ssh_private_key_file=~/.ssh/aws-testserver.pem ansible_ssh_user=ubuntu
[piwall]
10.0.0.88 ansible_ssh_private_key_file=~/.ssh/raspberrypi.pem ansible_ssh_user=pi
21
tedder42是正確的,然而,有這樣做的更好的方法。
請參閱ansible_ssh_private_key_file
here。
我在我的主機文件中的以下
# SSH Keys configuration
[all_servers:vars]
ansible_ssh_private_key_file = <YOUR PRIVATE KEY LOCATION>
# Server configuration
[all_servers:children]
elastic_servers
nginx_servers
[elastic_servers]
44.22.11.22
44.55.66.77
22.11.22.33
[nginx_servers]
22.24.123.123
233.111.222.11
如果你有多個按鍵的配置,你可以這樣做以下
[nginx:vars]
ansible_ssh_private_key_file = <YOUR PRIVATE KEY LOCATION>
[app:vars]
ansible_ssh_private_key_file = <YOUR 2nd PRIVATE KEY LOCATION>
[nginx:children]
nginx_servers
[app:children]
app_servers
[nginx_servers]
1.2.3.4
[app_servers]
5.5.5.5
6.6.6.6
這比tedder42答案的方式清潔。如果您有多個服務器的密鑰,這很有用。
否則,您可以將您的密鑰包含在ansible.cfg文件中。
相關問題
- 1. Ansible:更改SSH密鑰
- 2. 使用ansible另一個SSH密鑰
- 3. Ansible 2.3和Cisco IOS SSH密鑰驗證
- 4. Ansible無法與ssh連接,但是我可以(使用ssh密鑰)
- 5. 使用cron與ssh密鑰
- 6. Ansible與多個堡壘主機和ssh密鑰恢復到〜/ .ssh/id_rsa而不是指定的pem文件
- 7. 如何使用多個ssh密鑰
- 8. 多個git帳戶和ssh密鑰
- 9. Azure ACS:kubectl的多個SSH密鑰
- 10. 使用TeamCity管理多個SSH密鑰
- 11. 管理heroku上的多個ssh密鑰
- 12. 可以Ansible只公開SSH密鑰詢問密碼一次嗎?
- 13. ansible:使用ssh密鑰認證但多次詢問密碼 - 爲什麼?
- 14. Ansible Amazon EC2。密鑰對不存在
- 15. 如何在〜/ .ssh目錄管理多個SSH密鑰
- 16. 保護SSH密鑰
- 17. SSH密鑰短語
- 18. AWS EC2 SSH密鑰
- 19. SSH密鑰交換
- 20. 共享SSH密鑰
- 21. Google Cloud SSH密鑰
- 22. Ansible:如何配置沒有ssh密鑰的跳轉主機?
- 23. 如何通過ansible將ssh密鑰添加到位桶賬戶?
- 24. Azure Add-AzureProvisioningConfig ssh密鑰或密鑰對上傳
- 25. 共享SSH密鑰在多臺主機
- 26. OSX SSH密鑰似乎無法與git
- 27. Perl Net :: SSH ::任何與密鑰交換
- 28. ssh密鑰設置問題與id_rsa *
- 29. 使用ansible對加密AWS .pem密鑰文件進行加密
- 30. SSH密鑰對 - 添加到EC2實例
感謝泰德對我的工作很好。是否可以爲同一組的所有服務器使用相同的密鑰?我的意思是說,根據上面的例子,如果我對10臺測試服務器有相同的密鑰,那麼我必須分別爲所有測試服務器指定關鍵細節。任何解決方案都在那裏,以便我可以爲同一組的所有服務器傳遞相同的密鑰。謝謝 – 2014-10-09 07:39:23
@sumitkumar據我所知,你不能將hosts.ini中的變量分組。但是,您可以使用[ssh_config](http://linux.die.net/man/5/ssh_config)文件,這可能會有所幫助。 – tedder42 2014-10-09 15:18:18
你當然可以:http://docs.ansible.com/intro_inventory.html#group-variables [testservers:瓦爾] ansible_ssh_private_key_file =的〜/ .ssh/AWS-testserver.pem – oley 2015-03-24 17:48:36