Sergey
ну а как рулили сервисами во времена centos 4/5/6? Неужели я первый кто с таким столкнулся )))
6 в этом году закопают окончательно, две предыдущих версии уже закопаны. Извини, вопрос не имеет практической плоскости.
Alex
а чем вызов статуса сервиса напрягает?
Меня ничем. Проблема в том, как модуль трактует вывод
Alex
6ка до 2023 года будет жить как минимум. Такой вот он суровый ынтерпрайз ;)
tati_v_p
Подскажите пожалуйста, как получить имя файла в директории как переменную в плейбуке?
inqfen
што
inqfen
Имя какого файла в какую директорию?
Timur
Подскажите пожалуйста, как получить имя файла в директории как переменную в плейбуке?
Как-то в более общем виде сформулируйте вопрос, пожалуйста
Timur
Что вы хотите сделать конкретно?
[IPT] Dmitry
- hosts: localhost vars: app: - name: app_name dir: - builds - conf - logs conf: - config.1 - config.2 - config.3 # files: # - file.1 # - file.2 # - file.3 tasks: - name: copy app files debug: msg: "{{ item.0.name }}/conf/{{ item.1 }}" when: item.files is defined with_subelements: - "{{ app }}" - files loop_control: label: - "{{ item.0.name }}" - "{{ item.1 }}" как правильно сделать? msg: 'could not find ''files'' key in iterated item
tati_v_p
Как-то в более общем виде сформулируйте вопрос, пожалуйста
В директории лежат файлы test.yml, test2.yml Как в плейбуке сделать парсинг этих файлов, для того, чтобы получить названия файлов как {{playbook_name}} в переменную?
tati_v_p
что вы делаете? для чего вам это?
Для того, чтобы по названию файла сделать сортировку по экшенам
Oleg Y.
а зачем нужна сортировка по экшенам?)
Timur
Ты же всё равно будешь продолжать делать странное. https://docs.ansible.com/ansible/latest/plugins/lookup/fileglob.html
Да, как вариант. Или вот это: https://docs.ansible.com/ansible/latest/plugins/lookup/filetree.html
Timur
Но исходная задача все равно не очень ясна
tati_v_p
а зачем нужна сортировка по экшенам?)
Для того, чтобы файлы по одному паттерну выполнялись по одному сценарию. Остальные - по другому
Timur
Еще можно модулем find список определенных файлов из директории вытащить: https://docs.ansible.com/ansible/latest/modules/find_module.html
Timur
Для того, чтобы файлы по одному паттерну выполнялись по одному сценарию. Остальные - по другому
Чуть подробнее можно? Вы таким способом ветвление сценария пытаетесь организовать?
Gunnery
Для того, чтобы файлы по одному паттерну выполнялись по одному сценарию. Остальные - по другому
а разве не подойдет что-то из: https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html
Timur
а разве не подойдет что-то из: https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html
Пока непонятно что лучше подойдет, т.к. исходная задача не вполне ясна
tati_v_p
Чуть подробнее можно? Вы таким способом ветвление сценария пытаетесь организовать?
ветвление сценария в одном плейбуке и передача некоторых названий(которые получены в переменной) в другой плейбук.
Oleg Y.
именно в плейбук, не в роль?
tati_v_p
т.е. в директории есть подходящие и неподходящие названия. Подходящие сразу обрабатываются в плейбуке, а неподходящие - в другом.
Timur
ветвление сценария в одном плейбуке и передача некоторых названий(которые получены в переменной) в другой плейбук.
Можно подробнее? Как вы хотите сделать ветвление и зачем передавать название (чего название, кстати?) в другой плейбук?
tati_v_p
Можно подробнее? Как вы хотите сделать ветвление и зачем передавать название (чего название, кстати?) в другой плейбук?
названия файлов в директории записать в переменную, "категоризировать" эту переменную по содержимому на "подходящие" и "неподходящие" Подходящие файлы обработать в рамках плейбука. А переменную, соедржащую неподходящее название файла перекинуть в другой плейбук.
Salem
не проще все в одном сделать?
Salem
если уже это одна задача
Oleg Y.
или каждому плейбуку - свой набор файлов... Без вызова плейбука из плейбука.
Salem
если каждую else ветку в отдельном плейбуке хендлить...
Timur
Сама задача доволно странно звучит, если честно
Timur
Наличие таймштампа в названии файла
Ок. Т.е. фильтр по времени?
tati_v_p
dark legacy :)
не смешно)))
Timur
А что значит "обработать"? Скопировать куда-то или еще что?
Timur
скопировать, обработать тайштамп и пр.
Тогда выбор нужных файлов прекрасно делается модулем find: https://docs.ansible.com/ansible/latest/modules/find_module.html
Vitaliy
Вопрос: gather_facts работает для всего playbook или он кеширует значения собранных фактов только на уровне play ? Т.е. нужно ли мне для каждого play gather_facts: true или достаточно на вернех уровне раз объявить, а потом gather_facts: false ?
Timur
Там есть и выборка по времени, по маске, именам, паттернам и т.п.
Timur
Вопрос: gather_facts работает для всего playbook или он кеширует значения собранных фактов только на уровне play ? Т.е. нужно ли мне для каждого play gather_facts: true или достаточно на вернех уровне раз объявить, а потом gather_facts: false ?
gather_facts работает на уровне плея, но его данные существуют в рамках всей активной сессии ансибла. Т.е. можно к данным, собранным в одном плее, обращаться из последующих плеев
Vitaliy
gather_facts работает на уровне плея, но его данные существуют в рамках всей активной сессии ансибла. Т.е. можно к данным, собранным в одном плее, обращаться из последующих плеев
значит как и думал, указал на верхнем уровне и все последующие будут эти переменные использовать. Иначе накладные расходы по сбору фактов для каждого плея. Спасибо.
[IPT] Dmitry
может всё таки есть более нормальный способ описания приложения для этого?
Vitaliy
точно, дока)
inqfen
Можно сделать сорт оф scm_common
inqfen
Я такого пока не видал
Anastasia
Подскажите, можно ли внутри роли вызвать таску с другим списоком хостов? то есть, например, инвентори такой: [test] 127.0.0.1 [test_new] 192.168.0.1 и сначала выполняется задача для test, а после выполняется другая задача для test_new. Кажется, сделать не сложно, но не очень понимаю, как
Sergey
Сопоставление хостов и выполняемых тасков/ролей - это уровень плея.
Anastasia
а как можно? Задача решается такая: одним запуском ставить разный софт на разные хосты
Sergey
- hosts: <group1> tasks: - ... - hosts: <group2> tasks: - ...
Sergey
Это два плея в одном плейбуке. Запускаются одной командой.
Anastasia
поняла. Спасибо большое!
Sergey
👍
Anton
Ребят, подскажите пожалуйста мне нужно на всех хостах с OS Linux с помощью ansible внести изменения в сетевой интерфейс, а именно добавить строку в конец файла: DOMAIN=<указать домен окружения> (например: "DOMAIN=stg-kh.btr) В разных окружений будет разный суфикс домена DOMAIN=stg-kh.btr DOMAIN=stg-kh.os и так далее. Мне под каждое окружение плейбук писать? --- - hosts: stg-kh.btr remote_user: root tasks: - name: add string file network echo: "DOMAIN=stg-kh.btr" >> /etc/sysconfig/network-scripts/ifcfg-eth0 - name: restart network service: name=network state=restarted
Grek 🇺🇦
По хорошему - да. У тебя же разные именования интерфейсов, пути к их конфигам, и разные Нетворк менеджеры могут быть, соответственно и хендлеры разные
Vladislav 👻
Зачем? Там все в одном хватит, только переменные в инвентори раскидывай...
Oleg
Всем привет. Подскажите плиз, куда копать. Необходимо в плейбук добавить выполнение данной команды sudo sed -i.bak '/fi/a #xrdp multiple users configuration \n xfce-session \n' /etc/xrdp/startwm.sh Использовать модуль shell?
Anton
так можно?
Андрей
уж лучше это все в host_vars запихнуть, а не писать такие полотна
Fire
Use Templates, Luke
Fire
Use handlers, Luke.
Андрей
если нужно добавить строку в интерфейсы, то вообще можно это с помощью https://docs.ansible.com/ansible/latest/modules/lineinfile_module.html сделать