The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз Polemarch 2.0, web-интерфейса для Ansible, opennews (??), 14-Сен-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


2. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Аноним (2), 14-Сен-22, 06:38 
ансибл - это просто шелл-скрипты на yaml. То, что на шелле занимает одну строку:

    cp src dest

на ансибле займет три-четыре:

- name: "Copy src to dest, duh..."
  ansible.builtin.copy:
    src: src
    dest: dest

Ансибл - это императивная фигня, все операции выполняются шаг за шагом ровно так, как ты их указал. Он не декларативен. Если хочется декларативности, стоит смотреть на NixOS и его nix flakes. Ну или на GuixSD.

Ответить | Правка | Наверх | Cообщить модератору

5. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +8 +/
Сообщение от Anatoly (??), 14-Сен-22, 07:06 
То же одна строчка

- ansible.builtin.copy: src: src, dest: dest


И на тыщу машин можно сразу, а у вас как?

ansible 1000hosts -m copy -a 'src=src,dest=dest'

Ответить | Правка | Наверх | Cообщить модератору

8. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от pashev.ru (?), 14-Сен-22, 07:21 
Ты лучше скажи как это файл не забыть потом удалить с 1000 машин.

А скопировать мы можем циклом for + scp.

Ответить | Правка | Наверх | Cообщить модератору

10. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +1 +/
Сообщение от Anatoly (??), 14-Сен-22, 07:23 
Если потребуется параметризация, скрипт у вас будет чрезвычайно жирный (в итоге напишите свой ansible, я такое наблюдал уже). В примере моём разовая акция раскидать файл. Если это периодическая задача, это роль + сценарии. Где что "разбросано" описано в мете файлов инвенторизации.
Ответить | Правка | Наверх | Cообщить модератору

25. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +2 +/
Сообщение от Анонимов Аноним Анонимович (?), 14-Сен-22, 09:26 
Не хочу показаться хэйтером ансибла, просто выступлю в защиту баша.

Баш скрипты можно писать как привычные программы на С или змее. Разбиваете на части, отделяете логику от данных и вуаля - главный скрипт состоит из минимального количества строк. getopt весьма облегчает жизнь.

Где что разбросано - не такая уж и проблема благо можно использовать в не интерактивном режиме запись в sqlite, например, а дальше сверять какому хосту что было присвоено.

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

Ответить | Правка | Наверх | Cообщить модератору

29. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Аноним (27), 14-Сен-22, 09:35 
Пойми уже что ты пишешь это человеку, который не осилил баш.
Ответить | Правка | Наверх | Cообщить модератору

34. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Anatoly (??), 14-Сен-22, 10:00 
Конечно. Но для управления инфраструктурой предпочтителен декларативный язык.
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

39. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Admino (ok), 14-Сен-22, 10:22 
Ты сравниваешь язык программирования и приложение.

Bash гибок и позволяет написать приложения уровня Ansible. Python тоже.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

17. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от ыы (?), 14-Сен-22, 08:49 
Ну в вашем случае- можете
"циклом for + " ssh + rm -rf  ...   :)
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

35. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +2 +/
Сообщение от Аноним (35), 14-Сен-22, 10:01 
>как это файл не забыть потом удалить с 1000 машин

ansible linux_servers -m file -a "dest=/home/test-file.txt state=absent"

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

135. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Легивон (?), 19-Сен-22, 21:49 
Отписавшиеся в таком духе (state=absent) не понимают контекста использования тулзы. Ансибл часто употребляют когда в конфигурациях сотни шагов и десятки ролей, когда это разрабатывается командами и никто в полной мере не понимает что оно делает. Тогда неаккуратное редактирование тасков или удаление ролей запросто приводит к оставлению забытого стейта на хосте. С эти очень сложно бороться, ибо не понятно что нужно удалять, это подчастую ни простые файлики.
В этом плане у ансибла большие проблемы. И их устранение это лютые костыли и совсем уже не декларативщина, о которой кукарекаю кукаретики. А настоящая императивщина т.н. "программирование на Ансибле".
По хорошему в ансибле надо не удалять создаваемые сущности, а деактивировать (впрочем это справедливо и не только для ансибла). Например сгенерировали новый nginx конфиг из структуры в конфигурации, в случае необходимости его удаления: не удаляем структурку, а ставим в ней флаг - неактивно и генератор конфига понимает что его надо удалить.
И еще хороша комбинация, когда ансибл это прямо самое примитивное развертывание уровня: настроить юзеров, поставить докеров/кубирнетисов. А все остальное, где нужна настоящая декларативность, переложено на терраформ. Например таким образом мы ансиблом катаем keyclock (погда пофигу на декларативность), а тераформом управляем его конфигурацией (когда должно быть все строго).
Ответить | Правка | Наверх | Cообщить модератору

136. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от fiftin (ok), 20-Сен-22, 07:34 
Для меня Terraform - это IaC, а Ansible - configuration management, деплой.

Вот в доках терраформ:

Terraform is not a configuration management tool... Terraform focuses on the higher-level abstraction of the datacenter and associated services...

Расскажите как вы используете Terraform для конфигурирования?

Ответить | Правка | Наверх | Cообщить модератору

137. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Легивон (?), 21-Сен-22, 19:03 
Наш пример не репрезентативен. Это явно вырожденное использование терраформ.
Имеем большое наследие использования Ансибла. Как следствие все конфигурации используют его входной точкой и источником правды. Поэтому каждый раз при развертывание чего-то где есть терраформ генерируем максимально примитивный тераформ конфиг (практически всегда определение каждого ресурса отдельно, никаких for each и проч итераций, никакого хранения переменных - все подставляется сразу в конфиг) через jinja2 и запускаем Ансиблом в CI в заранее подготовленом докер образе со всеми тулзами и модулями. Стейт храним в консуле.
Используем терраформ просто как интерфейс к созданию необходимых ресурсов там где нужно их отслеживание (чтобы не изобретать его каждый раз и по новому на ансибле).
Ответить | Правка | Наверх | Cообщить модератору

38. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Admino (ok), 14-Сен-22, 10:20 
> А скопировать мы можем циклом for + scp.

А если одна машина в этот момент будет выключена? А если плохая связь?

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

69. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +1 +/
Сообщение от freehckemail (ok), 14-Сен-22, 13:26 
>> А скопировать мы можем циклом for + scp.
> А если одна машина в этот момент будет выключена? А если плохая связь?

Вы так говорите, как будто в этом случае с ансиблом будет нечто иное, нежели с scp. =)

Ответить | Правка | Наверх | Cообщить модератору

68. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от freehckemail (ok), 14-Сен-22, 13:25 
> Ты лучше скажи как это файл не забыть потом удалить с 1000 машин.

ansible.builtin.file
state: absent

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

79. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +3 +/
Сообщение от anonymous (??), 14-Сен-22, 14:33 
Ansible скопирует файл в параллельном режиме, а твой for + scp будет работать до второго пришествия и без гарантии доставки.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

13. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от onanim (?), 14-Сен-22, 08:16 
диды пользовались pdsh и parallel
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

28. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +1 +/
Сообщение от Аноним (27), 14-Сен-22, 09:34 
Тоже самое можно сделать через простой ssh даже на двадцать тысяч серверов. Ансибл тут явно лишний.
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

36. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от pin (??), 14-Сен-22, 10:05 
> И на тыщу машин

И вcё через SSH? Это тупик.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

73. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Аноним (35), 14-Сен-22, 13:51 
Если у вас все машины работают под VMware, и нет к ним поступа по SSH, но на всех машинах установлен open-vm-tools и есть пароли к ним, то тогда к вам на помощь спешат Чип и Дейл:
community.vmware.vmware_guest_file_operation
community.vmware.vmware_vm_shell

Или вы хотите клиентов на машины ставить из-за того что ssh не достаточно православен? Тогда вам нужен не ансибль, а что-то другое.

Ответить | Правка | Наверх | Cообщить модератору

7. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Аноним (7), 14-Сен-22, 07:19 
Угу, бахни на шелле что-то комплексное, сложное, ещё и сохраняющее имподентность в разных непонятных ситуациях.
Потом вместе посмеёмся
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

9. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  –1 +/
Сообщение от pashev.ru (?), 14-Сен-22, 07:22 
Идемпотентность в ансибл не является неотъемлемой чертой, а требует внимательного и вдумчивого проектирования.
Ответить | Правка | Наверх | Cообщить модератору

16. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +1 +/
Сообщение от ыы (?), 14-Сен-22, 08:46 
Ну, если вместо встроенных команд использовать raw и как в примере выше- некорректно написанный cp - то отнять можно...
Ответить | Правка | Наверх | Cообщить модератору

26. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +2 +/
Сообщение от Ananim (?), 14-Сен-22, 09:29 
Научись идемпотентность по-русски писать, импоДент.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

67. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +2 +/
Сообщение от freehckemail (ok), 14-Сен-22, 13:23 
> Угу, бахни на шелле что-то комплексное, сложное, ещё и сохраняющее имподентность в
> разных непонятных ситуациях.

Я уже 5 лет работаю с ансиблом, и однозначно утверждаю, что любую логику сложнее "создай из шаблона" / "положи по данному пути" -- надо писать на шелле. Ансибл на удивление непригоден для описания сложной логики. Декларативность и идемпотентность ансиблом обеспечиваются ровно в той же мере, что и в шелле. А вот возможностей реализации сложной логики шелл предоставляет на порядок больше.

