LINUX.ORG.RU

Релиз Ansible 2.1: поддержка Windows/Azure, контейнеров и настройка сети

 , ,


0

2

25-го мая вышла очередная версия Ansible — 2.1

Некоторые новшества:

  • Поддержка Azure и новые модули для Windows
  • Модули управления сетью поддерживаются официально (tech preview в 2.0)
  • Переработаны модули поддержки контейнеров: дополнения в модуле Docker, новый модуль для Kubernetes

Changelog

Github

>>> Официальный пресс-релиз

★★

Проверено: Shaman007 ()

Когда откроют Tower? Или Шапка таки оценила преимущества проприетарного софта?

anonymous ()

а я уже почти месяц использую 2.2.0. Как раз из-за докеров пришлось стянуть с гита дев-версию.

Работает норм.

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

Надо будет попробовать, но я ограничивался опциями -vvvv --check

Я когда для себя check открыл, был очень рад! :)

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

https://github.com/dmsimard/ara

Ух ты, интересная штука. Жалко, PCI DSS автоматизацию такого рода запрещает - нельзя общие учётные записи и обязателен 2FA.

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

общие учётные записи

Это решаемо

обязателен 2FA

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

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

общие учётные записи
Это решаемо

Нерешаемо, стандарт напрямую это запрешает:

8.5 Do not use group, shared, or generic
IDs, passwords, or other authentication
methods as follows:
- Generic user IDs are disabled or
removed.
- Shared user IDs do not exist for
system administration and other
critical functions.
- Shared and generic user IDs are not
used to administer any system
components.

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

у меня эта радость бегает при автоматизации тестов, так что без проблем. А если не хватает фичеров, можно написать автору, думаю он будет в восторге

dyasny ★★★★★ ()

Поддержка lxc2.0 есть?

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

на коленке пишется

написал я тут скриптик на пайтоне, полторы тысячи строк, сугубо нужный для моей работы функционал. изменился API при смене версий, я у себя код поправил, плюс дописал опознание версий скриптом. Потом оказалось что скрипт вовсю используется целой группой в QA, и посыпались запросы и багрепорты, а тут еще одна версия подоспела, опять с измененным API, скоро второй пайтон перестанет поддерживаться и надо будет переделывать под третий... Короче, если есть софт в коробке, никогда не стоит городить собственный велосипед. В моем случае такого софта нет, и мне теперь приходится тратить в среднем по 6-8 часов в неделю на поддержку того что начиналось как мелкий скрипт на коленке.

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

Не спорю, но в моем случае необходимой вебморды для Ansible просто не нашлось, так что пришлось из полутора коллбеков и простенького сервера на python делать свою. Может функционал и хуже tower'а, за то разворачивается в разы проще и есть не просит.

и мне теперь приходится тратить в среднем по 6-8 часов в неделю на поддержку того что начиналось как мелкий скрипт на коленке.

В своей вебморде я разберусь, а вот как что-то городить в tower (если потребуется и это не противоречит лицензии) у меня понимания нет. В Ansible-то лишний раз особо не влезешь, хотя вроде python и не сверхсложный функционал.

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

Там тебе всё правльно пишут. Не надо использовать инструмент для оркестрации как средство управления конфигурациями. То, что так физически можно делать не значит, что это нужно и, тем более, правильно. PCI DSS не запрещает автоматизацию. Бери CFEngine и делай что угодно.

anonymous ()

Оно уже на третьем Питоне работает?

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

В Ansible-то лишний раз особо не влезешь, хотя вроде python и не сверхсложный функционал.

Всё живёт на guthub, пилишь что надо и посылаешь PR. Они нормально с сообществом работают, по крайней мере мне отвечали быстро и по делу.

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

сеть в линуксе можно через него конфигурировать ?

Для network manager - есть модуль, который вроде как умеет всё.

Для традиционных способов (debian interfaces, redhat sysconfig/networking), или если используется всякая сложная магия(iptables, ipset, iproute2) - можно генерить файлы конфигурации из шаблонов и дёргать handler-ы на обработку.

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

Не надо использовать инструмент для оркестрации как средство управления конфигурациями.

Мне казалось, ansible в первую очередь управлялка конфигурацией.

PCI DSS не запрещает автоматизацию.

Не запрещает, у меня как раз через ansible всё бегает. Но т. к. общие пользователи запрещены, я не могу поднять веб-морду к ansible, дать ей рута на всех хостах, и чтобы она автоматиизрованно запускала таски на хостах. Только запускать с управляющего хоста плейбуки от имени конкретного админа.

Ну разве что иметь внутри это морды 2FA авторизацию, и чтобы после авторизации она запускала таски от моего пользователя с моим ssh-ключом. Спрошу ради интереса у аудиторов. Но автоматический запуск без моего присутствия всё равно нельзя.

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

