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
прям, почему нельзя это сделать, через 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
точнее если пустая то выполнять , если нет то не выполнять
Sergey
Модуль стат проверяет наличие только файла конкретного или папки
Sergey
а мне нужно проверить что есть ли в одной папке ., какие либо подпапки и файлы
Timur
Timur
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
при этом явно не указывать имя
Timur
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
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
Антон
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 не передается на сервер, там всё та же старая копия