Dima
мне показалось, что ВНЕЗАПНО ему не понравились табы. хотя сколько с табами писал.
Dima
даж не знаю идти ли в трекер )
O
ну вообще то правильно написал ansible, hour нужно на уровень ниже(глубже) ставить - ибо словарь
Igor
И табы лучше забить в 2 пробела
Dima
я уже забил пробелами. просто раньше были табы и в редакторах выглядело корректно :)
Dima
(ansible тож почему-то внимания не обращал)
Dima
сейчас тож выглядит корректно. *уточнение: выглядит точно так же, только вместо табуляции пробелы.
✙ Bogdan
Странно, мои табы в вим ямл никогда не любил
✙ Bogdan
А на тему дебы и апт, пришлось апдейтить питон и ансибл, т.к. из дебы выпилили аптитуд
✙ Bogdan
После всех апдейтов полет нормальный
hackru
пасаны, а че, никто свои риги под виндой не ансеблил шоле? порыскал в гугле, тишина...
Василий
подскажите, как чекнуть пых только на установленные дополнительные плагины с консоли?
Maxim
php -m
Maxim
?
Maxim
а, там ключевое видимо "дополнительные"
Василий
Что бы с дефолтовыми не было в перемешку
✙ Bogdan
может проще дефолтные потом отпарсить?
Aleksei
Коллеги, я новичок в системах оркестрации. Мне очень хотелось бы посмотреть какие-то примеры как устроена инфраструктура оркестрации у других (Какое ПО они используют, для каких целей, почему не альтернативы и т.д.). Просто я не верю, что то, как это устроена у нас (к примеру, ты разворачиваешь всё Ansible, но все пароли и логины заходишь и вбиваешь в конфиги ручками) - это правильное развитие событий. Если есть какие-то классные видео на эту тему - будет круто, т.к. на просторах интернета я нашёл пока только обучалки по Ansible, что не есть то, что нужно. В общем, буду благодарен за любые видео, статейки или возможность лично от кого-то узнать, как это должно правильно работать. Заранее спасибо!
O
ansible-vault hashicrop-vault Есть для таких штук
психанул про hashicorp - тут для начала бы разобраться с Jinja потом уже с ansible-vault ну а по hashicorp сам пусть решает надо или нет... то уже для просветеленных )
Bogdan (SirEdvin)
психанул про hashicorp - тут для начала бы разобраться с Jinja потом уже с ansible-vault ну а по hashicorp сам пусть решает надо или нет... то уже для просветеленных )
Если больше двух-трех людей, то вроде альтернатив нет. Не знаю, мне казалось, что ansible-vault вообще минут на 5-10, как и jinja в базовом варианте.
O
Не ну человек после ansiblа проходится и вбивает руками ) видать не знает... пока не овладеет минимумом смысл hashicorp vault предлагать ?
O
вообще в заголовке чата есть классная ссылка - там практически % на 95 актуальная инфа
Aleksei
Окей, спасибо за ответы! Прос Hashicorp Vault слышал, но на предложение его развернуть было высказано фи. Обязательно прочитаю на днях про Ansible-Vault! Есть ещё такой вопрос: бывают ситуации когда одна машина из 30 должна заливаться по-иному (к примеру лишний файл закидываться в firewalld или сервис устанавливаться). Я под данную машинку должен создавать отдельный playbook или правильнее делать обработку данного события в самом playbook?
Sergey
....так что пиши плейбук в общем, насколько возможно, виде, и разруливай особенности конкретных хостов через host_vars
Sergey
если приходится вешать гроздьями when-ы - ты что-то делаешь не так
Dima
да, именно, можно when на block же вешать )
Dima
(шутка)
Sergey
(шутка)
тонко
Aleksei
Эм... А я уже начал читать о block'ах и думать, что это крутая вещь =)
Dima
ну да, эта штука иногда полезна, когда ты уже написал велосипед из граблей, и тебе лень вешать гроздьями when.
Aleksei
И есть ещё один вопрос относительно структуры playbook'ов: Правильно делать единый реп со всеми playbook'ами внутри по типу: playbook1.yml playbook2.yml .... playbookn.yml roles type1 role1 type2 role2 type3 role3 Или же лучше для каждого playbook'а делать отдельную структуру каталогов?
Aleksei
Просто сейчас у меня первый вариант и там тьма playbook'ов. Каждый проект как минимум имеет 3 версии с разными указанными хостами (dev, preprod, prod). А т.к. проектов тьма, то получается не плохой список
Aleksei
И что-то мне подсказывает, что так быть не должно
Dima
Эм... А я уже начал читать о block'ах и думать, что это крутая вещь =)
https://github.com/major/ansible-hardening/blob/master/tasks/main.yml#L17 можно вот взять пример у хайдена, если тебе нужно разрулить задачи одной роли по дистро-зависимым переменным, и для одного дистро одни переменные, для другого совсем другие. ну и см. далее там тонна примеров по программированию на конфигах.
Dima
https://github.com/openstack/openstack-ansible вот тут его творчество в полную силу, можно читать долгими зимними вечерами и восклицать "бля а так можно разве?"
maniac
ну мне больше интересно посмотреть на эти вот секьюрити-рекомендации для центось/рхел. https://github.com/major/ansible-hardening/blob/master/templates/sshd_config_block.j2 вон в sshd_config в принципе адекватные вещи пишутся
✙ Bogdan
Пипл, а как можно натравить lineinfile на все файлы в папке?
Alex
with_fileglob
Dima
*для локальных файлов работает
Pavel
регистрировать переменную, выполнять ls, ну а дальше цикл
✙ Bogdan
with_fileglob
на удалённом хосте не работает
Alex
ага только для локальных, тогда только shell ls
Pavel
ну или стартовать в пулл мод
✙ Bogdan
пришлось извратиться: - name: looping over a REMOTE command result shell: "ls /etc/ssh/authorized_keys1" register: command_result - name: remove key lineinfile: dest={{ item }} line="{{key}}" state=absent with_items: - "{{ command_result.stdout_lines }}"
Igor
C:\Windows\ServiceProfiles\LocalService
То что надо, заработало, спасибо )
Dima
БОЛЬШЕ ШЕЛЛА В АНСИБЛ!!! (c)
✙ Bogdan
БОЛЬШЕ ШЕЛЛА В АНСИБЛ!!! (c)
согласен: - name: listing files find: paths: "/etc/ssh/authorized_keys1" patterns: "*" register: result - name: remove key lineinfile: dest={{ item.path }} line="{{key}}" state=absent with_items: - "{{ result.files }}"
✙ Bogdan
лучше?
Dima
угу, я также юзаю, проблем нет
Alex
таки да, не знал про find
Alf 🙀
как правильно сетить local_facts? сосздавать ini файл? а то что то set_fact так не работает
Anonymous
@FolderArchive - канал, где сливают платный полезный - образовательный контент и курсы, например можно скачать курсы "Нетологии" или все курсы "Бизнес Молодости".
qeng
помогите с шаблоном. есть такой список переменных: vault: default: myuser: "myuser" mypassword: "mypassword" server: 192.168.1.1: auth: "secret1" name: "name1" 192.168.1.2: auth: "secret2" name: "name2"
qeng
и такой шаблон: {% for item in vault.server %} host "{{ item.name }}" { auth = "{{ item.auth }}" } {% endfor %}
qeng
на выходе получаю только % в файле
Sergey
поставь по минусу перед IP-адресами 😉
Sergey
то бишь преврати ключи словаря в элементы списка (по которым как раз и работает with_items)
qeng
неа, не помогло
Dmitry
ну для начала минусы надо ставить выше
Dmitry
потому что он ходит по vault.serevr
Dmitry
а, да
Dmitry
перед ипами
Dmitry
тогда, как говорит один мой начальник - одна из обезьянок пиздит
Sergey
ну теоретически vault может совпадать с именем какого-то внутреннего объекта в ансибле
Sergey
так что я бы попробовал переименовать во что-то более обыденное - creds, auths, dannyes, parolys 😊
maniac
вы подозреваете что там настолько дятлы сидят, да?
ну это ж не мы придумали программировать на шаблонизаторе ;(
Alf 🙀
Alf 🙀
ну и при чем здесь шаблонизатор тоже остается загадкой, кстати.
maniac
я писал на пхп, да.
Alf 🙀
я писал на пхп, да.
зачем ты мне это сказал? как мне теперь жить с этим?
Dmitry