Sergey
Как дёргать веб сервис для запуска плейбука
https://www.unixarena.com/2019/03/ansible-tower-awx-trigger-ansible-job-using-rest-api.html/
Отделение Bereke Bank
Как дёргать веб сервис для запуска плейбука
https://ashwinrayaprolu.wordpress.com/2018/09/07/invoking-ansible-inside-python-flask/
Anonymous
Он сам не понимает, чего хочет. А мы тут гадаем.
Sergey
🙏🏻
Anonymous
Т. е. нужен был триггер на стороне CI
Отделение Bereke Bank
Т. е. нужен был триггер на стороне CI
Только вместо CI - CRM Вместо комита - одобренные заявки Вместо разработчиков - ручки менеджеров
Anonymous
Передача "Что? Где? Когда?" много легче, чем такое угадывать.
Sam
Передача "Что? Где? Когда?" много легче, чем такое угадывать.
Ну сорян, я сетевик а не программер, объяснил как смог
Max
Приветствую! Подскажите, можно ли в galaxy install указать имя роли, которое не совпадает с именем репозитория? ansible-galaxy install git+git@gitea.site.net:p/ansible-myapp.git — такая команда успешно скачивает и создает роль с именем ansible-myapp. А хочется чтобы было просто myapp. Это точно можно сделать через requirements.yml: - src: git@git.site.net:p/ansible-myapp.git scm: git name: myapp Может быть можно указать как-то это новое имя через доп параметры? типа: ansible-galaxy install git+git@gitea.site.net:p/ansible-myapp.git,name=myapp
Balagur
Добрый день! Подскажите, пожалуйста, как правильно использовать шаблон, который лежит в стороннем гит-репозитории? Скачать локально весь сторонний репозиторий на сервер с ансиблом и использовать его?
Sergey
Вкратце: да, верно.
Womchik
ppl, что можно почитать кроме Best Practices по организации окружения? а то у меня 85 файликов в group_vars и нужно ещё бить. плюс постоянная путаница в приоритете переменных в равнозначных группах
Womchik
Это указывает на баги где-то в процессах и неудачном делении на группы.
ну вот у меня штук 15 разных “микросервисов” плюс куча вспомогательного всего то есть есть группы postgresql, haproxy, graylog, service1, service2 и тд я бы посмотрел на пример хорошего окружения
inqfen
Может это должно уже разными инвентори стать?
Womchik
у меня и так их несколько. test, stage, prod роли и группы везде почти одинаковые
Dimujin
Здравствуйте Подскажите в какую сторону копать Хочу выполнять если IP соответствуе маске 172.25. when: ansible_default_ipv4.address | match( "{{ IPV4_LIST }}" ) ошибка: "msg": "The conditional check 'ansible_default_ipv4.address | match( \"{{ IPV4_LIST }}\" )' failed. The error was: template error while templating string: no filter named 'match'. String: {% if ansible_default_ipv4.address | match( \"172.25.\" ) %} True {% else %} False {% endif %}\n\nThe error appears to be in '/tmp/awx_269_w04pt6t2/project/puppet.yml': line 50, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: Copy puppet-dmz.conf\n ^ here\n",
Dimujin
еще такое сообщение выскакивает: [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: ansible_default_ipv4.address | match( "{{ IPV4_LIST }}" ) [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: ansible_default_ipv4.address | match( "{{ IPV4_LIST }}" )
A
Всем привет. А можно ли как-то сделать установку пакета yum, но если уже стоит-не обновлять/даунгрейдить
George
https://docs.ansible.com/ansible/latest/modules/yum_module.html
Gleb
можно ставить конкретную версию
A
можно ставить конкретную версию
Суть в том что я не хочу ставить конкретную версию, если стоит уже выше/ниже
Gleb
Разве state present апдейтит?
там очень интересно все, есть state installed вот он не апдейтит точно гг
Gleb
хотя может оно уже просто алиасами стало
A
у тебя тогда везде будет зоопарк
Сначала-да. Хочу проверить одну версию, если ок на новых системах-то выровню
A
Конечно можно
Тут я вижу только allow_downgrade То есть я установлю его в no. А вот как запретить апдейт
Gleb
ну тебе стейта хватит, даунгрейдить и так нельзя по дефолту
A
Ок. Ща проверю. Спасибо
Gleb
state: installed
Gleb
хотя я на 99% уверен что это = present, но смотреть код ща некогда
A
state: installed
Не помогает. Обновляет, сволочь
A
Могу сделать exclude, но это колхозненько. Неужели нельзя как-то устанавливать, если не установлен пакет и не обновлять, если установлен
Dimujin
В нём самом всё написано. Условия для when записываются так, как будто вокруг них уже есть фигурные скобки.
Работает только первый вариант tasks: - name: test debug: msg: work #when: ansible_default_ipv4.address | ipaddr('172.25.69.0/24') | ipaddr('bool') #when: ansible_default_ipv4.address | match "{{ IPV4_LIST }}" when: ansible_default_ipv4.address | match ("172.25.") Ошибка 2-й вариант: "The conditional check 'ansible_default_ipv4.address | match \"{{ IPV4_LIST }}\"' failed. The error was: Invalid conditional detected: invalid syntax (<unknown>, line 1)\n\nThe error appears to be in '/tmp/awx_276_1otktpvn/project/puppet_dmz.yml': line 10, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - name: test\n ^ here\n", взял от сюда: https://stackoverflow.com/questions/38725204/regular-expression-matching-for-ip-range-in-ansible-playbooks-for-grouping
Sergey
Работает только первый вариант tasks: - name: test debug: msg: work #when: ansible_default_ipv4.address | ipaddr('172.25.69.0/24') | ipaddr('bool') #when: ansible_default_ipv4.address | match "{{ IPV4_LIST }}" when: ansible_default_ipv4.address | match ("172.25.") Ошибка 2-й вариант: "The conditional check 'ansible_default_ipv4.address | match \"{{ IPV4_LIST }}\"' failed. The error was: Invalid conditional detected: invalid syntax (<unknown>, line 1)\n\nThe error appears to be in '/tmp/awx_276_1otktpvn/project/puppet_dmz.yml': line 10, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - name: test\n ^ here\n", взял от сюда: https://stackoverflow.com/questions/38725204/regular-expression-matching-for-ip-range-in-ansible-playbooks-for-grouping
Так я же тебе по-русски сказал: у тебя уже вокруг условия стоят скобки (=вызов) шаблонизатора, зачем ты лепишь в условии ещё скобки? Там просто переменные пишутся. Скобки - это не WD-40, это не магия "чтобыработало", это не нос собаки на Площади Революции, в конце концов. Не надо их пихать в дело и без дела, разберись один раз с шаблонизатором - и никогда не будешь думать, что же тут не работает.
George
Проще ставить скобки на всякий случай Ты же понимаешь
Sebor▂▅▇█▓▒░
Ага, проще перебрать все варианты
George
Предлагаю входное испытание в группу
George
"какие типы кавычек в #ансиболи вы знаете?"
חנה
' " ☺️
Sergey
"какие типы кавычек в #ансиболи вы знаете?"
ты хотел написать "скобочек"?
Dimujin
when: ansible_default_ipv4.address | match 172.25. The conditional check 'ansible_default_ipv4.address | match 172.25.' failed. The error was: template error while templating string: expected token 'end of statement block', got 'float'. String: {% if ansible_default_ipv4.address | match 172.25. %}
Sebor▂▅▇█▓▒░
Ещё пробуй
Sebor▂▅▇█▓▒░
Уже близко
Anonymous
Интерактивный квест. Тепло /холодно. 😂
Dimujin
when: ansible_default_ipv4.address | match (172.25.) match (172.25.)' failed. The error was: template error while templating string: expected name or number. String: {% if ansible_default_ipv4.address | match (172.25.) %} True {% else %} False
Sergey
when: ansible_default_ipv4.address | match 172.25. The conditional check 'ansible_default_ipv4.address | match 172.25.' failed. The error was: template error while templating string: expected token 'end of statement block', got 'float'. String: {% if ansible_default_ipv4.address | match 172.25. %}
Я уже пацталом 😆😂🤪 Смотри, кавычки, то есть "", вокруг строки с адресом, то есть 172.25, стояли совершенно адекватно, к ним вопросов и не было. У тебя переменная - как бишь её - IPV4_LIST не в дело стояла в двойных фигурных скобках , то есть {{}}. Убери их и прочитай уже доку, ты же времени на квест тратишь намного больше, ну и народ веселишь в чате заодно, конечно, но ты же не за этим сюда пишешь, а чтобы решить вопрос, верно?
Dimujin
)
Sergey
Только понимай. пожалуйста, что не ты смешной (ничего личного!!!), а только твоё мимимишное желание отскочить от чтения доки
Sergey
Тест неправильно используется
Ну погоди, мы сейчас ещё только учимся им пользоваться вообще :-)
Timur
так попробуйте: when: ansible_default_ipv4.address is match ('172.25.')
Timur
Не нужно путать тест с фильтром
Dimujin
так попробуйте: when: ansible_default_ipv4.address is match ('172.25.')
Спасибо, добрый человек!} ok: "msg": "work"
Sebor▂▅▇█▓▒░
Timur
Вы как-то перебарщиваете со стебом над новичком
Timur
Тут ошибка элементарная, по неопытности
Anonymous
на всякий случай https://docs.ansible.com/ansible/latest/user_guide/playbooks_tests.html
Dimujin
Тимур спасибо! Похоже они не заметили ошибки, зато поржали)
Dimujin
на всякий случай https://docs.ansible.com/ansible/latest/user_guide/playbooks_tests.html
пошел тесты писать, чето у меня дльше не идет 👍
Aleksey
Приветствую! Кто-то настраивал интеграцию tower и hashicorp vault?
Aleksey
Не могу найти в каком формате он требует подсунуть SSLсертификат?
A
Коллеги, а как бы сделать условие yum, если установлено-делать одну таску, если нет -то ставить
A
Ну я хочу установить chrome, там где его нет, и не обновлять там где он установлен
Max
state: present
Max
Если не ошибаюсь, state по умолчанию подходит под задачу, так что можно даже не указывать