Andrey
Andrey
а, не. я на макоси сижу, про астру даже не слышал. сто лет назад на альтах сидел, потом завязал
⪓⚝⪔
⪓⚝⪔
исключительно чекистская поделка с "нескучными обоями" для таких же чекистов
Andrey
свят свят
Slava
😄
Slava
А сейчас в доках рекомендуют loop вместо with_* использовать, правильно я понимаю?
Anonymous
в обще тут топят за loop - https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#comparing-loop-and-with
Sergey
Anonymous
ну вот я почитал и где там про обязаловку или рекомендацию
Anonymous
максимум что оно может тоже самое что и with
Anonymous
Any with_* statement that requires using lookup within a loop should not be converted to use the loop keyword. For example, instead of doing:
Ivan
Люди подскажите пожалуйста как передать джиндже результат вывода что бы распарсить поле
"failed": false,
?
Только начал изучать джинджу и пока не знаю в какую сторону копать, читаю туториалы но пока не дошел до понимания как распарсить структуру джинджой
Ivan
Ivan
Anonymous
Egor
народ, модуль package при установке пакета в убунте update_cache дёргает или нет?
Anonymous
так что рекомендацию не юзать with а использовать loop сомнительная
Anonymous
если примерно так то дернется - name: install base software - ubuntu
apt:
name:
- nano
state: latest
update_cache: yes
when: ansible_distribution == 'Ubuntu'
Anonymous
по дефолту нет
Albert
Anonymous
холивар детект ) так что смысл спорить. Инструмент не может сделать все что with ну да, типа есть после 2.5 новая игрушка рекомендуем пользовать ее, но старое так же остается - в чем профит ?
Logan
Собратья по YAML-у, а решал ли кто задачу лимитированного доступа ansible? Условно - есть CI, который выполняет на сервере список команд. Список известен. Хочу разрешить хосту выполнять только эти команды
Albert
Albert
Anonymous
Egor
Egor
который является "надмозгом" над yum и apt
Egor
типа мне надо поставить стопку пакетов, оно мне должно поставить, но вопрос, обновит ли оно перед этим кэш в убунте
Albert
Anonymous
там я точно просто помню можно было это сделать, в теории вы мождете пойти через файл что кладется в /etc/sudoers.d/ и разрешить только нужные
Anonymous
это проще
Albert
Anonymous
так делал на олдном проекте - но потом это та еще становится простынка, ипа мне кажется более удобной
Ivan
Отчет чего? Зачем такая проверка?
Это нужно для предварительного прогона плейбука который собирает данные по серверам и даёт уверенность что по всем серверам другой плейбук сможет сделать become и выполнить команды от рута
Albert
Albert
Я просто пытаюсь понять почему нельзя тем же ансиблом решить проблему судо, а потом спокойно бежат вторым плейбуком
Albert
Так проверте заранее есть ли судо простыми способами. Зачем ансиблом код писать? Это не его задача
Ivan
Дело в том что в модификации всего проекта на ансибле я ограничен в основном своей таской, которая и состоит в том что бы проверить сможет ли плейбук сделать become.
Albert
В общем проверка простая:
when: not sudo_access.failed
Albert
Это ставите на уровне плейбука
Albert
- hosts: localhost
when: not sudo_access.failed
Ivan
Ivan
Ivan
Boris 🦍
почему у тебя when не в секции с тасками
Ivan
почему у тебя when не в секции с тасками
он в секции плейбука, таски ниже, это первичный файл самого плейбука, тестовый но первичный
команда запуска: ansible-playbook test.yml -i inventory/local/
Boris 🦍
Ivan
Albert
Ошибся, на весь плей нельзя. Придется на роли ставить
Albert
Хотя если задача не бежать вторым плейбуком. То просто fail таску запустите.
https://docs.ansible.com/ansible/latest/modules/fail_module.html
Oleg
Здравствуйте
подскажите где я ошибся?
- hosts: esserversa
roles:
- role: elastic.elasticsearch
vars:
es_data_dirs:
- "{{ es_data_dirs }}"
es_log_dir: "{{ es_log_dir }}"
es_heap_size: "2g"
es_version: "{{ es_version }}"
в инвентори
[all:vars]
es_version=6.4.2
падает с TASK [elastic.elasticsearch : set_fact] ********************************************************************************************
fatal: [yaes1]: FAILED! => {"msg": "An unhandled exception occurred while templating '{{ es_version }}'. Error was a <class 'ansible.errors.AnsibleError'>
Dmitry
Anonymous
Ну выше была цитата что нет. Но думаю оставим спор об этом на какой нить вечер пятницы
Ivan
Sergey
Albert
sudo_access а не sudo access
Kirill
Всем привет - есть задача создать файл на каждой ноде где будут все переменные ноды. это файл нужен что бы кормить его другой системе as is как источник правды.
Вариант с template в котором будет {{ hostvars[inventory_hostname] | to_nice_yaml }} не рабочий - часть переменных не интерполируется и на это есть с десяток issues.
Вроде как разработчики рекомендуют использовать https://docs.ansible.com/ansible/latest/plugins/lookup/vars.html но он умеет только возвращать значения что не удобно потому что есть nested vars и в итоге нужен некий валидный yaml или json
Dmitrii
Oleg
можно ли в vars засунуть цикл?
Oleg
что то вроде
- hosts: esserversa
roles:
- role: elastic.elasticsearch
vars:
cluster.name: "{{ es_cluster_name }}"
discovery.zen.ping.unicast.hosts:
- "{{ hostvars[item]['private_ip'] }}"
with_items: "{{ groups['esserversa'] }}"
Отделение Bereke Bank
Anonymous
подскажите, пишу vars plugin для ansible, хочу в нем достать текушие переменные, как хостов, так и групп. Как это правильно сделать?
Boris 🦍