Aleksey
А чего ещё надо не понятно
Aleksey
Енв?
Stripe
Всем привет, может кто подскажет, вот у меня есть 2 сервера, и я делаю настройку для nginx, чтобы он проксировал с сервера А на сервер В. Подскажите как мне получить из енвентори файла ип из группы, чтобы подсавить в конфиг?
Кирилл
добрый вечер делаю учебный плейбук с заливкой файла в док рут, рестарт сервиса в случае если файл изменился и проверка ответа от вебсервера - name: Upload index.html to server copy: src={{ source_file }} dest={{ destin_file }} mode=0555 notify: Restart Apache - name: Check web servers uri: url: http://127.0.0.1/index.html return_content: yes register: this failed_when: "'ololo' not in this.content" handlers: - name: Restart Apache service: name=apache2 state=restarted но судя по логам, происходит не в такой последовательности как я ожидаю Upload index.html to server, проверили, что файл изменен, выполнили Check web servers и только потом вызов Restart Apache
Кирилл
как добиться нужной мне последовательности? аплоад, проверка на изменение файла, рестарт апача, проверка ответа от апача
Grek 🇺🇦
хендлеры отрабатываю в самом конце, можно принудительно вызвать, а можно написать условия, если файл изменился - рестарт вынести рестарт в такой-же таск
Кирилл
а, или вынести проверку результатов в отдельный playbook )
Кирилл
исключительно тренировочные цели )
Кирилл
нашел как правильно сделать register: upload для задания с upload файлом вынес в block два таска по рестарту и проверке ответа от сервера с условием when: upload.changed красота жи
Lamobot
https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html#handlers-running-operations-on-change В конце пример с использованием listen директивы
Кирилл
Можно же два хендлера запустить
спасибо, это тоже вариант но для меня главное было понимание того факта, что handler запускается в конце плейбука
Alex
а я правильно понимаю, что если я хочу задать python interpreter на ansible хосте, то в инвентори мне надо делать запись для localhost и там указывать необходимую версию?
Sergey
На таргете?
Sergey
На контроллере интерпретатор задаётся самим фактом запуска тащем-та.
Alex
нет, речь об ансибл контроллере
Sergey
^^^
Alex
запуском чего?
inqfen
Sergey
запуском чего?
Ансибла. Он же под каким-то конкретным питоном стартует, если что.
inqfen
ансибл некоторый бинарник который выполняется некоторым питоном
Alex
ну вот есть две версии питона - какая стартанет?
inqfen
Может быть и 2 ансибла
Alex
обе через pip
Barthez
Которая будет прописана в env
Sergey
ну вот есть две версии питона - какая стартанет?
Зависит. Обычно та, из которой запилен venv (как вариант - ни одна из полностью установленных в системе)
Sergey
обе через pip
Та, что в venv.
Sergey
Совсем запутали :-)))))))
Alex
у меня нет venv
Barthez
у меня нет venv
Система хоть есть?
Sergey
ты пипом в системный питон ставил что ли?
inqfen
у меня нет venv
значит системный
Alex
значит системный
это который /usr/bin/python ?
Alex
и?
Sebor▂▅▇█▓▒░
это который /usr/bin/python ?
Сделай ansible --version Он тебе и покажет версию питона, с которого стартует
Alex
какого симлинка? И как что то можно понять с этой простыни 😉
Alex
# ansible --version /usr/lib64/python2.7/site-packages/cryptography/__init__.py:39: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in a future release. CryptographyDeprecationWarning, ansible 2.9.12 config file = None configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /bin/ansible python version = 2.7.17 (default, Jun 5 2020, 03:38:32) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] # /usr/bin/python --version Python 3.6.8
Alex
что то не сходится
Sergey
что то не сходится
Что именно? Ансибл у тебя от 2-ки заводится.
Sergey
Всё сошлось.
Alex
Что именно? Ансибл у тебя от 2-ки заводится.
человек выше писал - куда смиотрит симлинк - тот питон и будет юзаться
Alex
я показываю что это не так
Alex
Что именно? Ансибл у тебя от 2-ки заводится.
тогда возвращаемся к изначальному вопросу - как в данной системе завести от 3го?
Sebor▂▅▇█▓▒░
Про такие вещи не стоит говорить нубам, они же сломать все могут))
Aliaksei
Для сервера: Если ансибл установлен пакетом (убунту)то он уже скомпилирован под второй питон. С сервера он будет работать со 2ой версией для local запусков модулей. Если ставился через pip или venv то скорее всего третий. В версии можно посмотреть. Для клиента: Какой будет указан в переменной интерпретатора с той версией и запустится именно уже выполнение плейбуков.
Sebor▂▅▇█▓▒░
inqfen
тогда возвращаемся к изначальному вопросу - как в данной системе завести от 3го?
если ты хочешь системный - удоли текущий и сделай pip3 install ansible
Sebor▂▅▇█▓▒░
Alex
🤦🤦🤦
я показал вывод
Alex
оба ансибла для 2го и 3го питона поставлены через свои pip’ы
Alex
дефолтный в системе второй питон
Alex
как мне запустить ансибл с 3м питоном
Vlad
В ubuntu ansible на python 3 https://packages.ubuntu.com/focal/ansible
Alex
а кто сказал что речь об RH8?
Alex
сами додумали? ))
Vlad
А в centos 7 есть ansible и ansible-3
Sebor▂▅▇█▓▒░
#язабан
Alex
#язабан
отвечать надо на вопросы - а не додумывать и предполагать
Alex
https://t.me/pro_ansible/155883
без venv никак?
Никита
Никита
и куда это?
в варсы
Никита
Гугл открой
Alex
ну неее
Никита
первая ссылка по запросу
Никита
и вторая
Никита
и т.д.
Alex
еще раз перечитай мой изначальный вопрос
Sergey
без venv никак?
Я навскидку не помню, куда именно будет ставить pip3 пакеты, тем более, что у тебя мак-фигак.
Alex
чтобы не давать глупых советов
Alex
🤦🏻
угу