Ruslan
всем привет. а у меня такой вопрос) почему через adhoc не выводит кастомную переменную, а через плейбук выводит?
Ruslan
в adhoc почему-то только с hostvars работает
Alex
а можно ли в ансибле переопределить только один ключ в словаре через командную строку? $ ansible-playbook playbooks/main.yml -v -e '{"dict1":{ "flow3_enabled": true }}' пробую так, но тогда в словаре получается всего один элемент :(
Артём
Насколько я знаю, ни через командную строку, ни через файлы мёрджить переменные нельзя, оно перезаписывается наиболее приоритетной целиком.
Alex
ээх, в тераформе оно работает
Alex
в принципе с hash_behaviour=merge тоже работает, но вроде как не рекомендуется использовать этот режим. По дефолту replace
Alex
получил что хотел. dict1 оригинальный словарь определенный в vars, dict2 то, что передается из командной строки - name: Run tests include_role: name: role1 vars: flow_type: "{{ item.key }}" loop: "{{ dict1 | combine(dict2) | dict2items }}" when: item.value
Ohh
https://docs.ansible.com/ansible/latest/modules/uri_module.html А uri module умеет --insecure?
Vladislav 👻
Последний параметр же
Vladislav 👻
Хотя лучше подставить серты
𝚔𝚟𝚊𝚙𝚜
Всем привет, вопрос на засыпку: можно ли сделать selectattr case insensitive? {{ [ {"name": "abcDE"} ] | selectattr("name", "equalto", "abcde") | first }}
𝚔𝚟𝚊𝚙𝚜
хм, можно {{ [ {"name": "abcDE"} ] | selectattr("name", "match", "(?i)^abcde$") | first }}
𝚔𝚟𝚊𝚙𝚜
сам спросил - сам ответил
Viktor
Всем привет! Подсажите пожалуйста: есть переменная: nginx: root: some_root root_dir: "{{ some_variable+ и вот тут этот root строчкой выше }} как обратится к вложеннной переменной root внутри её вложенности? что-то типо nginx: root: some_root root_dir: "{{ some_variable+ self.root }} ?
Sergey
спасибо :(
всегда пожалуйста
Anonymous
@RK_Senya будет жить. Поприветствуем!
𝚔𝚟𝚊𝚙𝚜
ничего, просто хотелось положить их вместе
Объяви root в vars для конкретного таска, а потом используй как тебе хочется
Anonymous
@leonidLeonid будет жить. Поприветствуем!
Anonymous
Подскажите пожалуйста, нужно дернуть handler, который оформлен в виде block Делаю так: - name: Restart Crond block: - name: get facts about system services service_facts: - name: trigger crond restart systemd: name: 'crond' enabled: yes state: 'restarted' when: '"crond" in services' При попытке вызова ансибл падает с ошибкой ERROR! The requested handler 'Restart Crond' was not found in either the main handlers list nor in the listening handlers list Хендлер вызываете из роли, лежит в handlers/main.yml Где я не прав?
Михаил Telsir
Коллеги, кто работает с Ansible Tower? Вопрос следующий: hosts.ini хранится в гите и вытягивается в проект. Инвентори формируется на основе проекта и hosts.ini берется из гита. В hosts.ini хосты указаны в порядке 3-2-1, но Tower всё равно сортирует их как 1-2-3. Как можно избежать сортировки (вариант - вручную собрать инвентори не предлагать) в параментрах запуска указываю static: 1 и order: reverse_inventory, но хосты всё равно обновляются в порядке 1-2-3 а не 3-2-1, как мне необходимо
Игорь
всем привет! а подскажите пжлста про ключ -b (—become) Запускаю ansible-playbook -i hosts(файлик тут же лежит) services.yml(файлик тут же ежит) -b - K С ключем - К все понятно. а вот ключ -b не понятен. и при выполнеие выдает ошибку мол -b file not found. он по этомиу ключу какой то файл ищет или что?
inqfen
Нет
inqfen
Он выполняет все таски с sudo
inqfen
Покажи команду
inqfen
Ну в смысле прямо копипасту
inqfen
Что-то неправильно написал
Gleb
Показалось или уже было?
в другом чате, но люди то везде те же 😄
Игорь
Ну в смысле прямо копипасту
~/services$ ansible-playbook -i hosts services.yml –b -K SUDO password: ERROR! the playbook: –b could not be found
inqfen
А плейбук где?
Игорь
ну вот я судо пароль ввожу и такая балда, если не сделать -b, то на последнем этапе валятся ошибки, тк не создается директория для складирования файликов
Игорь
А плейбук где?
в той же директории откуда запускаем
Игорь
вот мне я так понял эта ошибка, что он файл плейбука найти не может или уже пошел по плейбуку и там внутри что-то найти не может
inqfen
А, плейбук это services?
Игорь
а должен быть плейбу исполняемым? chmod +x ?
Sergey
нет
Игорь
у тебя перед b часом не два тире?
писал руками - ставил одну
inqfen
Файл плейбука укажи в конце
Игорь
Sergey
А что означает ключ '-b' ?
inqfen
да, services.yml
В конец его переставь
Игорь
в man почему то пусто, в help - типо ключ -become
Sergey
~/services$ ansible-playbook -i hosts services.yml –b -K SUDO password: ERROR! the playbook: –b could not be found
вот это сообщение означает, что имеет место попытка найти плейбук такой
Sergey
https://linux.die.net/man/1/ansible-playbook
inqfen
Нужно все аргументы перед файлом плейбука писать
Sergey
https://linux.die.net/man/1/ansible
Sergey
где тут become?
Sergey
ключи нужно по докам проверять
Игорь
ключи нужно по докам проверять
в ansible-playbook —help описание ключа есть
inqfen
где тут become?
Privilege Escalation Options: control how and which user you become as on target hosts -b, --become run operations with become (does not imply password prompting)
inqfen
ansible-playbook --help введи и будет тебе become
Игорь
а сам ансибл-плейбук мб тоже надо с судо вызывать?
Sergey
не, ну если читать прям хелп, то там плейбук указывается последним, после всех ключей.
Игорь
я прост в первый раз. дали инструкцию и задачу прогнать
inqfen
просто некоторые аргументы криво работают после указания файла плейбука
Игорь
опробовал в конце - эффект такой же
Игорь
без аргумента -b работает, и даже по плейбуку идет, ток ласт шаги запарываются, тк судо нет
Игорь
А отчего ты в плейбуке не укажешь become?
не мой плейбук, в душе не чаю, что там накручено =\
Alex
странно, но у меня в sublime показывает, что перед b идет "неправильный" дефис
Игорь
-b прекрасно работает
ну я имел ввиду мой конкретный случай. логично , что у меня какой то косяк, и из за этого не работает
inqfen
inqfen@inqfenwork:~$ echo "" > hosts inqfen@inqfenwork:~$ echo "- hosts: localhost" > services.yml inqfen@inqfenwork:~$ ansible-playbook -i hosts -b -K services.yml BECOME password: [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
inqfen
у меня все работает
inqfen
как-то ты не так вводил
Sergey
(тут ещё стикер такой хитрый с котом)