Анатолий
ты делаешь delegate_to
Alexandr
имхо, православнее сделать через local_action
Pavel
я ток не понял его синтаксиса
Pavel
вот пример из доки
Pavel
# ... tasks: - name: Send summary mail local_action: module: mail subject: "Summary Mail" to: "{{ mail_recipient }}" body: "{{ mail_body }}" run_once: True
Pavel
я пробовал следующее
Pavel
- name: Copy SSL files to sync directory local_action: module: synchronize src: ../ssl dest: ../nginx/ recursive: yes
Pavel
не работает
Pavel
он все равно ломится на IP хоста app
Pavel
@alexandr_revko, такой формат верный? https://t.me/pro_ansible/87863
Alexandr
судя по доке, не получится через synchronize локально засинкать. ибо это врапер над rsync
Timur
Модуль synchronize по умолчанию и так использует в качестве источника путь на локальной машине
Timur
delegate_to не нужен
Pavel
delegate_to не нужен
да, но тогда он ломанется на хост app за папкой dest
Alexandr
ну он для этого и создан
Timur
И в чем проблема?
Pavel
ну да
Pavel
И в чем проблема?
мне нужно локально скопировать одну папку в другую
Timur
Делай отдельный плей на локалхост тогда
Pavel
и что же не лол?
Timur
Зачем это делать в плее для другого хоста?
Pavel
потому что этот плейбук выполняется на машине app, а она, уже, пытается перенатправить таску на localhost
я правильно понял, что ansible всегда сначала законнектиться к хосту, что указан по умолчанию для всего плейбука, например: - name: Provision environment hosts: app tasks: А что тогда происходит, когда он доходит до таска с delegate_to: localhost? Он должен вернуться на основную машину и там выполнить или как?
Анатолий
он пытается подконектиться с машины app на твою локальную тачку и выполнить на ней таску
Pavel
ясно
Pavel
спасибо всем
Pavel
в общем решил не заморачиваться. дело в том, что мне папку ssl нужно было положить в nginx, в которую из темплейта генерится конфиг, для последующего синка папки с хостом app. просто сделал синк самой папки ssl. по сути тот же эффект и тоже количество шагов =)
Pavel
- name: Synchronization SSL files synchronize: src: ./../ssl dest: /etc/nginx/ recursive: yes delete: yes - name: Synchronization nginx config synchronize: src: ./../nginx/ dest: /etc/nginx/ recursive: yes delete: yes
Pavel
на локалхосте не принципиально иметь ssl внутри nginx
Sergey
Удалил спам.
Vladimir
Редирект на joycasino в техническом чате? Неплохо. Такой способ спамерской рекламы я ещё не видел)
Tadeusz
Где где
Vladimir
Уже почищено)
.
Народ, здравствуйте. Подскажите пожалуйста, как такую проблему разгребать: при попытке подключения к хосту ансибль говорит "Error: ansible requires the stdlib json and was not found!" Если пойти на хост ручками и установить пакет python-modules-json, то потом всё работает. Это можно с помощью самого ансибля как-то пофиксить? ansible hostname -m apt -a "name=python-modules-json update_cache=yes" -b точно так же не работает.
.
Питон можно поставить через модуль raw
Сам питон стоит, одного пакетика только не хватает. Его через raw тоже же можно доставить тогда, надеюсь?
.
Ага, вроде можно Спасибо, посмотрю.
Timur
Мы обычно делаем так: - name: Install python for Ansible raw: test -e /usr/bin/python || (apt install -y python-minimal) become: True
Timur
И все работает
George
Мы обычно делаем так: - name: Install python for Ansible raw: test -e /usr/bin/python || (apt install -y python-minimal) become: True
да, такое приходится и для ансибла, и для сольта делать. Обратить внимание, что пайтон там 2-й версии ставится. Он скоро депрекейтед
George
мне сложно представить, что тогда будет
Timur
мне сложно представить, что тогда будет
Поменяется команда для установки питона, вот и все
Sun
А не проще ставить третий и симлинк кидать?
George
там не все модули несовместимы (если что - это не прямо про ансибл, а вообще)
George
и системный питон... ну, эт прям беда-беда
George
если бы ансибл не зависел от пайтона на удаленной машине - у меня даже вопросов не было
.
-m raw -a "rpm -q python-modules-json || (apt-get update; apt-get install -y python-modules-json)" -b вот так прокатило :) После трёх минут зловещщего молчания
George
но получается, что ансибл не просто "запускатор команд по SSH"
George
ага
.
"не нужно никаких агентов", говорили они
George
ну, здесь все честно - ансибл САМ ставит пайтон на удаленную тачку
Timur
Нужен работающий питон
.
Ну да, если его особенно попросить об этом
Timur
В нормальных дистрах он стоит по умолчанию
.
Нужен работающий питон
У меня питон был работающий. но вот внезапно одного модуля для ансибля не хватило.
George
они будут говорить, что это случайность
George
))))
George
или исключение
Timur
Пакета minimal для ансибла хватает
Sun
Ну, есть ещё вариант запускать питон из докера и скрипт в bin вместо бинарника. :) Нормально работает, я проверял. #! /bin/bash docker run --rm -it python #@
.
Пакета minimal для ансибла хватает
Пакета minimal - где, в каком дистрибутиве?
.
В любых debian-based
А, ну мир ими не ограничивается, славабогу
George
так что за дистриб? просто интересно
George
не для стеба
.
ALTLinux P8
Timur
А, ну мир ими не ограничивается, славабогу
В посте выше речь шла о Debian явно
Timur
А, ну мир ими не ограничивается, славабогу
В redhat-based обычно питон уже есть искаропки
Timur
Вот в этом
Timur
Народ, здравствуйте. Подскажите пожалуйста, как такую проблему разгребать: при попытке подключения к хосту ансибль говорит "Error: ansible requires the stdlib json and was not found!" Если пойти на хост ручками и установить пакет python-modules-json, то потом всё работает. Это можно с помощью самого ансибля как-то пофиксить? ansible hostname -m apt -a "name=python-modules-json update_cache=yes" -b точно так же не работает.
.
В redhat-based обычно питон уже есть искаропки
Да, с RHEL6/7 проблем нет, с RHEL5 там вообще питон уже не тот, заставить работать пока не удалось.