LINUX.ORG.RU
ФорумTalks

Про KISS и оверинжиниринг

 ,


0

1

Мне нужно, чтобы комп мог резолвить ровно 3 хостнейма. Только три, больше ничего никогда не будет, по условию задачи. Хостнеймы должны накатываться скриптом сразу после установки Линукса.

Попросил совета в фейсбуке, и родился такой вот тред: https://www.facebook.com/olegchir/posts/1062018650487808

Думал, кто-то подскажет хороший консольный редактор для /etc/hosts

Получилось наоборот. Совершенно все чморят меня, и заставляют для этой задачи установить чертов BIND

Неужели это действительно так нужно - тащить огромный, сложный, сложнонастраиваемый сервер, если есть альтернатива в 3 строчки?

★★★★☆

0) Обалдеть, в salt есть: https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.hosts.html

1) Накой?!

2) Аналогов file.managed и file.append нет? Не верю!

3) Интеграции с каким-нибудь augeas нет? Не верю!

4) Плохой, некачественный недоaugeas на компилируемом языке?

5) Посылаю тебе лучи презрения.

6) Накой?!

t184256 ★★★★★
()

127.0.0.1 rabbitmq
#127.0.0.1 mysql
127.0.0.1 redis
#127.0.0.1 swarm 

#172.31.0.12 rabbitmq rabbitmq-1 
172.31.0.12 mysql

я не понимаю в чем проблема то?

Deleted
()

Думал, кто-то подскажет хороший консольный редактор для /etc/hosts

ed, sed, vi, тысячи их

NeXTSTEP ★★
()

Тебе простой текстовый файл править какой-то мегаредактор нужен? Что там должно быть? (o_O)

Deleted
()
Ответ на: комментарий от Deleted

правка базы хостов автоматическая. Поэтому текстовый редактор нельзя. «Редактор» - в смысле UNIX-way утилиту, чтобы там было удобное API для легко вызова из других скриптов. Проверенное в бою. ( t184256 советует некий augeas, посмотрю завтра). Юзать наколенные только что придуманные регэкспы - это не похоже на надежное решение.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Я советую не сколь сам augeas и даже не сколь его идеологию, а скорее что-то аналогичное способное решить твою задачу с хорошей интеграцией в ansible, которая полюбому есть.

Хотя и просто абстрактная расширяемая система правки любых конфигов уже принципиально мажорирует твой велосипед.

Хотя у тебя стопудово баг еще до формулирования задачи.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от stevejobs

Ты не можешь написать скрипт на рубипитонах, который распарсит текстовый файл простейшего вида? Ах, да, ты ж хейтер. Возьми другой язык. Не будь вендузятником в конце то концов.

Deleted
()

накатываться скриптом

Я так и не понял в чём проблема дописать в /etc/hosts из этого же скрипта.

true_admin ★★★★★
()

Лол, посмотрел на эту hostess.

Why? Because you edit /etc/hosts for development, testing, and debugging. Because sometimes DNS doesn't work in production. And because editing /etc/hosts by hand is a pain. Put hostess in your Makefile or deploy scripts and call it a day.
hostess add local.example.com 127.0.0.1

Честно, я удивился, что она не платная. Ведь набрать «echo» так сложно.
Хотя, может, это для виндузятников, у них до hosts путь неудобный.

dogbert ★★★★★
()
Ответ на: комментарий от dogbert

ты меня удивляешь

127.0.0.1 жберт догберт царь анонимус

теперь мы добавляем туда новый адрес для догберта через твой гениальный совет и получаем

127.0.0.1 жберт догберт царь анонимус
192.168.0.1 догберт

приплыли

теперь добавь к этому, что ты вообще можешь оказаться не единственным, кто этот файл редактировать пытается одновременно с тобой

конечно, все это можно обрулить, но не так же вломовую просто echo

