Anonymous
Anonymous
Он сам не понимает, чего хочет. А мы тут гадаем.
Sam
Sergey
🙏🏻
Anonymous
Т. е. нужен был триггер на стороне CI
Anonymous
Передача "Что? Где? Когда?" много легче, чем такое угадывать.
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
и нужно ещё бить. плюс постоянная путаница в приоритете переменных в равнозначных группах
Sergey
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
George
https://docs.ansible.com/ansible/latest/modules/yum_module.html
Gleb
можно ставить конкретную версию
tutunak
A
Gleb
хотя может оно уже просто алиасами стало
Gleb
A
Конечно можно
Тут я вижу только allow_downgrade
То есть я установлю его в no. А вот как запретить апдейт
Gleb
ну тебе стейта хватит, даунгрейдить и так нельзя по дефолту
Gleb
A
Ок. Ща проверю. Спасибо
Gleb
state: installed
Gleb
хотя я на 99% уверен что это = present, но смотреть код ща некогда
Sam
A
Могу сделать exclude, но это колхозненько. Неужели нельзя как-то устанавливать, если не установлен пакет и не обновлять, если установлен
Sergey
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
George
Проще ставить скобки на всякий случай
Ты же понимаешь
Sebor▂▅▇█▓▒░
Ага, проще перебрать все варианты
George
Предлагаю входное испытание в группу
George
"какие типы кавычек в #ансиболи вы знаете?"
חנה
' " ☺️
Sergey
George
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
Только понимай. пожалуйста, что не ты смешной (ничего личного!!!), а только твоё мимимишное желание отскочить от чтения доки
Timur
Timur
так попробуйте:
when: ansible_default_ipv4.address is match ('172.25.')
Timur
Не нужно путать тест с фильтром
Dimujin
Sebor▂▅▇█▓▒░
Timur
Вы как-то перебарщиваете со стебом над новичком
Timur
Тут ошибка элементарная, по неопытности
Anonymous
на всякий случай https://docs.ansible.com/ansible/latest/user_guide/playbooks_tests.html
Dimujin
Тимур спасибо!
Похоже они не заметили ошибки, зато поржали)
Dimujin
Aleksey
Приветствую! Кто-то настраивал интеграцию tower и hashicorp vault?
Aleksey
Не могу найти в каком формате он требует подсунуть SSLсертификат?
A
Коллеги, а как бы сделать условие yum, если установлено-делать одну таску, если нет -то ставить
George
A
Ну я хочу установить chrome, там где его нет, и не обновлять там где он установлен
Max
state: present
Sebor▂▅▇█▓▒░
Max
Если не ошибаюсь, state по умолчанию подходит под задачу, так что можно даже не указывать
George