Kubespray с бастионным и настраиваемым SSH-портом + переадресация агента
Можно ли использовать Kubespray с Bastion, но на настраиваемом порту и с переадресацией агента? Если это не поддерживается, какие изменения нужно сделать?
1 ответ
Всегда, так как вы можете настроить это на трех отдельных уровнях: через пользователя хоста ~/.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
или, если он не существует, то создайте group_vars
каталог, содержащий all.yml
файл как дочерний каталог, содержащий ваш файл инвентаря
Если у вас более сложная конфигурация ssh, чем вы хотите закодировать в инвентаризации / командной строке /group_vars, вы также можете дать команду ssh, вызванному ansible, использовать выделенный файл конфигурации через ansible_ssh_extra_args
переменная:
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-адреса.