Roman
я правильно понимаю что gather facts можно отключить только для play но не для task?
Sergey
хотя нет, правильно, это я тебя неправильно поправляю 😊)))
Roman
👌
Sergey
на уровне тасков факты не собираются уже
Sergey
поэтому и отключение нинада
Nklya
ну отключение нада когда питон через raw ставищь например
Roman
ну отключение нада когда питон через raw ставищь например
вот именно для этого мне и надо, есть пример какой-нибудь?
Nklya
--- - name: Check && install python hosts: all become: true gather_facts: False tasks: - name: Install python for Ansible raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal) changed_when: False
Roman
--- - name: Check && install python hosts: all become: true gather_facts: False tasks: - name: Install python for Ansible raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal) changed_when: False
да, подобное у меня есть, но уже в роль добавлено. А плейбук простой --- - name: Prepare host for Ansible hosts: all become: yes roles: - ansible_bootstrap Вот думаю можно ли из task нужную часть выполнить без gather_facts или все же надо 2 отдельных play иметь в плейбуке.
Nklya
два плея в одном плейбуке, или два плейбука, по другому не знаю как
Roman
Понял, спасибо.
Sergey
два плея в одном плейбуке, или два плейбука, по другому не знаю как
у меня сделан в плейбуках отдельный плей, который тупо факты собирает. он работает на all, но тасков не содержит. а дальше уже стоит целевой плей, который не собирает факты, но работает работу.
inqfen
Господа использующие dynamic inventory, юзаете готовые скрипты или велосипеды пишете?
inqfen
А то мне вот надо бы и не знаю, искать готовое или самому писать
Ждун
7 бед 1 ответ - вставь костыль изобрети велосипед
Nklya
ит депендс. можно взять готовое и дописать что нужно
bebebe
Господа использующие dynamic inventory, юзаете готовые скрипты или велосипеды пишете?
у меня есть куча случаев, где dynamic inventory нужно было приколхозить к текущей структуре (брать из etcd, из sql и прочего) обычно это однострочники на curl | jq
Nklya
А как же питончик, зачем монстриков на баше рожать?
Anton
Господа использующие dynamic inventory, юзаете готовые скрипты или велосипеды пишете?
Если дефольные устраивают - юзай их, если нет - пиши свой вариант)
Nklya
я тож люблю страшные однострочники)) и даже на питоне их делал))
bebebe
в целом вкусовщина конечно
bebebe
Я все никак не овладею в полной мере jq, часов 8 помойму убил на конвертацию ldiff в JSON при помощи jq Так и не вышло
bebebe
Но зачем?
Чтобы засунуть в факты ansible
bebebe
Но зачем?
А вы как бы сделали?
Lex
Lookup плагин?
Sergey
https://gist.github.com/Xophmeister/33e6abe5e055e122f5093f1acbc91793
Sergey
https://www.python-ldap.org/en/latest/reference/ldif.html
bebebe
https://gist.github.com/Xophmeister/33e6abe5e055e122f5093f1acbc91793
второе нагуливал, непонравилось, первое закрыл после <?php вот моё решение: ldapsearch -o ldif-wrap=no -LLL ... | sed -r 's/([^:]+)::? (.*)/"\1":"\2",/' | awk 'BEGIN {printf("{\n")} {printf("%s\n", ($0 == "") ? "\"\":\"\"}{" : $0 )}' | jq '[.]'
bebebe
ну если "не вышло" лучше "закрыл после <php" - тогда всё ок
ну как бы тащить депенденси в виде php - это как то даже не ловко для простой задачи.
Sergey
она не такая простая, как кажется первоначально
bebebe
то решение что я написал выше - работает на моем наборе данных, думаю в общем случае оно будет работать мягко говоря не правильно.
bebebe
она не такая простая, как кажется первоначально
если у вас будет время и получится это только на jq сделать, сниму шляпу
bebebe
http://termbin.com/44f6 вот тут выложил немного артефактов от моих изысканий, может поможет кому-нибудь
bebebe
там немного csv есть, т.к. есть рабочий ldiff->csv, и csv->json
Anonymous
Подскажите пожалуйста, нормальная практика рулить состоянием сервисов через модуль 'service', даже если на целевой машине есть systemd и можно через него управлять?
Anonymous
Ну мало ли, можно как вариант фильтровать по distribution_major_version для разных ОС, но выглядит костылём. Потому предположил что через service будет логичней сделать
Anonymous
Да, он умеет это. На всякий случай решил уточнить best practice. Спасибо
Anonymous
Назрел такой вопрос, подскажите пожалуйста как правильно сделать. В плейбуке есть задача на добавление правила файрвола. Как правильно написать условие, чтобы на тех системах, где есть firewalld добавлялось через его модуль, а иначе через модуль iptables? Или хотя бы подскажите, копать в эту сторону? https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html
Nklya
вынести в отдельный плейбук разные добавление правил и инклудить их в зависимости от фактов
Anonymous
Спасибо
Nklya
если это один экшен, то можно в одном плейбуке, просто будет несколько условий
Anonymous
если это один экшен, то можно в одном плейбуке, просто будет несколько условий
Да, это роль установки и настройки определенного пакета. А можно пожалуйста пример условия попросить?
Nklya
https://github.com/geerlingguy/ansible-role-docker/blob/master/tasks/main.yml#L6 как я уже говорил, полезно смотреть на роли в паблике
Anonymous
Ну в этом примере condition'ы по os_family. Это я понимаю. А как быть в том случае, если надо фильтровать не по семейству ОС, а по наличию или отсутствию определенного пакета (firewalld в моем случае)? Фактами разрулить?
Nklya
ну если не можешь разделить по os_family, то костылить какой-то запрос, который выясняет есть ли firewalld, который при сваивает переменной, а по ней уже when
Anonymous
Понял, спасибо. Все же по os_family поделю в этом случае
Nklya
можешь посмотреть, возможно в фактах есть про firewall например вот systemd факт https://github.com/cndies/ansible-role-gotty/blob/master/tasks/main.yml#L31
cent
Понял, спасибо. Все же по os_family поделю в этом случае
В одной и той же OS может быть любой фаервол. Поэтому лучше по наличию бинарника и загруженного модуля ядра нужно рулить
Azzam
здаров ребята
Azzam
есть вопрос по поводу возможности ансибла работать с nftables
Azzam
ктото сталкивался уже?
Rachel
Привет, ребята! Можно ли в excel сделать смену формата ячейки через if?
Rachel
Можно, а при чем тут ансибл?
Говорят, что только через VB. Подскажи команду, которая поможет поменять, пожалуйста.
Timur
Там через Conditional Format это делается, если без VBA. Можно вот отюда начать: https://support.office.com/en-us/article/add-change-or-clear-conditional-formats-8a1cc355-b113-41b7-a483-58460332a1af
Valery
Здравствуйте! Подскажите пожалуйста, что за параметр такой "pattern = *" в конфигурационном файле ansible.cfg ? Дело в том что в ansible 2.5 этого параметра нет (
Ruslan
Ребята, подскажите, пожалуйста. Необходимо выполнить задачу очистки каталогов после сборки проекта, даже если сборка закончилась неудачно. Имеется плейбук - hosts: - stand roles: - role: build Как оформить таску и куда ее записать - необходимо чтобы она выполнялась последней при любых стечениях плейбука: - name: remove project files file: path: "{{ item }}" state: absent ...
shine
если колхозно, то закатай всё в блок, последним таском модуль шел и удаление.
Ruslan
А как сделать чтобы этот таск выполнялся даже после фейлов?
Eduard
Отдельным task в запускаемом ямле
Eduard
Если минимальный костыль
Ruslan
т.е. не внутри файла main.yml у роли, а в самом плейбуке?
Stepan T.
ignore_error: yes, выхлоп в какой-то лог, чтобы знать, что что-то сфэйлилось
Stepan T.
Но это не самый лучший подход
Ruslan
т.е. не внутри файла main.yml у роли, а в самом плейбуке?
не сработало, выполнение до таски не доходит при фейлах ранее
Ruslan
ignore_error: yes, выхлоп в какой-то лог, чтобы знать, что что-то сфэйлилось
не выход, игнорить ошибки не могу надо что-то вроде notify when previous task failed