Ansible: разные принудительные команды в авторизованных ключах для каждого ключа - PullRequest
0 голосов
/ 31 марта 2020

Сценарий

Я пытаюсь настроить свой s sh Jumphost с ansible.

У нас есть несколько пользователей, которые подключаются к Jumphost (со своими собственными sh -pubkey) и перенаправляются с помощью принудительной команды в файле author_keys (на jumohost) на целевой сервер. Пользователь на Jumphost соответствует имени сервера назначения.

Например:
Пользователь:
ssh server1@jumphost

файл author_keys для пользователь server1 на Jumphost выглядит следующим образом:
command="sh -c 'ssh -l DEST-USER DEST-HOST ${SSH_ORIGINAL_COMMAND:-}'" ssh-rsa ZZZZZ
например: command="sh -c 'ssh -l peter server1 ${SSH_ORIGINAL_COMMAND:-}'" ssh-rsa pubkeypeter

S sh -подключатель от peter и от jumphost также перечислены в peters useraccount на сервере назначения.

Схема подключения

Ansible Настройка (пока)

Playbook:

---

- hosts: jumphost
  remote_user: root

  tasks:
  - name: Read variables
    include_vars:
        dir: 'vars'
        files_matching: '^jumphost_.*\.yml'


  - name: Deploy SSH-Keys to server1
    authorized_key:
      user: server1
      key: "{{server1_users|map(attribute='sshkey')|join('\n') }}"
      exclusive: true

  - name: Deploy SSH-Keys to server2
    authorized_key:
      user: server2
      key: "{{ server2_users|map(attribute='sshkey')|join('\n') }}"
      exclusive: true

Файл vars / jumphost_server1.yml:

---

server1_users:
  - name: Peter Foo
    sshkey: ssh-rsa AAAABPetersPubkey
    dest_user: peter

  - name: John Foo
    sshkey: ssh-rsa AAAABJohnsPubkey
    dest_user: john

Это прекрасно работает и без проблем. Сгенерированный файл author_keys на Jumphost выглядит так:

ssh-rsa AAAABPetersPubkey
ssh-rsa AAAABJohnsPubkey

проблема

Мне нужно некоторое содержимое stati c и переменная dest_user для каждого ключа, который будет записан в авторизованных ключах файл, чтобы он выглядел как в примере выше.

Я знаю, что могу добавить свои параметры в переменную sshkey, но это не совсем то, что я хочу. Мне нужно выделить эту опцию отдельно.


Заранее спасибо за вашу помощь. Я довольно новичок в ansible и сейчас пытаюсь разобраться.

...