Egor
если у тебя в плейбуке указан мегагруп, а в лимите указан хост1, то подхватит
Igor
hosts: all
Egor
если в плейбуке в хостах указан груп1, то групварс от мегагруп не подхватит
Egor
а вообще, ты можешь пользоваться спец ключами
Egor
и смотреть, что он будет делать, без выполнения
Igor
ага надо затестить
Egor
ansible-playbook --check вам в помощь, чтобы не задавать вопросов по базовому функционалу
Антон
коллеги, скажите пожалуйста, можно ли в модуле uri выборочно сохранить результат через register? чтобы не делать доп шага с set_fact
Anonymous
register?
Anonymous
нет
Антон
да
Anonymous
нельзя
Антон
а как-то можно по другому?
Антон
или только двумя шагами?
Anonymous
только двумя
Антон
ясно, спасибо большое
Sergey
Коллеги, подскажите плиз как можно синхронизировать две папки на remote ansible
Sergey
а то вроде как модуль syncronize работает только для синхронизации local to remote , а не для синхронизации папок remote
Sergey
Меня интересует именно использование модуля syncronize как синхронизацию двух директорий на remote хосте типа rsync -a директория а директория б
inqfen
Ну прямо в доке пример же - name: Synchronize two directories on one remote host. synchronize: src: /first/absolute/path dest: /second/absolute/path delegate_to: "{{ inventory_hostname }}"
Sergey
да ну ну он получается подключается сам к себе по ssh
Sergey
и копирует в таком случае, а я нехочу ключ складывать
Sergey
а не вру ключи есть
Anonymous
а то вроде как модуль syncronize работает только для синхронизации local to remote , а не для синхронизации папок remote
внимательно прочитать https://docs.ansible.com/ansible/latest/modules/synchronize_module.html, Если не помогло, то написать User Stories(нафига тебе это надо и какую задачу пытаешься решить).
Anonymous
прям, почему нельзя это сделать, через synchronize
Anonymous
и чтобы ты хотел получить в результате
Sergey
Мне нужно на удаленном хосте синкнуть две директории , модуль COPY не подходит так как ругается что не поддерживает рекурсивно
Sergey
TASK [expresscourier/deploy : RESOURCES DocReport -- update shared resources dir] ************************************************************************ fatal: [atlas-nsk-DocReport]: FAILED! => {"changed": false, "failed": true, "msg": "Unsupported parameters for (synchronize) module: delegate_to. Supported parameters include: _local_rsync_path,_substitute_controller,archive,checksum,compress,copy_links,delete,dest,dest_port,dirs,existing_only,group,links,mode,owner,partial,perms,private_key,recursive,rsync_opts,rsync_path,rsync_timeout,set_remote_user,src,ssh_args,times,verify_host"
Anonymous
а причем тут copy?
Sergey
А сорри ,
Sergey
Я хочу просто синкнуть две локальные директории между собой, если при синхронизации папка отсутствует то ее создать
Sergey
- name: RESOURCES {{ application_name }} -- update shared resources dir synchronize: src: "{{ deploy_to }}/resources_repo/{{ deploy_resources_repo_path }}" dest: "{{ default_cephfs_mountpoint }}/{{ application_name }}/{{ deploy_resources_path }}" delegate_to: "{{ inventory_hostname }}"
Anonymous
и почему нельзя для этого использовать модуль synchronize?
Anonymous
Permission denied (publickey)
Sergey
Ну я должен добавить получается публичнуй ключ свой же
Sergey
в known_hosts на локальной машине , а я так не хочу делать
Anonymous
давайте дальше без меня...
Sergey
Эм , а подскажите плиз как модно проверить что директория не пустая и только тогда выполнять действия
Sergey
точнее если пустая то выполнять , если нет то не выполнять
citius
Эм , а подскажите плиз как модно проверить что директория не пустая и только тогда выполнять действия
Модуль stat. По поводу локальной синхронизации - модулю synchronize можно параметры передавать, в доке пример есть. Посмотри, возможно поможет. Или возможно вообще не получится, не зря же там написано You still may need to call rsync directly via commandor shell depending on your use case.
Sergey
Модуль стат проверяет наличие только файла конкретного или папки
Sergey
а мне нужно проверить что есть ли в одной папке ., какие либо подпапки и файлы
Sergey
ansible 2.3.3.0
Timur
Вы серьезно?
Timur
Обновляться срочно
Sergey
Да мы скоро переедим )
Timur
remote_src supports recursive copying as of version 2.8.
Timur
Намек понятен?
Sergey
Это да ) вопрос тогда , у меня есть джоба которая выполняется на обоих тачках допустим есть общая сетевая шара и получается при запуске каждая нода пытается проделать тоже самое и т.к. это общий сетевой ресурс то возникают конфликты, по этому часть джобов хотелось бы запускать только из {{ ansible_inventory }} только на одной из нод
Sergey
при этом явно не указывать имя
Anatoliy
всм привет
Anatoliy
подскажите, почему этот фильтр не работает? with_items: "{{ ansible_facts.services.* | [?state == running] }}"
Anatoliy
tasks: - name: services service_facts: - name: print running services debug: var=item with_items: "{{ ansible_facts.services.* | [?state == running] }}"
Timur
Что вы хотите получить вообще?
Anatoliy
список служб у которых state == running
Timur
Весь список? Или только имена?
Anatoliy
только имена
Anatoliy
такой фильтр у меня тоже не отработал: json_query('ansible_facts.services.[?state=='running'].name'
Anatoliy
не могу понять, что я делаю не так
Timur
Минутку
Timur
{{ ansible_facts.services | dict2items | selectattr('value.state', 'match', 'running') | map(attribute='value.name') | list }} Так работает?
Anatoliy
так - да, спасибо.
Anatoliy
думал можно сделать красивее, через json_query
Timur
думал можно сделать красивее, через json_query
Можно, но я не люблю этот фильтр :)
Timur
Его сложнее дебажить по частям
Fidelina
Привет! Как повторно выполнить роль, после изменения файлов в template, чтобы они повторно передались?
Fidelina
сейчас они не переотправляются при повторном запуске
inqfen
А как они меняются в template?
Fidelina
ну пока в рцчном режиме для отладки, без подставления переменных
Fidelina
тупо файлы для копипаста на удаленный сервер
inqfen
Эм, тогда ничего не понял
inqfen
Покажи плейбук
Fidelina
таска в роле - name: Adding Postgres repo template: src=gasu.repo dest=/etc/yum.repos.d/ mode=644
Fidelina
в папке templates файл gasu.repo
Fidelina
в него внесли изменения, но при повторном запуске сценария - повторная отправка не происходит, измененный файл gasu.repo не передается на сервер, там всё та же старая копия