Насчёт быстро не скажу, некоторые патчи месяцами висят, несмотря на то, что это багфиксы. Но введение community review местами улучшило ситуацию очень значительно. Я обычно в течении недели успеваю сделать review, а не месяца-трех, как было при core review раньше.

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

Нерешаемо

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

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

Делаешь защищенное хранилище учеток и из него берешь данные для каждого коннекта, в чем тут проблема может быть?

В том, что во-первых, автоматически 2FA аутентификацию не сделаешь. Потому что все сохранённые сертификаты, ключи, пароли - это фактор обладания. А для фактора знания(или для биометрии, как вариант) - нужен живой пользователь. То есть запускать задачи по расписанию эту штука всё равно не сможет, только под личным контролем, а так весь смысл теряется.

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

я просто говорю о том что любое «на коленке» может внезапно превратиться в полноценный проект, который надо поддерживать

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

Мне казалось, ansible в первую очередь управлялка конфигурацией.

Это распространённое заблуждение. Ansible — это типичное ПО для так называемой оркестрации. Да, его можно использовать для управления конфигурациями, но это как минимум неудобно.

То, что ты делаешь с Ansbile — это не автоматизация. Когда ты не сможешь предоставить свой второй фактор по каким-либо причинам, как будет осуществляться управление? Никак. Именно эту проблему решает ПО уровня CFEngine — твои серверы сразу же теряют зависимость от внешнего знания и при этом гарантируют (до известных пределов) детерминированное состояние.

Но большинство предпочитает нанять двух эникеев и посадить их реагировать на оповещения Nagios днём и ночью.

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

Запускать по расписанию не обязательно.

Сертификация это такая штука, которой ты должен соответствовать постоянно, а не только в те десять минут, когда ты аудитору всё показываешь. Без постоянного контроля (по расписанию, отдельным демоном, как угодно) у тебя так не получится. Поэтому Ansible хорош когда надо внести оперативные изменения в системе, но не для контроля и обеспечения соблюдения нормативов.

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

А почему смысл теряется? Сделать себе кнопку это же удобно. Запускать по расписанию не обязательно.

Ну ИМХО смысл именно в том, чтобы оно по расписанию прогоняло плейбуки и с утра ты смотрел на красивый отчёт. Можно поставить локально и использовать, но тогда сильного преимущества перед запуском из консоли не вижу.

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

Да, его можно использовать для управления конфигурациями, но это как минимум неудобно. То, что ты делаешь с Ansbile — это не автоматизация.

Налить новый сервак за 10 минут; обновить конфиги сервиса на всей группе серверов сразу; (ИМХО главное) видеть все конфиги в одном репозитории, а не гадать, в каком из 2000 файлов в /etc ты когда-то что-то настраивал. По-моему, вполне себе автоматизация.

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

Никак не будет и не должно. Если я не предоставил свой второй фактор, а осуществляется какое-то управление - значит, нас взломали.

Именно эту проблему решает ПО уровня CFEngine — твои серверы сразу же теряют зависимость от внешнего знания и при этом гарантируют (до известных пределов) детерминированное состояние.

Если ты про состояние конфигов - то оно и не должно внезапно меняться без моей команды. Если про автоматическое переключение IP на активный балансер, разруливание кто главный в кластере, выяснение кто будет мастер-базой и прочее - то для таких задач есть keepalived, corosync, zookeeper и много других страшных слов. Приведи юз-кейс, я тебя пока не совсем понимаю.

selivan ★★★ ()
Последнее исправление: selivan (всего исправлений: 1)

Энтерпрайз

Вот вроде мог бы сабж быть хорош, но язык описания конфиругаций убивает. Типичный фрактал плохого дизайна. Как ПХП. Сначала они такие «Ща мы зделаем чисто декларативные описания на YAML и ништяк.» А потом «Или не, абажжи... чисто декларативно нипалучается, ну тогда зделаем императивный YAML лал))». А потом «Тааааак, а как в этом YAML зделать переменные, условия и for-циклы? А херня, прихреначим шаблонизатор». Глобальный, надёжный. А потом «Бла посоны а как в шаблонизатор передовнать данные из YAML??? Та херня, сделаем ещё одни условия и for-циклы, теперь на YAML.» Раньше было программирование на XML, а теперь на YAML, это же всё меняет, ёпта.

anonymous ()

Люблю ansible больше, чем другие cm, но он всё ещё довольно сырой. В версии 2 поломали некоторые вещи, баги на github просто закрывают, предложив ненадёжные workaround-ы. Модули docker и VMware довольно багнутые. Ну и yaml местами наркоманский.

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

Привожу юз-кейс. У меня N серверов, где N >> 3,5; при чём каждый сервер выполняет ~m контейнеров и/или виртуальных машин. Push-модель с ростом единиц обслуживаемой техники стремительно перестаёт скалироваться. Pull-модель продолжает работать как работала. При чём в моём случае есть некое n серверов, находящихся в APNIC, с медленным и ненадёжным доступом.

