@pro_ansible

Страница 283 из 625
A
06.10.2017
18:16:15
чет анекдот впомнился про рабочего который начал убирать рабочее место за 15 минут до конца рабочего дня

A
06.10.2017
18:17:52
ну, к нему начальник подходит и начинает, "посмотри на часы, петрович, без пятнадцати шесть, тебе еще четверть часа смену работать, а ты уже собираешься! я вот до самого конца рабочего дня работаю!" - ну а хули тебе собираться, ебальник закрыл и пошел

Google
Anton
06.10.2017
18:19:41
Ну вот да, разница примерно такая же, лол.

Gaiaz Iusipov
06.10.2017
21:04:43
Всем доброй ночи/утра =) у меня сходу вопрос есть. Мне ансибл нужен для деплоя пхп приложения. Сценарий такой: клонирую локально в /tmp/ansible-build подгружаю зависимости, собираю бэк и фронт деплою через rsync сборку проблема: при клонировании из гита репозиторий на текущую локальную машину постоянно ругается на то, что нет прав при клонировании для теста пробую на общедоступном репозитории (но специально в git протоколе а не https) git@github.com:symfony/symfony-standard.git - публичный репозиторий и все равно ругается на permission denied

Denis 災 nobody
06.10.2017
21:09:01
Из пакета став..

Gaiaz Iusipov
06.10.2017
21:10:29
так а может он не может тупо в файл писать? покажи ошибку
может, если репозиторий публичный и через https то все ок

TASK [Check out a git repository] ********************************************************* fatal: [localhost -> localhost]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone —origin origin '' /tmp/ansible-build", "failed": true, "msg": "Cloning into '/tmp/ansible-build'...\nLoad key \"/home/gaiaz/.ssh/id_rsa.pub\": invalid format\r\nPermission denied (publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.", "rc": 128, "stderr": "Cloning into '/tmp/ansible-build'...\nLoad key \"/home/gaiaz/.ssh/id_rsa.pub\": invalid format\r\nPermission denied (publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.\n", "stderr_lines": ["Cloning into '/tmp/ansible-build'...", "Load key \"/home/gaiaz/.ssh/id_rsa.pub\": invalid format", "Permission denied (publickey).", "fatal: Could not read from remote repository.", "", "Please make sure you have the correct access rights", "and the repository exists."], "stdout": "", "stdout_lines": []}

A
06.10.2017
21:11:15
Load key \"/home/gaiaz/.ssh/id_rsa.pub\": invalid format

на ~/.ssh и ниже должны стоять права правильные - запрет читать, писать и заходить всем кроме владельца

chmod -R go-rwx ~/.ssh

Denis 災 nobody
06.10.2017
21:12:38
600 на многих файлах

A
06.10.2017
21:13:08
бееез руля

может там еще и гадость какая-нибудь вместо публичного ключа

Gaiaz Iusipov
06.10.2017
21:13:33
так я ж в консоли из под себя запускаю, так, сейчас попробую скопировать ключи куданибудь в публичное место для теста

Google
A
06.10.2017
21:14:38
а, это git ругается, а не ssh

и я не ляпнул а сказал. подумав. я просто неправ скорее всего.

Anton
06.10.2017
21:15:09
а, это git ругается, а не ssh
SSH дальше ругается.

Gaiaz Iusipov
06.10.2017
21:16:43
ой, дал в попыхах 777 на ключи, а ssh оказывается с такими ключами работать))

Gaiaz Iusipov
06.10.2017
21:16:58
(всмысле на копии ключей временные)

Anton
06.10.2017
21:17:59
ой, дал в попыхах 777 на ключи, а ssh оказывается с такими ключами работать))
@pzskc383, бгг, не зря про права сказал, но как видишь - это ему не помогло не поставить кривые уже после предупреждения.

Gaiaz Iusipov
06.10.2017
21:18:59
ssh -v git@github.com покажи.
все ок с ключами, не сломанные. Я так понял ансибл не подомной их считать пытается и поэтому ошибка

Gaiaz Iusipov
06.10.2017
21:20:32
nPermissions 0444 for '/tmp/ssh/id_rsa.pub' are too open.\r\nIt is required that your private key files are NOT accessible by others.\r\nThis private key will be ignored.

проверяю, но что делать если ssh не дает использовать ключи с правами 444 например

Anton
06.10.2017
21:21:52
600 или 400 должно быть.

Gaiaz Iusipov
06.10.2017
21:23:16
а под какими пользователем это выполнится? или как сделать чтобы подомной выполнялось? (запускаю руками из консоли) tasks: - name: Check out a git repository local_action: git args: repo: "{{ git_repo }}" dest: "{{ build_path }}" # version: "{{ git_branch }}" accept_hostkey: true # update: yes # force: yes key_file: "/tmp/ssh/id_rsa.pub" clone: yes

A
06.10.2017
21:24:49
выполнится от того пользователя под которым подключается ансибль если не стоит become: true, тогда от пользователя из переменной become_user

дерни что-то типа ansible -m raw -a "id" и посмотри

Gaiaz Iusipov
06.10.2017
21:28:11
да, проблема в том, что я никак не могу вкурить принцип взаимодействия плейбуков и инвентаря > cat hosts.yaml all: hosts: localhost: ansible_connection: local gather_facts: no become_user: gaiaz

дерни что-то типа ansible -m raw -a "id" и посмотри
> ERROR! Missing target hosts я тупой, -i hosts.yml не сработало тут

