George
Но вообще
George
https://stackoverflow.com/questions/40496021/how-to-remove-a-single-key-from-an-ansible-dictionary
George
https://stackoverflow.com/questions/50514383/ansible-remove-item-from-dict/50515718
George
Как бы типовая задача )
Igor
Как бы типовая задача )
спасибо, нашел лучше - rejectattr
Sergei
Итить... Тебя щас тапками погонют и будут правы
так я и спрашиваю как правильно
George
Переписать, очевидно
Отделение Bereke Bank
а как юзать темплейт модуль?
https://docs.ansible.com/ansible/latest/modules/template_module.html тут есть примеры
Sergei
и всё-таки, как выполнить multiline command(для других случаев)
Sergei
- name: "Add swap fstab" shell: | cat <<EOF if [[ ! -f /home/swapfile ]];then echo "aaaa" > zzz.txt fi EOF
Sergei
вот это не получается
George
Так ты кат сделал
George
А не баш
Sebor▂▅▇█▓▒░
- name: "Add swap fstab" shell: | cat <<EOF if [[ ! -f /home/swapfile ]];then echo "aaaa" > zzz.txt fi EOF
Если пошел по пути башсибла, то используй creates хотя бы
Sergei
- name: "Add swap fstab" shell: | if [[ ! -f /home/swapfile ]];then echo "aaaa" > zzz.txt fi
Sergei
вот так тоже не работает
Sebor▂▅▇█▓▒░
Ты прикалываешься? Первая ссылка в гугле
Sergei
Ты прикалываешься? Первая ссылка в гугле
https://stackoverflow.com/questions/45748984/ansible-if-statement-and-redirect-to-a-file-with-shell-module-doesnt-work
Sergei
у меня вот эта первая ссылка, но там не то, что нужно
Sergei
дай эту первую ссылку
Sebor▂▅▇█▓▒░
у меня вот эта первая ссылка, но там не то, что нужно
А ты уже определился, что тебе нужно?
Sebor▂▅▇█▓▒░
дай эту первую ссылку
https://stackoverflow.com/questions/24765930/add-swap-memory-with-ansible
Sergei
https://stackoverflow.com/questions/24765930/add-swap-memory-with-ansible
спасибо за ссылку. Но мне бы еще такую конструкцию выполнить if [[ ! -f /home/swapfile ]];then echo "aaaa" > zzz.txt fi
Sergei
А ты посмотри ещё раз ссылку и сделай по аналогии
- name: Check swapfile available shell: if [ -f /home/swapfile ]; then echo 'yes'; else echo 'no'; fi ignore_errors: true register: swapfile_installed - name: Install swapfile vars: swapsize: "{{ (FSTAB['disk']['swap']['size'] * 1024 * 1024) }}" shell: | dd if=/dev/zero of={{ FSTAB['disk']['swap']['device'] }} bs=1024 count={{ swapsize }} mkswap {{ FSTAB['disk']['swap']['device'] }} swapon {{ FSTAB['disk']['swap']['device'] }} ignore_errors: true when: swapfile_installed.stdout.find("no") != -1
Sergei
но мне так не нравится
George
🤦‍♂️
Sergei
ок, подумаю
енот
Здравствуйте при деплое через ансибль у меня, почему-то, не подхватывается .env в папке проекта самим проектом nodeJS pm2 - name: start pm2 process cdr shell: cmd: '/usr/local/lib/npm/bin/pm2 start --name "cdr" /opt/fs_backend/cdr.js' С готовой ролью я не сдружился чет... она мне убивала npm. Что с этим можно сделать?
George
АнсиблЬ ошибок не прощает 😂
енот
chdir попробуйте добавить
Первый раз слышу про эту команду О_о
Grek 🇺🇦
Это параметр модуля shell
енот
Это параметр модуля shell
премного благодарен!
Aleksandr
Коллеги, подскажите а есть какая-то готовая публичная роль для юзер менеджмента которая умеет мержить группы пользователя объявленные на разных уровнях иерархии? т.е. например я бы хотел объявить на верхнем уровне пользователю группу судо, а потом для конкретной группы серверов группу azaza. и чтобы в конечном итоге получилось azaza + sudo
inqfen
>роль для юзер менеджмента снова ансибл лдап
inqfen
Не надо его в sssd превращать
Aleksandr
Коллега, не надо превращать ответ на вопрос в совет не делать так как спрашивает человек.
Sebor▂▅▇█▓▒░
inqfen
Коллега, не надо превращать ответ на вопрос в совет не делать так как спрашивает человек.
Если человек хочет сделать правильную вещь (менеджмент юзеров) неправильными методами (ансибл), то именно это как раз и надо сказать, у него же жизнь в будущем полегчает
Aleksandr
программировать на ансибле не нужно, все остальное можно
Aleksandr
я бы вообще сделал юзер менеджмент на паппете, где все что нужно уже реализовано, но к сожалению
Aleksandr
у меня на прошлом месте было так. паппет катал коммон вещи (юзеры, всякие настройки проксей, одинаковые для всех серверов пакеты, настройки апт итп), а сам сервсис катался ансиблом
Aleksandr
ну у меня собственно вопрос скорее о том как мержить списки в словаре, так чтобы элементы дикта мержились а не перезаписывались
George
Кто ж запрещает. Это ж вроде базовый функционал
Aleksandr
неа. я проверил вот ток что
Yar
Не надо его в sssd превращать
Это надо на себе прочувствовать, иначе не поймешь, почему что-то неправильно.
Отделение Bereke Bank
>роль для юзер менеджмента снова ансибл лдап
Вот вы говорите ансибл лдап Ну поднимет чел лдап, управлять им тоже захочет ансиблом. ldapьими модулями В итоге же тот же ансибл лдап и выйдет
Отделение Bereke Bank
Только теперь ямла больше
Отделение Bereke Bank
Гайрат
Это если одна система для лдапа, а их обычно несколько, кроме системных может быть jira и прочие
inqfen
А зачем несколько лдапов?
inqfen
Если все может тянуть юзеров из одного
Гайрат
А зачем несколько лдапов?
Не лдапов, а систем с лукапом из одного
Igor
Есть такой плейбук: --- - hosts: localhost gather_facts: false vars: instance_filter: environment: test instance_id: 123456 tasks: - name: print var debug: var: instance_filter - name: manipulate the var debug: msg: "{{ instance_filter | dict2items | rejectattr('instance_id') | list | items2dict }}" При запуске говорит: The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'instance_id Хотя аттрибут этот есть.
Igor
Где ошибка здесь?
Dan
.key и .value там должны быть
Dan
Емнип
Artem
Есть такой плейбук: --- - hosts: localhost gather_facts: false vars: instance_filter: environment: test instance_id: 123456 tasks: - name: print var debug: var: instance_filter - name: manipulate the var debug: msg: "{{ instance_filter | dict2items | rejectattr('instance_id') | list | items2dict }}" При запуске говорит: The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'instance_id Хотя аттрибут этот есть.
имхо ошибка вот здесь: msg: "{{ instance_filter | dict2items | rejectattr('instance_id') | list | items2dict }}" Нужно: 1. Положить файл https://pastebin.com/99AK63Ke в директорию filter_plugins в твоем проекте. Или другую директорию, если она у тебя изменена в настройке filter_plugins в ansible.cfg 2. Юзать: msg: "{{ instance_filter | remove_key('instance_id') }}"
Serge
Новый релиз Pyventory! https://twitter.com/lig1/status/1305210805416267776
M
Воу
Timur
Что случилось?
Fire
Что случилось?
Спам забанили.
Timur
А, ок
Aleksey
Коллеги, кто-нибудь ищет работу в Мск? Пишите мне в личку. Интересный проект, в крупной телеком компании.
George
ты чатиком не ошибся ?
Anton
дак хоть +/- расскажите
George
есть же канал devops jobs ru
George
https://t.me/devops_jobs
Aleksey
Спасибо