Nklya
Не совсем про дотфайлы, но про настройку макоси. https://github.com/Nklya/macOS-setup
alexander
зато плюсы какие: очень легко настривать host specific вещи в dotfile'ах с помощью template'ов, можно использовать теги, чтобы устанавливать только часть (если хочется), можно даже на удаленную машину свои конфиги деплоить.
Anonymous
Не совсем в тему, но вот есть https://github.com/Russell91/sshrc
alexander
Ну т.е. для того чтобы настроить .vimrc нужно поставить докер? Нет, спасибо.
зато вим не нужно ставить :) его ансибл поставит. ну т.е., у меня докер и так везде стоит, так что не проблема.
Anonymous
Всё своё ношу с собой
Victor
Перефразирию свою позицию. У меня не столько много личных тачек и конфигов для него в дотфайлах
alexander
у меня всего две, и конфигов тоже среднее количестно (vim, emacs, bash, всякие мелкие утилиты). но подход с симлинками уже боль доставляет. некоторые утилиты симлинки перетирают, а еще нужно специфичные для каждого хоста настройки подправлять в конфигах или импортить внешний файл (которые тоже надо не забыть сделать).
alexander
но я понял, да, иногда это оверкилл.
Kirill
не въеду как сделать чтобы содержимое node1 копировалось в sre-k8s-4-1, node2 в sre-k8s-4-2 итд, по этому примеру: https://bpaste.net/show/ddb2c38c828d
Roman
всем привет! а кто-нибудь пользуется ansible'ом для своих dotfile'ов и прочей конфигурации (в личных нуждах, короче)? :) есть ли какая-то боль? чем лучше/хуже других подходов?
Ансибл стоит на одном хосте, раскладывает конфиги на другие, уточню, что речь про личные и не очень сервера. Сами дотфайлы в отдельном репозитории, но шаблонизацию я не использую, при желании можно ручками просто скопировать все. Вообще это вроде как распространенная практика, и не должно вызывать вопроса "а делает ли кто так".
Kirill
ого, как оказывается ansible не умеет работать с host-specific файлами, по типу file1 копируем на host1, file2 на host2, есть волшебный {{ inventory_hostname }} но для этого мне надо эти файлы или директории двигать в files/
Kirill
это прям какая-то боль, то что на шелле делается в пару строк ansible не умеет как оказывается
Victor
> host-specific файл > в files/ Звучит логично, хотя и подозрительно.
Vadim
пути-то тут причем, интересно?
Kirill
почему подозрительно, если у тебя files/host1 files/host2 то таск будет src={{ inventory_hostname }}/ file1 итд
Victor
И почему боль с их организацией
Kirill
хмм, а бэкапы это не host-specific files?
Victor
бэкапы чего?
Kirill
да чего хочешь, как разница чего, того же smtp server, certificates etc
Kirill
потом эти все бэкапы как ресторить если они host-specific?
Victor
имхо host-specific конфигурация должна лежать в inventory, сертификат вообще проще новый поставить.
Kirill
ну если вообще всегда ставить новые сертификаты, то к чему тогда бэкапы, ну да, ну да
Victor
бекапить нужно дату, которая не является конфигурацией
Kirill
какую дату если у тебя сотни k8s нод, с сертификатами, и если одна нода вылетает тебе надо максимально быстро сделать рестор, включая сертификаты
Victor
Но зачем, если можно завести новую ноду?
Kirill
потому что kubeletом надо обновлять все k8s workers если упал мастер, а в случае рестора не надо
Vadim
хранить сертификаты для каждой ноды в ansible? Но зачем? Есть tls bootstrapping
Victor
потому что kubeletом надо обновлять все k8s workers если упал мастер, а в случае рестора не надо
в 2к18м жить с одним мастером. Или я что-то не понимаю про мастера.
Victor
кубер позволяет жить и без воркеров:)
Ну без воркеров так себе жизнь.
Sergey
зато для тестов самое оно(если ресурсов немного) можно разрешить мастеру деплоить на себя
Kirill
ты удивишься но деплоев в мире с одним мастером пруд пруди
Victor
в продакшене?
Kirill
и мы не ограничиваемся одним kubernetes, при управлениями 10-20-30 DNS auth серверами мы делаем бэкапы DNSSEC DBs, и эти вещи нельзя просто взять и создать заново при ресторе ноды
Kirill
в продакшене?
и в продакшене видел лично
Sergey
для тестов миникуб?
миникуб корявая калька
Victor
и мы не ограничиваемся одним kubernetes, при управлениями 10-20-30 DNS auth серверами мы делаем бэкапы DNSSEC DBs, и эти вещи нельзя просто взять и создать заново при ресторе ноды
Делать бекап вирутулки целиком? RTO должно быть меньше. Или у вас baremetall? И да, если мы ресторим ноду, то можно использовать fetch и обратно copy.
Андрей
подскажите куда копать, чтобы понять, что за d,s,p - name: Set the l_env set_fact: l_env: "{% if jm_env=='Develop' %}d{% elif jm_env=='Staging'%}s{% else %}p{% endif %}" это то, что будет если true первый if и то, что будет после else?
Victor
Хотя судя по контексту - p - Production
Андрей
>что за d,s,p Звучат как магические буквы
это пример на so https://stackoverflow.com/questions/42935820/ansible-set-fact-using-if-then-else-statement
Egor
>что за d,s,p Звучат как магические буквы
Это просто переключатели. Переменные просто одной буквой назвали и это вводит людей в заблуждение.
Victor
это пример на so https://stackoverflow.com/questions/42935820/ansible-set-fact-using-if-then-else-statement
Ну у вопрошателя написано не то что он хотел достичь, ему написали как правильно
Artur
привет. с чем может быть проблема. есть хост в заббиксе. при выполнение плейбука есть такое - name: Add link to backup template local_action: module: zabbix_host state: present status: enabled server_url: https://{{ zabbix_server }} login_user: "{{ zabbix_server_login }}" login_password: "{{ zabbix_server_password }}" host_name: "{{ ansible_hostname }}" link_templates: - Template Backup become: no линк на шаблон создаётся, но при этом затираются все остальные линки
tutunak
Так работает этот модуль, нужно перечислять все линки
Artur
This module allows you to create, modify and delete Zabbix host entries and associated group and template data говорят модифицировать может. или это такое странное понятие модификации у них ?
Artur
да и пример есть обновления
tutunak
Нет нормальное, а как ты этим модулем уберешь лишние шаблоны с хоста? Ну и в общем ансибл хранит стейт, т.е. к этому стейту ты приводишь хост
Artur
убирать то и не требуется. я хочу добавить линк к существующим
tutunak
я про гипотетический случай)
tutunak
в общем с такой работой модуля сам столкнулся, если дойдут руки, попробую пулреквест на изменение этого поведения сделать
𝚔𝚟𝚊𝚙𝚜
Парни подскажите как можно извлечь n первых элементов из списка, есть метод какой?
𝚔𝚟𝚊𝚙𝚜
где n - это переменная
Womchik
https://stackoverflow.com/questions/46553820/get-first-n-elements-of-a-list-in-jinja2-template-in-ansible
𝚔𝚟𝚊𝚙𝚜
циклом можно, да
𝚔𝚟𝚊𝚙𝚜
в идеале, хочется как-нибудь range из переменной подставить, типа my_list[range]
𝚔𝚟𝚊𝚙𝚜
где range="0:3"
Womchik
ты же про jinja таки спрашиваешь?
𝚔𝚟𝚊𝚙𝚜
ага
Womchik
ну так и делай фильтрами
𝚔𝚟𝚊𝚙𝚜
каким например?
Womchik
my_list[range]
𝚔𝚟𝚊𝚙𝚜
так range - это переменная, верент ошибку типа elment not found
𝚔𝚟𝚊𝚙𝚜
пока сделал так, но чет это говно какое то :-/ - hosts: localhost tasks: - debug: var: myslice vars: my_list: - a - b - c - d - e elements: 3 myslice_str: "{% for i in range(elements | int) %}{{ my_list[i] }} {% endfor %}" myslice: "{{ (myslice_str | trim).split(\" \") }}"
𝚔𝚟𝚊𝚙𝚜
не канает, 2 - переменная
bebebe
не канает, 2 - переменная
--- - hosts: localhost vars: foobar: - 1 - 2 - 3 - 42 n: 2 gather_facts: false tasks: - debug: var: foobar[0:n]
𝚔𝚟𝚊𝚙𝚜
o__O
𝚔𝚟𝚊𝚙𝚜
странно, почему у меня не сработало
𝚔𝚟𝚊𝚙𝚜
bebebe спасибо, это было просто)
bebebe
обычно в этом месте уточняют версию ansible