A
06.10.2017
21:29:31
да, там нужно еще таргет хост указать, на каком (каких) ты хочешь выполнить этот модуль

эм, а у тебя кроме локалхоста есть машины?

Gaiaz Iusipov
06.10.2017
21:32:35
В конфиге пока что нет. А вообще есть, но всего 2. Там несколько тасков простых: создать папочку, rsync и симлинк.

Google
Gaiaz Iusipov
06.10.2017
21:33:50
Спасибо, самое главное что наконец пришло понимание (возможно конечно ошибочное), и цель куда копать. Надо разобраться чтоб локальные команды из под меня выполнялись ?

если кому-то интересно вот нашел удобный кусок для дебага: - name: get the username running the deploy local_action: command whoami register: username_on_the_host - debug: var=username_on_the_host

блин key_file это приватный ключ (хотя я пробовал но видать не заметил что ошибка менялась)

?

В сухом остатке на сегодня 1) Приватный ключ видит ~/.ssh/id_rsa (ошибки формата нет) 2) passphase не спрашивает (для моего ключа соответственно нужен) 3) пробую на публичном гитхаб репозитории (для локализации проблемы) 4) Текст ошибки: Failed to download remote objects and refs: Permission denied (publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists. хотя репозиторий публичный. 5) в таком виде работает: - name: Manual git clone local_action: command git clone git@github.com:symfony/symfony-standard.git /tmp/ansible-build/test (Не работает через git модуль)

Последняя проблема решена: git модуль ансибла не умеет работать с passphase

Anton
06.10.2017
22:29:18
У тебя на ключе пароль был?

Gaiaz Iusipov
06.10.2017
22:31:32
ну да, я же в предыдущем сообщении в пункте 2 написал

Anton
06.10.2017
22:33:22
Да я и подумать не мог, что ты копию тоже с паролем оставишь. Да, модуль не умеет в пароль, да и не должен. Пароль же вводить некому. ?

A
06.10.2017
22:33:25
вообще для юзера который деплоит и которому не надо пушить лучше создать отдельный ключ

Gaiaz Iusipov
06.10.2017
22:51:13
да, спасибо, так и сделаю

ну былоб неплохо написать в модуль проверку на такие ситуации, хуже от этого точно не стало бы

Pavel
07.10.2017
17:21:25
Ну почему ансибол такое говно

Его лекс. анализатор даже не может подсказать где ошибка в синтаксисе не говоря уже о семантике

The error appears to have been in 'db_migrate.yml': line 5, column 3, but may be elsewhere in the file depending on the exact syntax problem."Может быть тут, а может быть там, я ничо не знаю я тупой ансибол"

Тогда бы все инструменты были одинаково полезны в руках гениев? ;)

Но это противоречит мантре "для каждой задачи - свой инструмент"

У инструмента нет интеллекта в отличие от гипотетического "админа". Не путай теплое и мягкое.

Конкретно инструмент описания данных под название "YAML" не подходит для задач описания логики, в которых нужен хоть сколько-то нетривиальный семантический анализ ошибки.

Причем довольно убогий язык.

Google
Pavel
07.10.2017
17:40:51
А че там stonic? Заглох? =)

Dmitrii
07.10.2017
17:41:45
Ансибл реально заебал

Я до сих пор сижу на 2.2.3

Pavel
07.10.2017
17:42:10
А может солт лучше в этом плане? или пуппет какой-нибудь? Я уже на все готов.

Dmitrii
07.10.2017
17:43:32
Я постепенно все больше и больше обкладываюсь packer'ом и terraform'ом

Dmitrii
07.10.2017
17:44:05
Чтобы не зависеть от идемподентности (точнее глюков) запусков Ансибла

Щас вот проде автостейджинги для пайплайна почти доделал. Пакером собираю AMI, провиженю через ансибл один раз и все. Дальше использую как базоый образ. В пайплайне заменяю только хост приложения и маплю DNS на новый инстанс. Никаких запусков ансибла более которые длятся вечность )

Pavel
07.10.2017
17:46:22
Кстати да

Хождение ансиблом через бастион хост очень сильно тормозит его работу

Dmitrii
07.10.2017
17:46:47
Не очень сильно

А ебать как сильно

Особенно через бастион в us-west-1

Pavel
07.10.2017
17:47:24
на баше херач
Идея огонь. Хочется какой-то крутой абстракции над башем и чтобы можно было прозрачно работать с хостами и их именованием, нормально видеть логи исполняющихся команд и дебажить ошибки

Щас у меня тривиальная задачка по заливке дампа БД с одного хоста на другой, где в другой ходим через бастион, превратилась в какое-то адище и борьбу с глобальными фактами и переменными, модуль synchronize высирает какой-то непонятный статус с километровыми строчками запуска ssh/rsync команд c кучей параметров

Dmitrii
07.10.2017
17:52:03
О, я такое на ансибле сделал у себя

Оно еще и ноду в амазоне поднимать умеет )))

Pavel
07.10.2017
17:52:15
Хотя тут наверное действительно моя вина, ансибол это все же инструмент для приведения множества хостов к определенному состоянию, а не для выполнения администраторских задач по взаимодействию между хостами

Dmitrii
07.10.2017
17:52:20
И дампит с RDS'а

Могу дать хинт

Google
Pavel
07.10.2017
17:52:53
дай

Dmitrii
07.10.2017
17:52:53
Не пытайся перекидывать с ремоута на ремоут если есть бастион

You shall not pass

Pavel
07.10.2017
17:53:06
Бля, отличный хинт

Страница 283 из 625