Div
when: var
Div
как то так
Гайрат
Гайрат
В юзерских ролях часто вижу фильтр default('/home' + item.username)
Sergey
Григорий
Спасибо
Григорий
Если переменной var не существует, {%for i in var%} упадет?
Lamobot
Григорий
круто, спс
лучше чем в ифчик оборачивать
Anonymous
Всем привет, подскажите как извернуться:
выполняю команду, допустим mkdir, оболочка говорит, dir already exists и всё печально. Как бы мне так сделать, чтобы команда выполнялась в том случае, если директории нет, а если директория уже есть - делать ничего не будем. handlers моя палочка-выручалочка?
Grek 🇺🇦
ваша палочка выручалочка модуль file
Vladimir
UglyKoyote
ну или шеллом трушно) если уж тянет на башзибл
Div
можно делать связку из stat+file для проверки
Anonymous
ок, плохой пример привёл, допустим это не mkdir, а модулем shell
Я и твой кот
Anonymous
вот хороший пример: не запускать контейнер, если он уже запущен, а если не запущен - запустить. Наверное так даже будет интереснее.
Григорий
а зачем создавать файлы шелом?
это ансибл, говоришь: вот такой файл/папка находятся в таком-то состоянии
Я и твой кот
Anonymous
Всё всё, с файлами плохой пример.
UglyKoyote
Anonymous
Понял, спасибо.
Григорий
то же самое с контейнером:
такой-то контейнер, существует
Grek 🇺🇦
Вы с праздным интересом, или у вас какой-то конкретный запрос, или на собеседовании спросили?
UglyKoyote
да конечно можно, там ничего сложного. вариантов море
Lamobot
UglyKoyote
Vladimir
А по хорошему, пишите модуль, это не сложно, и нервов сэкономит много)
Anonymous
Спасибо ещё раз, пример с директорией я привёл просто так, он был неудачен.
Grek 🇺🇦
приведите ту задачу которую решаете. а не сферического коня в вакууме тащите
Grek 🇺🇦
и вам помогут. если смогут. а отвечать на гипотетические вопросы - тратить время
Bogdan (SirEdvin)
Хм ... интересно, кто-то знает как в dynamic inventory, через compose закинуть переменные на верхний уровень, а не в подэлемент?
Григорий
оч странный вопрос, в темплейте можно выполнять что-то?
т.е. мне например нужно вычитать 5 файлов в переменные, хочу пройти циклом по ним, что-то вроде
{% for file in files %}
someVar: *тут например cat file|base64*
{% endfor%}
Григорий
насколько я представляю тут должно быть что-то вроде {{file| someFunc()}}
Bogdan (SirEdvin)
Alex
а в курсе кто в centos7/rhel7 с 3м питоном не работает только yum или что то еще?
Alex
- name: Install prerequisite packages
become: yes
yum:
name: “{{ prerequisite_packages }}”
state: present
vars:
ansible_python_interpreter: /usr/bin/python2
так то оно конечно работает, но выглядит криво
George
- name: Bingo 11
debug:
when: myvar == 1
vars:
myvar: '{{ 1 }}'
tags:
- bingo11
Vladislav 👻
Vladislav 👻
Вообще, у нас все работает
Alex
Alex
оно с 3м питоном не может
Vladislav 👻
Или /usr/local/bin
Vladislav 👻
В этом частая проблема как раз, а все из-за криворуких питонистов, да 😬
Alex
дело в отсутствии модуля python3-yum или как там его
Alex
на целевых хостах какой питон юзается?
Alex
ну вот и ответ
Alex
а интересует 3й
Lamobot
George
Твоё предсказание? ok/skip/error?
Alex
оно не работает
Alex
by design
Alex
ну точнее yum модуль не будет точно работать, насчет други х модулей не в курсе
Lamobot
George
А объяснить можешь?
Alex
будет ошибка вида
fatal: [app_master]: FAILED! => changed=false
msg: The Python 2 bindings for rpm are needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.. The Python 2 yum module is needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.
Alex
ну вот запусти теперь
- name: Install prerequisite packages
become: yes
yum:
name: mc
state: present
vars:
ansible_python_interpreter: /usr/bin/python3
Alex
узнаешь много нового :D
Lamobot
Alex
я хочу юзать 3й питон
Alex
но не могу
Alex
в контексте 7го centos/rhel
Lamobot
А объяснить можешь?
No magic! Check this:
- name: Bingo 11
debug:
when: myvar == '1'
vars:
myvar: '{{ 1 }}'
ignore_errors: true
Alex
в интерпрайзе далеко не рип
Alex
и лет 5-7 еще будет жить
Alex
а то и 10. имхо
Alex
мы уже официально поддерживаем 8ку в проде )))
Alex
никто и не ломает. 3й питон там идет из коробки
Alex
а то что не работает только модуль yum (по крайней мере у меня) - вот это странно
Alex
я уже привел пример - что не работает
Vladislav 👻
Vladislav 👻
This module only works on Python 2. If you require Python 3 support see the dnf module.
Alex
и получается из-за одного модуля - я вынужден юзать 2й питон