просто echo можно было бы сделать, если бы у нас была UNIX-way обертка, которая поддерживала такой подход

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Ты меня тоже. У тебя три хоста, которые надо записать скриптом после установки. Если нет особой тяги к удалению гланд секатором, я не понимаю, чем тебя не устраивает echo. Сам ж написал про KISS.

dogbert ★★★★★
()
Ответ на: комментарий от dogbert

Там какой-нибудь пьяный админ может еще хостов понаписать. То есть в лучшем случае их три. А в худшем, «если что-то пойдет не так» - сколько угодно. То есть, затачивать перфоманс вставки новой записи особого смысла нет, но и зафакапить весь файл кривым регэкспом тоже непозволительно.

stevejobs ★★★★☆
() автор топика

Совершенно все чморят меня, и заставляют для этой задачи установить чертов BIND

Пять комментариев, из которых один — шутка про BIND.

i-rinat ★★★★★
()

хороший консольный редактор для /etc/hosts

Vim чем не устроил? Или nano, если не осилил. Зачем что-то еще?

Klymedy ★★★★★
()
Ответ на: комментарий от stevejobs

Там какой-нибудь пьяный админ может еще хостов понаписать

Ну напиши скрипт на баше, который при изменении даты /etc/hosts будет орать в /dev/dsp, открывать дисковод, а тот через систему тяг — бить админа линейкой по пальцам. Keep it simple!

dogbert ★★★★★
()

Получилось наоборот. Совершенно все чморят меня, и заставляют для этой задачи установить чертов BIND

Правильно делают. Настройка бинда - 15 минут делов.

invy ★★★★★
()
Ответ на: комментарий от stevejobs

Там какой-нибудь пьяный админ может еще хостов понаписать. То есть в лучшем случае их три. А в худшем, «если что-то пойдет не так» - сколько угодно

Только три, больше ничего никогда не будет, по условию задачи

ничего никогда

Извини, дружище, но ты или идиот или очень наглый

buddhist ★★★★★
()
Ответ на: комментарий от buddhist

наглый идиот, а почему ви спрашиваете? :)

stevejobs ★★★★☆
() автор топика

hosts и отдающий его содержимое dnsmasq? работает стопроцентно и везде

Deleted
()

и введи ясность что тебе надо? резолв адресов на одном компе? и какой к чертям редактор? любой подойдёт

Deleted
()
Ответ на: комментарий от stevejobs

ты вообще можешь оказаться не единственным, кто этот файл редактировать пытается одновременно с тобой

Во время установки? Вы там вдесятером софт устанавливаете одновременно что ли?

Deleted
()
Ответ на: комментарий от stevejobs

Не пиши кривые регэкспы, вообще не пиши регэкспы, делай лексический анализатор, потом синтаксический.

Int64 ★★★
()
Ответ на: комментарий от stevejobs

А в худшем, «если что-то пойдет не так» - сколько угодно.

Тогда какой-нить ansible или saltstack. Ну или puppet, тысячи их.

true_admin ★★★★★
()

Мне нужно

к врачу

Igron ★★★★★
()
Ответ на: комментарий от true_admin

у меня и так ansible, но оно так не умеет:

http://docs.ansible.com/ansible/hostname_module.html

Note, this module does NOT modify /etc/hosts. You need to modify it yourself using other modules like template or replace.

выше уже объяснил, что использовать replace по регэкспу - это плохая идея, а использовать template шаблон файла нельзя потому что файл может редактировать кто-то кроме тебя

stevejobs ★★★★☆
() автор топика

Хорошо на тебя шетухин покакал :D

Joe_Bishop
()
Ответ на: комментарий от true_admin

это потому что надо не только гуглить, а еще читать, что написано в предыдущем сообщении :)

выше уже объяснил, что использовать replace по регэкспу - это плохая идея

stevejobs ★★★★☆
() автор топика

А у меня вот вопрос насчет /etc/hosts.
Я добавил в него запись

::1 host1.ru

