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-адреса.

Другие вопросы по тегам