Ansible предоставить значение ansible_ssh_pass из API - PullRequest
0 голосов
/ 17 июня 2020

В настоящее время я предоставляю s sh пользователя и пароль на уровне инвентаря.

enter image description here

И укажите значения из файла переменных и файла хранилища.

playbook_sample
- hosts: localhost
  vars_files:
    - ./vars/obdp-ml-password.yml
    - ./vars/vars.yml
  gather_facts: no
  no_log: true
  tasks:
     - .....some tasks......   

Это заставляет меня хранить файл хранилища в GitHub репо. что уродливо. Теперь у меня есть система, в которой я могу получить пароль из REST API. Это пример вывода json для моего вызова отдыха.

{
  "request_id": "xxxx-xxxx",
  "lease_id": "",
  "renewable": false,
  "lease_duration": 0,
  "data": {
    "data": {
      "user": "user_name",
      "password": "some_secret_password"
    },
    "metadata": {
      "created_time": "2020-06-17T11:01:58.496877095Z",
      "deletion_time": "",
      "destroyed": false,
      "version": 1
    }
  },
  "wrap_info": null,
  "warnings": null,
  "auth": null
}. 

Как я теперь могу переопределить значения ansible_ssh_user и ansible_ssh_password, чтобы ansible входил на все хосты, используя учетные данные, полученные из вывода json. Как это правильно?

1 Ответ

0 голосов
/ 17 июня 2020

Вероятно, вам придется написать плагин поиска , который будет извлекать имя пользователя и пароль из вашей пользовательской службы API.

Поскольку вы ничего не сказали о своем конкретном API, и если он если вы уже установили известную службу, возможно, вам повезет и вы найдете существующую , которая соответствует вашим потребностям.

...