> Потом вместе посмеёмся

Ну напишите что-нибудь, не являющееся рокет-саенсом. Роль, для создания пачки локальных пользователей на группе хостов. Чтобы позволяла выдать sudo, задать или отключить пароль, трекать ключи в authorized_keys, могла задизейблить или удалить пользователя. Обязательно декларативную и идемпотентную. Вот напишите это в двух вариантах: первый вариант -- на чистом ансибле, а второй -- шелл-скриптом, который ансиблом дёргается. Как только вы это сделаете, вы поймёте, что вопреки распространённому мнению о том, что с шеллом в ансибле нужно бороться, есть много кейсов, где его применение более чем оправдано.

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

100. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  –1 +/
Сообщение от Аноним (100), 14-Сен-22, 18:33 
> трекать ключи в authorized_keys

Админов локалхоста видно издалека. Хлебом не корми, дай ключи пораскладывать. Когда ж вы научитесь этими вещами управлять нормально?

Ответить | Правка | Наверх | Cообщить модератору

114. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от RHEL Fan (?), 15-Сен-22, 09:38 
Сделай доброе дело, научи, как нормально то управлять.
Ответить | Правка | Наверх | Cообщить модератору

132. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Аноним (100), 16-Сен-22, 19:01 
Учить опеннет — себя не уважать. В документации на OpenSSH всё расписано.
Ответить | Правка | Наверх | Cообщить модератору

126. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от PnD (??), 15-Сен-22, 19:10 
Массовое про пользователей просто не так проектируется. Ставите что-нибудь LDAP-обра́зное (в т.ч. dirsrv /бывший dir389/, freeIPA и даже m$ AD). И настраиваете sssd на клиентах (онтопика).
* authorized_keys обычно приходится прикручивать доп. схемой. И мне не встречалось реализации политики "твой ключ устарел" (как с паролем обычно поступают).

Вот для "расставить sssd" уже́ есть смысл в ansible.
Но если нужно нормально декларировать и (страшное слово) комплаенс-репорты (отчёты "у кого всё ок, а с кем надо дальше разбираться"), то для больших сетей есть смысл посмотреть в сторону cfEnfine и производных. Собственно, единственная на данный момент "управлялка" (причём, родом из 1980х) которую вначале постарались спроектировать. И даже некоторую "математику" под это дело подвели (т.н. "теория обещаний").

Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

130. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +1 +/
Сообщение от RHEL Fan (?), 16-Сен-22, 15:25 
Если вместо ключей использовать сертификаты, то будет и "устарел". SSH, вроде, умеет.
Ответить | Правка | Наверх | Cообщить модератору

14. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +1 +/
Сообщение от daydveemail (?), 14-Сен-22, 08:16 
ММ...Мамкиных хакеров подвезли, которые ansible только в новостях на Opennet'е видели :)
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

15. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от ыы (?), 14-Сен-22, 08:44 
Ну конкретно ваш пример не эквавалентен тому что делает ансибл от слова совсем.
Вы, ключами к команде "cp", и дополнительной обвязкой из других утилит и простыни на шелл, можете сделать нечто подобное тому что ансибл сделал четырьмя строками.
И если вы это сделаете- значит у вас просто дофига свободного времени на экзотические развлечения.
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

18. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Аноним (18), 14-Сен-22, 08:59 
А у вас много лишнего времени чтобы изучать "вещь-в-себе" ansimble, в то время когда знания продвинутого скриптинга sh/bash пригодятся на любом дистрибутиве linux в перспективе, вне зависимости от того есть там ansimble/puppet/... или нет
Ответить | Правка | Наверх | Cообщить модератору

127. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +1 +/
Сообщение от Наноним (?), 16-Сен-22, 01:36 
На определённых объёмах ресурсов и задач да, это того стоит.
Ответить | Правка | Наверх | Cообщить модератору

33. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от Юрий (??), 14-Сен-22, 09:46 
О! Эхсперт опеннета по ансиблу)
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

113. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +/
Сообщение от ыы (?), 15-Сен-22, 08:10 
О! Эхсперт по Эхспертам :)
Ответить | Правка | Наверх | Cообщить модератору

118. "Релиз Polemarch 2.0, web-интерфейса для Ansible"  +1 +/
Сообщение от Алексей (??), 15-Сен-22, 11:39 
Во-первых, не cp, а scp.
Во-вторых, сразу на несколько хостов.
А ещё - если файл на хосте уже есть, и с нужной (md5|sha1|...)-суммой, то копирования не будет

Всё это можно сделать на shell, и даже в одну строку, но она будет слегка длинновата.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру