我有一个自定义SSH配置文件,我通常使用如下
ssh -F ~/.ssh/client_1_config amazon-server-01
Run Code Online (Sandbox Code Playgroud)
是否可以指定Ansible将此配置用于某些组?它已经设置了密钥和端口以及用户.我有多个客户端的这种配置,并希望尽可能保持配置分开.
udo*_*dan 19
不完全可能.您可以在以下位置设置ssh参数ansible.cfg:
[ssh_connection]
ssh_args = -F ~/.ssh/client_1_config amazon-server-01
Run Code Online (Sandbox Code Playgroud)
不幸的是,不可能为每个组,库存或其他任何特定的东西定义.
slm*_*slm 15
我相信你可以在你的库存中实现你想要的:
[group1]
server1
[group2]
server2
[group1:vars]
ansible_ssh_user=vagrant
ansible_ssh_common_args='-F ssh1.cfg'
[group2:vars]
ansible_ssh_user=vagrant
ansible_ssh_common_args='-F ssh2.cfg'
Run Code Online (Sandbox Code Playgroud)
然后,您可以随心所欲地构建 SSH 配置文件,例如:
$ cat ssh1.cfg
Host server1
HostName 192.168.1.1
User someuser
Port 22
IdentityFile /path/to/id_rsa
Run Code Online (Sandbox Code Playgroud)
小智 14
使用Ansible 2,您可以在ansible_ssh_common_args库存变量中设置ProxyCommand.当连接到相关主机时,此变量中指定的任何参数都将添加到sftp/scp/ssh命令行.请考虑以下库存组:
[gatewayed]
foo ansible_host=192.0.2.1
bar ansible_host=192.0.2.2
Run Code Online (Sandbox Code Playgroud)
您可以使用以下内容创建group_vars/gatewayed.yml:
ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q user@gateway.example.com"'
Run Code Online (Sandbox Code Playgroud)
并做到这一点......
您可以在http://docs.ansible.com/ansible/faq.html中找到更多信息
| 归档时间: |
|
| 查看次数: |
23466 次 |
| 最近记录: |