Pavel
на шаге rsync
Pavel
вопрос как сделать так чтобы плейбук сам шёл под пользователя xxx и не требовал от меня пас
Pavel
причём что такая проблема только с rsync модулем
Timur
Добавьте в параметры подключения ansible_user
Pavel
в сам плейбук или в инвентори?
Pavel
remote_user: bebebe
я всё это пробовал
Timur
И так и так можно
Oleksandr
я всё это пробовал
должно работать
Timur
Но логически правильнее в инвентори
Oleksandr
Но логически правильнее в инвентори
или в переменные окружения/группы/хоста
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
добавил
Pavel
он всё равно лезет рутом
Pavel
[testssh:vars] ansible_ssh_user=xxx
Oleksandr
он всё равно лезет рутом
значит где-то есть become: yes
Pavel
при использовании ansible_user тоже самое
Oleksandr
и become_user:
Pavel
в плейбуке нет
Pavel
это может быть в ansible.cfg где-то?
Oleksandr
в коде плейбука или в вызове роли
Oleksandr
Timur
https://hastebin.com/jobopoduko.pl
Сайт недоступен
Oleksandr
доступен
Марат
Сайт недоступен
открываеца
Oleg
Сайт недоступен
https://pastebin.com/ANM0LLR3
Timur
Timur
Гы
Timur
У меня сразу один вопрос: зачем вам Ансибл, если у вас в коде сплошной баш?
Pavel
в коде плейбука или в вызове роли
нет тут специально просто host(с одним хостом) и host:vars там нет роли,я не усложнял структуру чтобы дебажить в чём дело.
Pavel
ansible
Oleksandr
значит от него и будет выполняться код, если нет настроек become_*
Pavel
ну вот от него на уровне плейбука не происходит переключения
Pavel
только на уровне консоли и запуска самого плейбука из под юзера
Pavel
ладно буду смотреть ansible.cfg
Pavel
мб там что-то намудрил
Pavel
ну если я делаю su ansible
Pavel
дальше запускаю плейбук
Pavel
всё ок
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 всё есть
Oleksandr
с сервака Ansible
консоль или awx/jenkins/gitlab/etc?
Pavel
консоль
Pavel
онли
Pavel
я дебажу же
Timur
``` set_fact: a: | abc 123
Oleksandr
рутом сидишь?
Pavel
да
Oleksandr
не делай так
Pavel
суть в том что так я могу проверить истинность выполения таска
Timur
да
лол
Oleksandr
нет, это не так
Pavel
у меня есть пользователь не рут основной
Oleksandr
суть в том что так я могу проверить истинность выполения таска
в инвентори пропиши конкретного пользователя для подключения