带堡垒和自定义 SSH 端口 + 代理转发的 Kubespray
Kubespray with bastion and custom SSH port + agent forwarding
是否可以将 Kubespray 与 Bastion 一起使用,但在自定义端口上并使用代理转发?如果不支持,需要做哪些改动?
始终如此,因为您可以在三个不同的级别进行配置:通过主机用户的 ~/.ssh/config
,通过 group_vars
的整个剧本,或作为内联配置(即,在命令行上或在清单文件中)。
希望 ssh 配置简单明了:
Host 1.2.* *.example.com # or whatever pattern matches the target instances
ProxyJump someuser@some-bastion:1234
# and then the Agent should happen automatically, unless you mean
# ForwardAgent yes
接下来我会讲到内联配置,因为它更简单一些:
ansible-playbook -i whatever \
-e '{"ansible_ssh_common_args": "-o ProxyJump=\"someuser@jump-host:1234\""}' \
cluster.yaml
或以同样的方式通过库存:
master-host-0 ansible_host=1.2.3.4 ansible_ssh_common_args="-o ProxyJump='someuser@jump-host:1234'"
或通过 group_vars
,您可以将其添加到现有的 group_vars/all.yml
,或者如果不存在则创建包含 all.yml
的 group_vars
目录文件作为包含您的清单文件的目录的子目录
如果您的 ssh 配置比您希望在 inventory/command-line/group_vars 中编码的更复杂,您还可以通过 ansible_ssh_extra_args
变量指示 ansible-invoked ssh 使用专用配置文件:
ansible-playbook -e '{"ansible_ssh_extra_args": "-F /path/to/special/ssh_config"}' ...
在我需要访问特定端口上的主机的情况下,我只需将主机的 ~/.ssh/config
修改为:
Host 10.40.45.102
ForwardAgent yes
User root
ProxyCommand ssh -W %h:%p -p 44057 root@example.com
Host 10.40.45.104
ForwardAgent yes
User root
ProxyCommand ssh -W %h:%p -p 44058 root@example.com
其中 10.40.*
是内部 IP。
是否可以将 Kubespray 与 Bastion 一起使用,但在自定义端口上并使用代理转发?如果不支持,需要做哪些改动?
始终如此,因为您可以在三个不同的级别进行配置:通过主机用户的 ~/.ssh/config
,通过 group_vars
的整个剧本,或作为内联配置(即,在命令行上或在清单文件中)。
希望 ssh 配置简单明了:
Host 1.2.* *.example.com # or whatever pattern matches the target instances
ProxyJump someuser@some-bastion:1234
# and then the Agent should happen automatically, unless you mean
# ForwardAgent yes
接下来我会讲到内联配置,因为它更简单一些:
ansible-playbook -i whatever \
-e '{"ansible_ssh_common_args": "-o ProxyJump=\"someuser@jump-host:1234\""}' \
cluster.yaml
或以同样的方式通过库存:
master-host-0 ansible_host=1.2.3.4 ansible_ssh_common_args="-o ProxyJump='someuser@jump-host:1234'"
或通过 group_vars
,您可以将其添加到现有的 group_vars/all.yml
,或者如果不存在则创建包含 all.yml
的 group_vars
目录文件作为包含您的清单文件的目录的子目录
如果您的 ssh 配置比您希望在 inventory/command-line/group_vars 中编码的更复杂,您还可以通过 ansible_ssh_extra_args
变量指示 ansible-invoked ssh 使用专用配置文件:
ansible-playbook -e '{"ansible_ssh_extra_args": "-F /path/to/special/ssh_config"}' ...
在我需要访问特定端口上的主机的情况下,我只需将主机的 ~/.ssh/config
修改为:
Host 10.40.45.102
ForwardAgent yes
User root
ProxyCommand ssh -W %h:%p -p 44057 root@example.com
Host 10.40.45.104
ForwardAgent yes
User root
ProxyCommand ssh -W %h:%p -p 44058 root@example.com
其中 10.40.*
是内部 IP。