Denis
Добрый день, можно ли хранить пассворды в hosts файле в защифрованном виде?
Pavel
если еще есть вопросы - могу в личке подробнее объяснить, с примерами
Denis
ок спасибо
matt
не комильфо, лучше в group_vars, или прямо плейбуке через !vault | (тоже не оч)
matt
Pavel
ок спасибо
вот так у меня выглядят hosts файлы:
[new]
[tomcat]
HETZNER_vPool16_CX20_1
HETZNER_vPool16_CX20_2
[web]
HETZNER_vPool16_CX20_1
HETZNER_vPool16_CX20_3
[mirrors]
HETZNER_vPool16_CX20_4
[test]
localhost
Denis
попробовал зашифровать: python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'
Denis
прошел пароль
Pavel
Pavel
Меня вполне устраивает
Denis
сейчас попробую)
Vladimir
Господа, подскажите пожалуйста, вот есть допустим конфига php-fpm, ну и есть 2 варианта, либо это будет unix сокет, либо ip:port, и я хочу сделать в джнже2, что если допустим в переменно php_fpm_listen есть слово unix, то такие то параметры если нет то другие, как это правильнее сделать ? {% if "unix" in php_fpm_listen} ? Как то так ?
Vladimir
Или есть варианты лучше ?
manefesto
Норм
Vladimir
Ну т.е. такой способ нормальный и юзабельный ? Я просто думаю можно править инлайн модулем еще
Vladimir
Но там наверное с условиями будет хуже
Navern
Джинджа лучше
Vladimir
Понял, спасибо
Denis
кто каким редактором пользуется?
G3rhard
sublime + vs code
Dmitry
вим+yamllint
Aleksey
а по переменным ?
G3rhard
Nklya
VS Code
Aleksey
а по переменным из другого файла ?
Denis
пробую Atom + language-ansible
Aleksey
атом не очень.
Vladimir
Для анзибла - IDEA. Но только потому, что у меня идея уже купленная. А так-то для ямла сгодится и VS Code, и Sublime.
Aleksey
она нифига нормально не подсказывает
Aleksey
даже название модулей и их свойства
Andrey
нет нормальной ansible поддержки нигде толком
Andrey
даже в vim
Andrey
к сожалению
Aleksey
а казалост бы да ?
Aleksey
делов... ямлики распарсить
Womchik
https://atom.io/packages/autocomplete-ansible
Vlad
Для VSCode есть автокомплит в расширении vscoss.vscode-ansible
Bogdan (SirEdvin)
Который везде пихает имена модулей, даже в задачу?
Ievgen
Есть вопрос, может кто натолкнет на мысль, как бы мне хитро отфильтровать list of dicts относительно другого list of dicts, по критерию: когда значение ключа элемента из первого list равно (или не равно) значению аналогичного ключа элемента из второго list (при этом элементы отличаются и только некоторые ключи совпадают, количество элементов в каждом list произвольно)?
Ievgen
звучит немного по наркомански, я знаю, но тем не менее )
Alf 🙀
Ievgen
отфильтровать надо по значению общего ключа, а вывести list диктов из list1 у которых значение ключа НЕ равно (или равно, что в принципе пофиг) значению релевантного ключа в элемантах второго list
Ievgen
как бы это на примере
Alf 🙀
Ievgen
минуту я пример сконструирую, чтобы предметно можно было говорить
Ievgen
list1:
- key1: "value"
key2: "other_value"
key3: "some_other"
key4: "something"
- key1: "value"
key2: "other_value"
key3: "some_other"
key4: "something"
- key1: "value"
key2: "other_value"
key3: "some_other"
key4: "something"
- key1: "value"
key2: "other_value"
key3: "some_other"
key4: "something"
- key1: "value"
key2: "other_value"
key3: "some_other"
key4: "something"
list2:
- key1: "value1"
key2: "other_value1"
- key1: "value"
key2: "other_value"
Ievgen
есть два list
Nklya
Прям как "есть два стула"))
Ievgen
надо из первого list вывести все элементы у которых комбинация key1.value и key2.value НЕ равны аналогичной комбинации из list2
Ievgen
вот такая хрень
Ievgen
)
Ievgen
при этом я могу с этими листами делать что угодно, но на выходе мне надо получить структуру аналогичную структуре исходного list1 с сохранением всех значений
Ievgen
кажется я нашел, всем спасибо )
Ievgen
короче если более красивого варианта нет - with_nested и when решает вопрос
Ievgen
на больших количествах конечно можно офигеть от скипов, но это не тот случай...
Bogdan (SirEdvin)
Кастомный фильтр?
Ievgen
нет все в рамках
Ievgen
- set_fact:
list1: "{{ list1|difference([item[0]]) }}"
with_nested:
- "{{ list1 }}"
- "{{ list2 }}"
when: (item[0].key1 + item[0].key2)|checksum == (item[1].key1 + item[1].key2)|checksum
Ievgen
на выходе получаем отфильтрованный лист
Ievgen
или ты хотел предложить кастомный фильтр?
Bogdan (SirEdvin)
Ага)
Ievgen
да можно и так если запарят скипы так и будет
Womchik
хм. TDD для плейбуков только на руби?
Nklya
Molecule + testinfra - питончик
Womchik
сенкс. а то всё serverspec вылазил
Nklya
Из молекулы 2 версии серверспек выкинули нафиг
Nklya
Порекламирую свою роль. Можно посмотреть пример второй молекулы в докере и куче окружений.
https://github.com/cndies/ansible-role-gotty
Nklya
Но тестинфра честно говоря грустное зрелище имхо
Alf 🙀
Nklya
Чёт я сомневаюсь что pytest умеет тестировать инфраструктуру.
Молекула поддерживает только тестинфру и госс
Nklya
А грустная тестинфра в том плане что оттуда отовсюду торчат костыли.
Например есть возможность проверить ей слушает ли приложение какой-то порт.
Как она это делает. Запускает netstat и грепает нужное. В питоне))
Anonymous
Unsupported
Nklya
Жирчик https://github.com/philpep/testinfra/blob/d584b7d3b7eeb73534030531d0ffbfebbddfe801/testinfra/modules/socket.py#L203
Alexander
Ваааау
Vladimir
Господа, а можете рассказать концепцию {% block name %} в темплейтах для ансибла ?
Vladimir
https://github.com/geerlingguy/ansible-role-nginx/blob/master/templates/nginx.conf.j2