Wadik
получается мне нужно выложить ключ туда , где у пользователя есть к нему доступ и указывать путь к этому файлу или в ansible.cfg в переменной DEFAULT_PRIVATE_KEY_FILE путь к этому файлу
Wadik
я верно понимаю ?
Timur
Добрый день! Сразу скажу, гуглил/искал в этой конфе способы решения. Мне нужно в переменной передать кириллицу, но я получаю: Error was a <type 'exceptions.UnicodeDecodeError'>, original message: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)" Ansible устанавливается в докер образе: https://pastebin.com/h2MxJjqJ И оттуда же запускается. Прошу вашей помощи
Timur
Я не понимаю каким образом это можно сделать
Anastasia
Я уже надоел или пургу несу ) ?
да, извините, что не ответила. Где у пользователя будет доступ к ключу, попробуйте
Anastasia
😁
я ни в коем случае не имела в виду, что вы надоели или несете пургу!
Timur
проверьте локаль
locale LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL=
Timur
locale -a C C.UTF-8 POSIX
Aleksey
если нет иного, переключите на C.UTF-8
Aleksey
я не знаю ответа. это версия
Wadik
да, извините, что не ответила. Где у пользователя будет доступ к ключу, попробуйте
не хотит ( <10.0.80.12> ESTABLISH SSH CONNECTION FOR USER: root <10.0.80.12> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o 'IdentityFile="/home/ansible/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=root -o ConnectTimeout=10 -o ControlPath=/home/ansible/.ansible/cp/eece28c0bd 10.0.80.12 '/bin/sh -c '"'"'echo ~root && sleep 0'"'"'' <10.0.80.12> (255, b'', b'Load key "/home/ansible/id_rsa": Permission denied\r\nroot@10.0.80.12: Permission denied (publickey,password).\r\n') fatal: [10.0.80.12]: UNREACHABLE! => { "changed": false, "msg": "Failed to connect to the host via ssh: Load key \"/home/ansible/id_rsa\": Permission denied\r\nroot@10.0.80.12: Permission denied (publickey,password).", "unreachable": true
Anonymous
Hello guys!
Grek 🇺🇦
Hello guys!
хау мач?
Anonymous
Hope I'm being welcomed here?
Anonymous
Depends :-)
Or what?? Lol
Wadik
отлично! теперь все работает?
Ну доступ есть ) Теперь осталось понять как правильно защитить этот ключ и как правильно указывать его
Wadik
ну и правильно настроить мой lineinfile )
Sergey
Or what?? Lol
It's really easy: this chat is all about Ansible. Feel free to ask questions about it, talk about it, discuss it (sometimes whine at it). But any advertisement or promotion attempt will summon a ban ASAP.
Wadik
а зачем вы ходите рутом на машины?
хотелось быстрей начать использовать возможности ansible , не заморачиваясь с настройкой судо и прочее
Anastasia
Запускали бы тогда от рута ансибл и не было проблем с ключом)
Wadik
Запускали бы тогда от рута ансибл и не было проблем с ключом)
Слишком просто ) А вообще интересно было , ибо не когда не сталкивался с ssh_key
Timur
если нет иного, переключите на C.UTF-8
Установил LANG=ru_RU.UTF-8 LANGUAGE= LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=ru_RU.UTF-8 Та же ошибка
Timur
А так же работало на предыдущем сервере
Alex
+
а саму локаль то сгенерили? Что за дистр?
Aleksey
+
а вы точно в систему ставили только ansible deb?
Timur
Ansible в докер образе: https://pastebin.com/h2MxJjqJ
Aleksey
Ansible в докер образе: https://pastebin.com/h2MxJjqJ
там сборка докера. т.е. вы запускаете внешний скрипт ансиблом из контейнера?
Timur
Есть стек: 1. gitlab ci\cd 2. ansible По событию запускается определенный плейбук на серваке гитлаба, в образе который я скинул
Timur
Т.е. гитлаб использует мой образ
Aleksey
а где кириллица? как она туда попадает?
Timur
а саму локаль то сгенерили? Сейчас пытаюсь сделать это
Timur
Переменные CI_* с гитлаба Так же могут иметь кириллицу
Timur
а саму локаль то сгенерили? Что за дистр?
Теперь в самой ошибке начала отображаться кириллица Было: TASK [Pipeline start signal to discord] **************************************** fatal: [82.202.160.198]: FAILED! => {"msg": "An unhandled exception occurred while templating '????????? ???????: **?{{ lookup('env','CI_COMMIT_TITLE') }}?** {{ lookup('env','CI_COMMIT_DESCRIPTION') }} ????? ??????? {{ lookup('env','GITLAB_USER_NAME') }}'. Error was a <type 'exceptions.UnicodeDecodeError'>, original message: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)"} Стало: TASK [Pipeline start signal to discord] **************************************** fatal: [82.202.160.198]: FAILED! => {"msg": "An unhandled exception occurred while templating 'Сообщение коммита: **«{{ lookup('env','CI_COMMIT_TITLE') }}»** {{ lookup('env','CI_COMMIT_DESCRIPTION') }} Автор коммита {{ lookup('env','GITLAB_USER_NAME') }}'. Error was a <type 'exceptions.UnicodeDecodeError'>, original message: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)"}
Aleksey
вообще жуткая генерация. я правильно понял, что собака в COMMIT_MESSAGE? попробуйте его переписать через > чтобы избавиться от кавычек
Timur
т.е. вместо COMMIT_MESSAGE: "text" COMMIT_MESSAGE: <text> ??? Или Вы про «»?
Timur
Если про кавычки ёлочкой, то я их уже пробовал убирать
Timur
русский в гит коментах - это зло )))
Я понимаю, но пока что не могу на это повлиять
Aleksey
Я понимаю, но пока что не могу на это повлиять
что в позиции 0. он же на неё ругается
Aleksey
Timur
Но если мы хотим использовать переменные, то нам нужны кавычки https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#hey-wait-a-yaml-gotcha
Timur
что в позиции 0. он же на неё ругается
Я не понимаю Вероятно это начало строки, но если заменить кириллицу на английский в переменной COMMIT_MESSAGE, то будет та же ошибка с указанием на позицию 0
Timur
Я попробую
Aleksey
Я попробую
если в ямле указать заполнение через > или | то можно без кавычек. | вам не подойдет, попробуйте через >
Timur
Я нашёл решение! RUN apt -y install python3-pip; RUN pip3 install ansible;
Timur
Всем спасибо
Aleksey
Я нашёл решение! RUN apt -y install python3-pip; RUN pip3 install ansible;
блин! спасибо! мне вот сразу не зашло установка ансибла через deb. везде стараюсь через pip. теперь приму за безусловное правило!
Timur
До этого ансибл использовал версию питона 2.7, через deb
Alex
так что pyenv рулит
Timur
А, наверное нужно экранировать
Aleksey
так что pyenv рулит
это тоже за правило! полностью поддерживаю!
Aleksey
А, наверное нужно экранировать
там надо строку перевести после уголка
Timur
так что pyenv рулит
А можно подробнее?
Alex
А можно подробнее?
https://github.com/pyenv/pyenv
Timur
Т.е. фактически для использования одной и той же версии?
Alex
удобная штука и основную систему не захламляет
Alex
так же удобно тестировать разные версии ансибла/питона
Alex
а в курсе кто - name: Make sure a service is running systemd: state: started name: httpd - name: Make sure a service is running shell: systemctl start httpd и - name: Make sure a service is running service: state: started name: httpd - name: Make sure a service is running shell: service httpd start это все равнозначные таски/команды?
Max
Разные конечно
Max
Через шелл вообще не надо делать. А остальное зависит от оси
Alex
Разные конечно
в каком контексте разные?
Alex
имею ввиду не в контексте ансибла, а в контексте самой ОС