После этого firefox исправно идет по host1.ru на уютненький локалхост. А chromium продолжает идти туда, куда на самом деле резолвится это имя. Сброс днс-кэша самого хромиума и его перезапуск не помог. chrome://dns/ говорит, что DNS pre-resolution and TCP pre-connection is disabled.
1. Можно ли починить (не считая варианта «заслать патч в хромиум»?
2. Получается, что возможность прострелить ногу редактированием /etc/hosts куда ближе, чем кажется.

unikoid ★★★
()
Ответ на: комментарий от unikoid

хз, наш софт не умеет ipv6 и глючит на нем, поэтому первая же операция после установки ОС - в /etc/sysctl добавить

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

в Хроме можно только пойти в chrome://net-internals/#dns и нажать Clear Hosts Cache

вопрос в том, ведет ли себя так нормальный софт из дистрибутива, или только зондальный говнокод от Гугла

stevejobs ★★★★☆
() автор топика
Последнее исправление: stevejobs (всего исправлений: 2)
Ответ на: комментарий от stevejobs

Если ты кладешь файл под управление CMS - его никто не должен редактировать вручную, это аксиома.

Собственно, в этом треде мы чётко видим, что получается, когда программист начинает решать админские задачи.

leave ★★★★★
()
Ответ на: комментарий от leave

его никто не должен редактировать вручную, это аксиома

если все приучились жрать говно, совершенно не значит, что тебе нужно поступать так же

да, софт для совместного редактирования на порядок, а может и на пару порядков, сложнее, чем просто фигакнуть файл из шаблона. Это что, значит что его не нужно писать и продолжать жрать говно?

пользуясь такой логикой, не было бы Google Docs, люди так бы и продолжали в одно рыло править файл, а потом синхронизовать его в гите или электронной почте, прости господи

задача сложная, поэтому я и не пытаюсь решить ее сам, а сразу ищу готовые проверенные солюшены

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

Тогда возьми какой-нибудь днс сервер, который умеет инклюды в конфиге.

PolarFox ★★★★★
()
Ответ на: комментарий от stevejobs

Эти записи можно промежуточно хранить в базе данных, sqlite, например. А уже из неё в итоге генерировать файл hosts. Это решит некоторые проблемы.

Adept_of_shreedom
()
Ответ на: комментарий от stevejobs

Сменил на 127.0.0.1, конец немного предсказуем, дело не в ipv6. Про то, что кэш днс чистил, я еще в первом сообщении написал.

вопрос в том, ведет ли себя так нормальный софт из дистрибутива

1. Почему хромиум нельзя считать «нормальным софтом из дистрибутива», если он лежит в официальном репозитории?
2. Если что-то может случиться - оно случится и не раз. Сегодня хромиум, завтра curl или wget, например.

unikoid ★★★
()
Ответ на: комментарий от stevejobs

Стиви, ты нихера вообще не понимаешь в управлении конфигурациями. Как ты обеспечишь целостность и повторяемость, если допускаешь ручное редактирование?

Короче, или ставь днс сервер, который умеет в инклуды, или генерируй из шаблона и не сношай людям мозг.

leave ★★★★★
()

vim хорош для конфигов, некоторые еще имакс ставят, но туда текстовый редактор впилить не так уж и просто

mystery ★★
()

жну-линупс

Тащемта сам напросился, хотя

Туда даже мой препод по программированию приперся поглумиться!

Здесь могу посочувствовать, это прямо как в анекдоте про «Доктор, меня все игнорируют»!

hobbit ★★★★★
()
Ответ на: комментарий от stevejobs

использовать replace по регэкспу - это плохая идея

«lineinfile - Ensure a particular line is in a file». Никто не заставляет регекспами пользоваться, тебе достаточно, «ensure line in file».

true_admin ★★★★★
()
Ответ на: комментарий от leave

ТСу должно давно уже привыкнуть, что host-only бывает только в мечтах. Воспаленных. Даже сраный локальный MDA зачастую работает через сокеты.

no-dashi ★★★★★
()

тред не читал - отключи в nsswitch резолв через dns и распространяй hosts как тебе вздумается

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.