Ruslan
всем привет. а у меня такой вопрос) почему через adhoc не выводит кастомную переменную, а через плейбук выводит?
Ruslan
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
Ruslan
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
Viktor
Lamobot
Viktor
Anonymous
@RK_Senya будет жить. Поприветствуем!
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
Где я не прав?
Anonymous
Михаил 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
Что-то неправильно написал
Sergey
Игорь
Ну в смысле прямо копипасту
~/services$ ansible-playbook -i hosts services.yml –b -K
SUDO password:
ERROR! the playbook: –b could not be found
inqfen
А плейбук где?
Игорь
ну вот я судо пароль ввожу и такая балда, если не сделать -b, то на последнем этапе валятся ошибки, тк не создается директория для складирования файликов
Игорь
вот мне я так понял эта ошибка, что он файл плейбука найти не может или уже пошел по плейбуку и там внутри что-то найти не может
inqfen
А, плейбук это services?
Sergey
Игорь
а должен быть плейбу исполняемым? chmod +x ?
Sergey
нет
Игорь
inqfen
Файл плейбука укажи в конце
Игорь
Sergey
А что означает ключ '-b' ?
inqfen
Игорь
в man почему то пусто, в help - типо ключ -become
Sergey
Sergey
https://linux.die.net/man/1/ansible-playbook
inqfen
Нужно все аргументы перед файлом плейбука писать
Sergey
https://linux.die.net/man/1/ansible
Sergey
где тут become?
Sergey
ключи нужно по докам проверять
Игорь
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
Игорь
а сам ансибл-плейбук мб тоже надо с судо вызывать?
inqfen
Sergey
не, ну если читать прям хелп, то там плейбук указывается последним, после всех ключей.
Игорь
я прост в первый раз. дали инструкцию и задачу прогнать
inqfen
просто некоторые аргументы криво работают после указания файла плейбука
Игорь
опробовал в конце - эффект такой же
Игорь
без аргумента -b работает, и даже по плейбуку идет, ток ласт шаги запарываются, тк судо нет
Sergey
inqfen
Alex
странно, но у меня в sublime показывает, что перед b идет "неправильный" дефис
inqfen
Игорь
-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
(тут ещё стикер такой хитрый с котом)
Alex