в идеале это бы выглядело как переопределение hosts для конкретной таски в роли
Dima
- synchronize: src={{ item.src }} dest={{ item.dest }} delegate_to: "{{ ansible_host }}" with_items: - { src: '/fld/from/1/', dest: '/fld/to/1/' }
спасибо, попробую
еще такой вопрос: есть конструкция вида L_HOST: "{{ hostvars[groups [ (L_GROUP | default ('lgroup')) ][0]].ansible_default_ipv4.address }}" , в одной роли отрабатывает без вопросов, в другой ошибка , что ансибл не находит атрибута 'ansible_default_ipv4' у соотв. конструкции. lsb вроде стоит как надо. чего может не хватать в роли?
Alf 🙀
нормального способа проверить ассайнена ли роль изнутри темплейта, нет да? нужно рендерить два темплейта и оборачивать их when так выходит?
Alf 🙀
есть роль в плэйбуке которая призвана выполняться на all в роли есть темплейт, в темплейт хотелось добавить условие в стиле {%- if 'nginx' in ansible_roles %} bla-bla-bla {%- endif %}
Pavel
http://docs.ansible.com/ansible/ec2_group_module.html ктонить знает, добавление правил аддитивное или заменяются все правила сразу на указанные в таске?
Alf 🙀
есть роль в плэйбуке которая призвана выполняться на all в роли есть темплейт, в темплейт хотелось добавить условие в стиле {%- if 'nginx' in ansible_roles %} bla-bla-bla {%- endif %}
окей, есть role_names вот тут https://github.com/ansible/ansible/issues/12863 было ишью по этому поводу, но оно работает только внутри одного плэя, данные между плэями не мерджатся если вдруг кому интересно.
Pavel
пиши нормальный идемпотентный набор правил 😉
Всмысле? Там помимо меня еще другие правила вписывают, и их полный список не детерминирован.
Pavel
Моя цель прописать мой IP один
Pavel
Не, это называется демократичная команда ;)
Sergey
Не, это называется демократичная команда ;)
Не согласен. Демократичная команда - каждый может коммитить в репу с шаблоном правил для Ансибла, и каждый имеет право запустить этот самый Ансибл. А то, что ты описал - когда куча народу рандомно что-то фигачит на окружении с криками "ух ты, работает!" - это бардак.
Dima
это просто решается, закрытием ветки master и автодобавлением всех инжеров в новый PR. а иначе не демократия. добавление только главного инженера и архитектора - протократия. добавление гендиректора - абсолютная монархия. а пушить в master без PR - сплошная анархия. если заговорили про IaC... )
Dima
если же только руководитель смотрит PR на merge - то это авторитаризм (или диктатура)
Igor
Коллеги, а что модуль ansible git не умеет обновлять dest, если каталог в dest не пустой? update: yes, force: yes включены
O
Igor только что проверил - все умеет - каталог не пустой
O
секунду
O
- name: git update src code local_action: git repo='{{ src_repo }}' dest='{{ src_dir }}' version='{{ src_branch }}' recursive=yes update=yes force=yes
O
ansible —version ansible 2.2.1.0
O
до 2.3 -> пока не обновляюсь
Igor
минутку
Igor
а, мне опции recursive не хватало, спасибо )
O
вообще то resursive - не связана с обновлением dest ) submodule же. Но хорошо что получилось ;)
Bogdan (SirEdvin)
Как я понимаю, нормально альтернативы для hasicop vault для ansible нет?
O
@SirEdvin ? что имеется в виду ? чем ansible vault не устроил ?
Bogdan (SirEdvin)
@SirEdvin ? что имеется в виду ? чем ansible vault не устроил ?
Ну, больше одного человека, хотелось бы как-то не всем шарить все зашифрованные файлы, а как-то разумнее) Не знаю, мне просто с первого раза vault не понравился, я подумал, может есть что другое
O
чем он может не понравиться ? для базовых вещей типа сертификаты и бла бла бла ... очень даже... другое дело не надо это все в публичных репах держать
O
с хашикорповским продуктом - немного все по другому, там целое флоу лепить надо чтобы правильно работать с sensitive data
Pavel
насколько я понял, в ваулте для разных юзеров можно и разные "ваулты" делать с разными ключами (паролями) вот и будет тебе разделение
Pavel
вот только для "суперюзера" для доступа ко всему, не знаю получится ли указать несколько ключей ((
Pavel
а можно док про это?
http://docs.ansible.com/ansible/playbooks_vault.html
Pavel
я с разделением пока не столкнулся... у нас 1 комадна, с одинаковыми правами, но я думаю можно исхитриться и с разделением
Alf 🙀
http://docs.ansible.com/ansible/playbooks_vault.html
что то не могу найти там про возможность иметь ваулты пер юзер
Pavel
что то не могу найти там про возможность иметь ваулты пер юзер
просто создай с разными паролями на разные файлы - вот и разделишь
Pavel
не на "свой" файл не знаешь пароль - не получишь к нему доступ
Pavel
ясно.
немного костыльно, как по мне, но варик должен быть из коробки и рабочий
Alf 🙀
немного костыльно, как по мне, но варик должен быть из коробки и рабочий
а как дженкинс должен расшифровывать такую капусту?
Pavel
а как дженкинс должен расшифровывать такую капусту?
так для дженкинса можно полный доступ давать, а ограничивать уже юзеров на права запуска скриптов (плейбуков)... как по мне тут еще проще
Alf 🙀
один идиот написал переменную в один файл, второй такую же переменную написал в другой файл, каждый зашифровал, допустим дженкинс знает супер пароль и расшифровал это удовольствие, что ансиблу деплоить? какую из переменных?
Alf 🙀
ну тут уж, извините, от "идиотов" спасения нет
ну а как работать, если ты не видишь что эта переменная уже используется, это с одной стороны, ну и будешь dry run делать у тебя ансибл элементарно ругнется что не может расшифровать файл твоего коллеги потому что ключ у него не тот
Alf 🙀
плейбук дженкинс запускает?
ну не локально же вы это делаете
Pavel
ну не локально же вы это делаете
да, у нас для плейбука - это все "локально" тяжело что-то обсуждать, не понимая вашей инфраструктуты
Pavel
ну не локально же вы это делаете
вот потому я и не понял этой фразы
Alf 🙀
вот потому я и не понял этой фразы
чего именно вы не поняли?
Pavel
чего именно вы не поняли?
что значит "ну не локально же вы это делаете"?
Alf 🙀
что значит "ну не локально же вы это делаете"?
а что значит плейбук дженкинс запускае в таком случае?
Alf 🙀
вы спрашиваете кто запускает плейбук. плейбук, теоретически, должен быть способен запустить каждый кто имеет доступ до репы и может клонировать его себе локально
Alf 🙀
вопрос про ну не локально же вы это делаете, подразумевает, что не локально же вы запускаете выкатку изменения конфигурации из
Dima
vault традиционно используют чтобы шифровать доступы которые непубличны.
Dima
если все пользуются одними доступами - то какие проблемы?
Dima
не совсем понимаю, как на пустом месте появилась проблема
Alf 🙀
не совсем понимаю, как на пустом месте появилась проблема
мне предложили использовать разные vault_pass для разных пользователей
O
проблемы нет, разделяйте если надо - и не разделяйте если юзают все скопом... проблемы вообще нет
Dima
доступами куда?
куда угодно, начиная от того чтобы подставить в конфиг telegram бота токен, и заканчивая тем чтобы подложить ключ для aws.
Dima
ну... да. если называть инженеров идиотами, и так к ним относиться, то vault не решит этой проблемы.
Dima
достаточно договориться в каком файле какие переменные, в каком файле то что должно быть зашифровано, и дать всем один пароль. и вопрос решен.
Dima
пожалуйста.
Dima
изложите плиз тогда, а какую проблему Вы решаете?
Dima
vault - решение как усилить безопасность и не хранить в открытом виде пароли
Alf 🙀
изложите плиз тогда, а какую проблему Вы решаете?
выше говорили про то что можно разделять пер юзер. я спросил как.