Я пытаюсь справиться со следующей ситуацией в Ansible playbook:
- создать сервер через API облачного провайдера
- хранить учетные данные root (имя пользователя/пароль) из ответа API
- используйте учетные данные root для входа в систему и размещения ключа SSH
- настроить новых пользователей, отключить вход в систему root и т. д.
Я могу использовать модули authorized_key
и user
для шага 4. У меня есть модуль (собственный) для шага 1 и 2. Как мне выполнить шаг 3? Существуют ли какие-либо существующие решения для программного входа в систему с использованием имени пользователя/пароля? Я НЕ хочу давать их через командную строку.
В принципе, я мог бы построить модуль и для этого. В идеале я хотел бы что-то похожее на:
- task: setup SSH place_ssh_with_passwd: state: present key: /path/to/local/key path: /root/.ssh/authorized_keys user: "{{ server.username }}" password: "{{ server.password }}"
- shell: sshpass -p 'password' scp /path/to/local/key [email protected]:/root/.ssh/authorized_keys
. - person udondan   schedule 13.07.2015