Далее, не каждый сервер готов в данный момент времени принять обновления. Какие-то серверы заняты более важной работой и мешать этой важной работе дополнительной дисковой активностью, изменением конфигурации и перезапуском сервисов, да и любым иным образом крайне нежелательно. В модели с добровольной кооперацией сервер обладает достаточной автономностью, чтобы принять решение о том, когда надо выполнять те или иные действия (очевидно, с полным контролем со стороны админа и рукояткой «СЕЙЧАС ЖЕ»).

Ещё юз-кейс: юниты с непредсказуемым эпизодическим доступом к сети или вообще без такового (лаптопы, промышленное оборудование без доступа к публичным сетям итп).

Ещё один юз-кейс: упавший SSH. Такое бывает, причин для этого вагон и маленькая тележка, уверен, что если ты не сталкивался ещё с этим, то обязательно столкнёшься. У меня есть юниты вообще без SSH-сервера и пользователей с паролями, при этом они успешно обслуживаются при помощи CFEngine и предоставляют доступ через публичную сеть.

А Ansible удобно использовать для других вещей. Он как пассатижи. Можно и гайки затягивать, если ключа под рукой нет, но ключом всё же удобнее.

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

В версии 2 поломали некоторые вещи

Это не «сырость», это просто какой-то «наркоманский» подход к разработке. Сам пару раз напарывался на то, что в версии N+1 часть из версии N потеряли, часть поломали (и все это в миноре), с тех пор не гонюсь за релизами (и так и не перекатился на вторую ветку, благо мне вся вот эта вендооблачная ерунда не нужна, а нового там особо и нет ничего).

баги на github просто закрывают, предложив ненадёжные workaround-ы

Еще печалит что некоторые кейсы (например нормальночитаемый вывод в консоль) уже пару лет не могут запилить, при том что вариантов и PR уже кучу прислали.

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

Push-модель с ростом единиц обслуживаемой техники стремительно перестаёт скалироваться. Pull-модель продолжает работать как работала. При чём в моём случае есть некое n серверов ... с медленным и ненадёжным доступом.
Ещё юз-кейс: юниты с непредсказуемым эпизодическим доступом к сети или вообще без такового (лаптопы, промышленное оборудование без доступа к публичным сетям итп).

ansible-pull позволяет использовать pull-модель, но гибкости в нём маловато.

Далее, не каждый сервер готов в данный момент времени принять обновления.

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

Ещё один юз-кейс: упавший SSH. Такое бывает, причин для этого вагон и маленькая тележка, уверен, что если ты не сталкивался ещё с этим, то обязательно столкнёшься.

Он автоматом перезапускаеся при падении. И upstart и systemd это умеют, к sysv прикручивается supervisord и прочие костыли. Ну а если уж так падает, что перезапуститься не может, будем считать хост сбойным и лезть внутрь аварийными средствами - IPMI для физического хоста, для виртуалки - прицепить диск к другому инстансу и смотреть.

У меня есть юниты вообще без SSH-сервера и пользователей с паролями, при этом они успешно обслуживаются при помощи CFEngine и предоставляют доступ через публичную сеть.

Сложность поставить и нормально настроить ssh или специальный демон для cfengine вполне сравнима, ИМХО не аргумент.

А Ansible удобно использовать для других вещей.

Пока в ограничения ansible серьёзно не упирался, но в общем верю.

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

преимущества перед запуском из консоли

Основное преимущество это наглядная история с графиками, когда и что выкатывалось тобой или коллегами. Так-то понятно, что консоль рулит. Ну и в автоматизации главное не всё увести в расписание, а сократить рутину.

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

Без постоянного контроля (по расписанию, отдельным демоном, как угодно) у тебя так не получится. Поэтому Ansible хорош когда надо внести оперативные изменения в системе, но не для контроля и обеспечения соблюдения нормативов.

Погоди, речь идет о том, что человек не может поставить в автоматическое выполнение ряд действий. Я предлагаю просто облегчить жизнь, используя ansible для этих действий, запуская его руками. Но если можно эти действия выполнять автоматически, то чем плох ansible как интрумент для скриптования тех или иных действий?

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

Люблю ansible больше, чем другие cm, но он всё ещё довольно сырой. В версии 2 поломали некоторые вещи, баги на github просто закрывают, предложив ненадёжные workaround-ы. Модули docker и VMware довольно багнутые. Ну и yaml местами наркоманский.

Всё так, надеюсь редхат не зря его купил и сделают в итоге конфетку.

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

для паппета есть вот такая штука https://github.com/razorsedge/puppet-network
Что-то похожее ищу под ансимбл

https://galaxy.ansible.com/bennojoy/network_interface/

Судя по версиям поддерживаемых дистров это довольно старые плейбуки. Во-первых, надо проверить совместимость с последними релизами ансибла. Во-вторых, в той же Ubuntu 16.04 перешли на systemd и управление сетью слегка изменилось, а под капотом изменилась очень. Нужен нативный модуль!

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