Sergey
как обычно - в доке
Sergey
Хотя не, не то. В общем, твой кейс Ансиблом не покрывается- тут скорее какой-нить Шеф или Паппет, где в полной мере pull присутствует.
Stepan T.
Я правильно понял, что ansible-pull тянет выложенный playbook.yml и делает ansible-playbook ~/path/to/playbook.yml localhost -bK? Ну или типа того?
Stepan T.
Ну принцип работы примерно такой, да?
Stepan T.
+-
Sergey
Ну принцип работы примерно такой, да?
Возможно, но - ещё раз - лучше посмотри код, чтобы не наделать неверных выводов из моих слов.
Stepan T.
Вырисовывается какой-нибудь systemd *.service файл, который при включении/выключении компа тянет плэйбук и конфигуряет систему. Даём права доступа на редактирование этого *.service, чтобы ребята из ТП могли его конфигурять, меняя ссылку на playbook.yml, ведём учёт изменений этого самого playbook.yml в репозитории и получаем какое-то подобие групповых политик венды. Обожаю линукс в качестве desktop среды.
Stepan T.
троллейбус.jpg
Есть какой-то инструмент, который подходит лучше?
Stepan T.
=(
Vadim
Freeipa, fleet commander
Stepan T.
fleet commander в голову приходт, но там привязка к DE
Stepan T.
Freeipa, fleet commander
Ты видел принцип работы FC?
Stepan T.
Пардон, что такое АПВС?
Vadim
"А почему Вы спрашиваете?"
Stepan T.
FC очень ресурсоёмко, там же надо гипервизор для KVM держать
Stepan T.
В общем это рассматривалось, но есть ограничения. Например у нас практически 95% хостов в качестве DE используют xfce которая FC не управляется
Stepan T.
Такой процент условно-легковесного DE вызван тем, что около 50% пользователей сидят за неттопами с intel atom 450, 510, 525
Stepan T.
В общем итоге fleet commander это здорово, но для нас неприменимо.
Stepan T.
Puppet лично мной рассматривался, но по каким-то причинам (сложность настройки?) идея руководителем отвергнута. Так что приходится вытворять троллейбус.jpg
Stepan T.
Кстати, спасибо за консультацию и помощь.
Vadim
Puppet лично мной рассматривался, но по каким-то причинам (сложность настройки?) идея руководителем отвергнута. Так что приходится вытворять троллейбус.jpg
Альтернативно я бы попробовал внедрить Fedora/Debian/по вкусу Atomic, с атомарными апдейтами и иммутабельным рутом
Alex
точнее отвалится become
Alexander
точнее отвалится become
Смотря что написано в sudoers
Stepan T.
Сверху коллега написал, что для корректной отработкий плэйбуков на хостах, там нужно разрешить выполнять python с sudo
Err
Добрый день ребята. Подскажите пожалуйста как можно создать переменную или факт чтобы он был получен с одного хоста и был доступен для другого хоста?
Lev
расскажите, а кто как тестирует написанные модули для ансибла? юнит тестами покрываете или роли гоняете? или на честном слове?
Me
Парни, есть inventory: nocwww01 ansible_host=172.00.236.100 nocwww02 ansible_host=172.00.236.101 как добраться до ansible_host ?
Mikhail
вопрос на три секунды: каким фильтром из host.example.com сделать host ?
Mikhail
чет я и не помню такого во встроенных
Ждун
python?
Mikhail
это да, уже хак =)
Ждун
почему хак, ансибле официально же поддерживает вставки из питона
Mikhail
msg: "var is : {{inventory_hostname.split('.')[0]}}"
Mikhail
работает, но выглядит таксе, на мой вкус
Ждун
напишите custom филььтр parse_host на питоне, добавьте filter_plugins и делайте красиво {{var | parse_host}} что нибудь
Ждун
но оно того не стоит )
Cyrill
о местные гуру ансибла, я с ним знаком на пол шишечки, и моя задача тривиальна, но я не могу допедрить что я делаю не так, есть желающие помочь разобраться?
Cyrill
tasks: - name: change a str lineinfile: dest=/etc/sssd/sssd.conf regexp='^.+(111).+$' insertbefore=BOF line='222'
Sergey
tasks: - name: change a str lineinfile: dest=/etc/sssd/sssd.conf regexp='^.+(111).+$' insertbefore=BOF line='222'
и так не надо делать 😊))) твой модуль для этой задачи - template
Cyrill
root@spb0odv067:~# diff /etc/sssd/sssd.conf /etc/sssd/sssd.conf.origin 31c31 < 222 —- > ldap_default_bind_dn = cn=reader,dc=111,dc=su
Cyrill
вот спасибо,
Cyrill
за template
Cyrill
а можно пример ?
Cyrill
задача банально просто заменить символы на куче хостов в одном файле, неужели никто не сталкивался с подобным ?
Cyrill
я понимаю что через vim это делается одной строкой, но с другой стороны хотелось бы изучить данную фишку через ансибл
Cyrill
и так не надо делать 😊))) твой модуль для этой задачи - template
Я не поясничал, я просто выразил глубокое уважение ко всем здесь присутствующим
Cyrill
штука народу шутка ли
Ждун
есть фильтр urlsplit
Ждун
но он не покажет
Sergey
задача банально просто заменить символы на куче хостов в одном файле, неужели никто не сталкивался с подобным ?
Ты исходишь из очень спорной постановки задачи - "я не отвечаю за то, что там, в конфиге, моё дело заменить несколько символов".
Err
* создать факт на host1 * на host2 сделать hostvars[host1].factname
надо же указать имя хоста что находится в фаиле hosts?
Vadim
Err
это имя хоста в инвентори энсибла
немогу понять. У меня в инвентори только [group name], потом я делаю set_fact на var1 в таске host1, и хочу получить этот var1 в другом host2
Natalia
ребят, помогите, плиз. есть таск: tasks: - name: test raw: "curl https://path/to/config/test.conf | grep '{{ item }}'" with_items: - agents\[0\].protocol register: agents_data - debug: var: agents_data.results если выводить debug: var=agents_data.results, то инфа выводится: TASK [debug] ******************************************************************************************************** ok: [localhost] => { "agents_data.results": [ { "_ansible_ignore_errors": true, —----------куча всякого разного------------ "stdout": "agents[0].protocol=UDP\n", "stdout_lines": [ "agents[0].protocol=UDP" а из debug: var=agents_data.results.stdout_lines - VARIABLE IS NOT DEFINED! TASK [debug] ******************************************************************************************************** ok: [localhost] => { "agents_data.results.stdout_lines": "VARIABLE IS NOT DEFINED!" в чем косяк?
Salem
raw:
Salem
Вообще это кощунство так делать, пользуйте shell или command
Vadim
uri жи
Natalia
command не групает, наверное не видит '|', а с shell тоже самое, что и с raw
Salem
не, ей строки нужны из конфига по http
Natalia
uri жи
может не совсем разобралась, но не прокатило. нужно грепнуть строку