Pavel
на шаге rsync
Pavel
вопрос как сделать так чтобы плейбук сам шёл под пользователя xxx и не требовал от меня пас
Pavel
причём что такая проблема только с rsync модулем
Timur
Добавьте в параметры подключения ansible_user
Oleksandr
Pavel
в сам плейбук или в инвентори?
Timur
И так и так можно
Oleksandr
Timur
Но логически правильнее в инвентори
Pavel
"msg": "Failed to connect to the host via ssh: OpenSSH_7.6p1 Ubuntu-4ubuntu0.2, OpenSSL 1.0.2n 7 Dec 2017\r\ndebug1: Reading configuration data /root/.ssh/config\r\ndebug1:
Pavel
добавил
Timur
Pavel
он всё равно лезет рутом
Pavel
[testssh:vars]
ansible_ssh_user=xxx
Pavel
при использовании ansible_user тоже самое
Oleksandr
и become_user:
Pavel
Pavel
в плейбуке нет
Pavel
это может быть в ansible.cfg где-то?
Oleksandr
в коде плейбука или в вызове роли
Oleksandr
Timur
Oleksandr
доступен
Марат
Timur
Timur
Гы
Timur
У меня сразу один вопрос: зачем вам Ансибл, если у вас в коде сплошной баш?
Oleksandr
Pavel
ansible
Oleksandr
значит от него и будет выполняться код, если нет настроек become_*
Pavel
ну вот от него на уровне плейбука не происходит переключения
Pavel
только на уровне консоли и запуска самого плейбука из под юзера
Pavel
ладно буду смотреть ansible.cfg
Pavel
мб там что-то намудрил
Timur
Pavel
ну если я делаю su ansible
Pavel
дальше запускаю плейбук
Pavel
всё ок
Timur
Pavel
затем что я пытаюсь понять
Oleksandr
Pavel
почему тоже самое не работает
Pavel
под рутом
Pavel
если я делаю ansible_user=ansible
Oleksandr
я запутался, простите
Oleksandr
проще выкинуть код и показать что там
Pavel
- hosts: testssh
vars:
date: "{{ lookup('pipe', 'date +%Y%m%d-%H%M') }}"
tasks:
- debug: msg="System {{ inventory_hostname }} and {{ lookup('env','USER') }} using Ansible"
- name: Backup Old Dir with GameServer
command: mv /cygdrive/c/Server /cygdrive/c/Server{{date}}
- name: create infrastructure
file:
path: /cygdrive/c/Server
state: directory
- name: Rsync archive to hosts
synchronize:
src: /ftp/server/1.txt
dest: /cygdrive/c/Server
rsync_opts:
- "--progress"
- "-a"
become: yes
become_method: su
become_user: xxx
Timur
Запустите с дебагом (-vvvv) и смотрите параметры подключения, которые ансибл выдает в консоль
Pavel
щас там нет become
Pavel
полей
Oleksandr
become: yes
become_method: su
become_user: xxx
Oleksandr
будет от xxx работать, если прав хватит им стать у текущего юзера
Timur
- name: commit
shell: git add . && git commit -m "$(date +%F) ansible collect-rpm" || echo OK
Как это развидеть, господи? 😱
Pavel
Next authentication method: publickey\r\ndebug1: Trying private key: /root/.ssh/ansible\r\nno such identity: /root/.ssh/ansible: No such file or directory\r\ndebug2: we did not send a packet, disable method\r\ndebug1: No more authentication methods to try.\r\nansible@
Pavel
всё равно под рутом лезет
Pavel
ok: [winsrvalfa] => {
"msg": "System winsrvalfa root using Ansible"
}
Oleksandr
а ты плейбук откуда запускаешь?
Oleksandr
покажи там где запускаешь id
Timur
У вас в .ssh директории есть нужные ключи вообще?
Pavel
с сервака Ansible
Oleksandr
будет тебе ответ
Pavel
в директории ansible/.ssh всё есть
Pavel
консоль
Pavel
онли
Pavel
я дебажу же
Timur
```
set_fact:
a: |
abc
123
Oleksandr
рутом сидишь?
Pavel
да
Oleksandr
не делай так
Pavel
суть в том что так я могу проверить истинность выполения таска
Timur
Oleksandr
нет, это не так
Pavel
у меня есть пользователь не рут основной
Oleksandr