The OpenNET Project / Index page

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

Выпуск системы управления конфигурацией Ansible 2.0

12.01.2016 19:52

Спустя три месяца с момента перехода проекта в руки компании Red Hat состоялся релиз инструментария Ansible 2.0, предоставляющего средства для управления конфигурацией, оркестровки, централизованной установки приложений и параллельного выполнения типовых задач на группе систем. Код Ansible написан на языке Python и распространяется под лицензией GPLv3.

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

Ключевые новшества:

  • Проведён большой рефакторинг кодовой базы, многие подсистемы переписаны с целью унификации и усовершенствования архитектуры проекта. Полностью переписан код разбора формата YAML для упрощения добавления новых языковых возможностей и получения более подробной информации о сути выявляемых при разборе ошибках синтаксиса YAML. При этом основной задачей при проведении рефакторинга было сохранение обратной совместимости и возможность продолжения использования уже имеющихся конфигураций;
  • Добавлена поддержка блоков задач (Task Blocks), которые предоставляют пользователям средства группировки задач друг с другом, используя теги, условные выражения и различные атрибуты задач. Блоки также представляют новую концепцию привязки обработки исключений к плану конфигурации (playbooks), которые реализованы по аналогии с применением try/except/finally в Python и влияют только на текущий playbook;
  • Расширены средства диагностики ошибок в файлах YAML. Текст ошибки теперь более точно идентифицирует проблему и предлагает возможные способы исправления;
  • Операция include теперь приводит к динамическому разбору подключаемых файлов вместо ранее применяемого метода подстановки текста перед разбором, который вызывал проблемы, если включение производится внутри цикла;
  • Поддержка плагинов для определения стратегии выполнения, позволяющих изменить способ запуска задач на внешних хостах. Классический линейный способ заключается в поочерёдном разборе задач, с выполнением каждой задачи на всех хостах. В Ansible 2.0 дополнительно реализован плагин со стратегией "free", при которой задачи выполняются на хостах в соответствии с инидивидуальным списком, что позволяет переходить на хосте к новым задачам, не дожидаясь завершения выполнения задачи другими хостами;
  • Представлено около 200 новых модулей, среди которых отдельно выделяются модули управления OpenStack, конфигурирования и управления окружениями VMware и Docker, поддержки Amazon Web Services и Microsoft Windows.


  1. Главная ссылка к новости (http://www.ansible.com/blog/an...)
  2. OpenNews: Red Hat покупает систему управления конфигурацией Ansible
  3. OpenNews: Рейтинг Rookies Award определил лучшие открытые проекты, созданные в 2014 году
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43661-ansible
Ключевые слова: ansible
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, dkg (?), 20:49, 12/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –14 +/
    О как хорошо, что не начал изучать раньше - пришлось бы переучиваться.
     
     
  • 2.2, Аноним (-), 20:52, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    При этом, основной задачей при проведении рефакторинга было сохранение обратной совместимости и возможность продолжения использования уже имеющихся конфигураций;

    Шах и мат идиот!

     
     
  • 3.35, M i M (?), 14:43, 14/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И всё равно кое-где совместимость была нарушена. Пришлось пока откатиться на 1.9.4.
     
     
  • 4.36, Аноним (-), 15:00, 14/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это первый мажорный релиз, регрессии наверно.
     
  • 2.3, Zert (ok), 21:00, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Только что обновился, старые конфиги все работают.
     
  • 2.5, LeNiN (ok), 21:17, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А я рад, что уже пол года занимаюсь ансиблом. В данном случае, я думаю, что чем раньше, тем лучше, нечего тянуть.
    Надеюсь, что переход под крыло Red Hat поможет им разгрести накопившиеся пул-реквесты.
     

  • 1.4, Аноним (-), 21:12, 12/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Система Ansible не так усложнена как cfengine, puppet и Chef, но при этом предоставляет достаточно широкие возможности и высокую гибкость управления.

    Не так усложнена, как CFEngine, и настолько же неприменима ни для решения проблемы бутстрапа, ни для управления большим количеством серверов. С другой стороны, лучше хипстеры с Ansible, чем "матёрые" "юникс" "админы", что-то там руками админящие. Поздравляю всех пользователей и советую всё же разобраться в "сложном" CFEngine.

     
     
  • 2.7, grsec (ok), 21:59, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Хочется предметно. Какие киллер фичи?
     
     
  • 3.9, Аноним (-), 22:30, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Плюсую вопрос.

    После чтения комментов к новостям,  складывается впечателение, что местные "гуру" работают как минимум  у гугла или амазона в датацентрах  решая вопросы миллионов серверов, выдавая специфичные задачи  за повседневность.

    Куда  нам  "старым  юникс админам" локалхоста до таких.

     
     
  • 4.33, Аноним (-), 12:38, 14/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Старым юникс-админам и pussy.exe хватит.
    Кстати, я со своими сотнями железок и тысячами виртуалок себя "гуру" не считаю, ибо с паппетами и прочими ансиблами это уже просто, удобно и тривиально.
     
  • 4.34, Аноним (-), 12:39, 14/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И ещё, знал бы ты, кто работает в датацентрах.... Часто приходилось с ними общаться. Это вообще тупиковая ветвь.
     
     
  • 5.38, Вареник (?), 21:56, 14/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Электрики там работают...
     
     
  • 6.42, Аноним (-), 14:48, 16/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы слишком хорошо о них думаете, но к сожалению, всё гораздо хуже.
     
  • 3.10, crypt (ok), 22:46, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да, нет там никаких киллерфич. Аноним просто пытается казаться умным. Я использовал cfengine, puppet (chief) и сейчас ansible. Ansible показался настоящим раем после всего прочего. Просто отдыхаешь на конфигах и тратишь минимум времени.
     
     
  • 4.13, Михрютка (ok), 22:56, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Да, нет там никаких киллерфич. Аноним просто пытается казаться умным. Я использовал
    > cfengine, puppet (chief) и сейчас ansible. Ansible показался настоящим раем после
    > всего прочего. Просто отдыхаешь на конфигах и тратишь минимум времени.

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

    зато конфиги очевидные.

     
     
  • 5.14, crypt (ok), 23:58, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> Да, нет там никаких киллерфич. Аноним просто пытается казаться умным. Я использовал
    >> cfengine, puppet (chief) и сейчас ansible. Ansible показался настоящим раем после
    >> всего прочего. Просто отдыхаешь на конфигах и тратишь минимум времени.
    > а это самое главное, коллеги, сейчас, к сожалению. отдыхать на конфигах. пока
    > очередная приблудина на питоне, написанная таким же второкурсником, отъедает 100% ядра,
    > просто чтобы сливать с хоста логи и метрики.
    > зато конфиги очевидные.

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

     
     
  • 6.16, Аноним (-), 01:29, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну да если ты не ruby программист для chef сложно писать рецепты. Плюс сам chef более  развесистый.
     
  • 5.23, Michael Shigorin (ok), 12:11, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > отъедает 100% ядра, просто чтобы сливать с хоста логи и метрики.

    В смысле непомерно долго отъедает или хотелось бы, чтоб процесс происходил неспешней, зато ядра были свежей?

     
  • 3.12, Аноним (-), 22:56, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В двух словах не расскажешь. Надо очень издалека начинать, с Promise Theory и всего, что из неё следует.
     
     
  • 4.17, Аноним (-), 01:54, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е. прочитали введение и больше сказать нечего? Открою секрет, в ansible ровно такие же promises, только намного удобнее.
     
     
  • 5.28, Аноним (-), 17:34, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В Ansible основной стратегией, ещё со времён неадеквакта ДеХаана, является push. На этом можно было бы закончить обсуждение, но он из проекта ушёл совсем, а RH, что бы я про них ни думал, вынуждены обслуживать своих корпоративных клиентов с большим количеством оборудования, где push неприменим принципиально. Есть надежды, что pull в итоге получит необходимое количество внимания. Вторая боль Ansible --- зависимость от Питона. С Питоном (что бы там ни рассказывали "матёрые" "сишники" :) всё в порядке, но увы, проблема бутстрапа с Ansible решается сложнее, чем с CFE. Третья проблема --- зависимость от OpenSSH и следующая из этого невозможность гарантировать добровольную кооперацию. Если где-то есть шелл, то в этот шелл рано или поздно зайдёт "матёрый" "юникс" "админ", и всё там "починит".

    Отсутствие возможности гарантировать соответствие нормативам сходимости конфигураций и гарантии детерминированного поведения в проблемы записывать не будем, это просто отсутствие нужного кода в нужных местах. Будет ли он написан мы узнаем со временем.

     
     
  • 6.31, Fidel Castro (?), 21:58, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Увы, тут 99% не понимают что такое push/pull/bootstrap в контексте ansible/puppet. Сам был ярым фанатом ansible, пока не перешёл на новую работу где везде используется стратегия pull с puppet и не увидел очевидные минусы ansible..
     
     
  • 7.32, Michael Shigorin (ok), 23:03, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > и не увидел очевидные минусы ansible..

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

     
     
  • 8.37, Аноним (-), 17:39, 14/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Так проблема не в Ansible как таковом, а именно в стратегии, которую он предлага... текст свёрнут, показать
     
  • 6.39, RNZ (ok), 00:51, 15/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да всё впорядке в ansible и c pull:
    https://github.com/ansible/ansible-examples/blob/master/language_features/ansi

    и с бутстрапом:
    - include: bootstrap.yml

    ----bootstrap.yml----
    ...
    task:
      - name: ansible bootstrap
        raw: apt-get clean && apt-get update && apt-get install -y python sudo


    a лулзы про "основную стратегию" оставьте маркетологам.

     
     
  • 7.40, Аноним (-), 17:05, 15/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Бутстрап — это не файлик bootstrap.yml, который уже кто-то положил на установленную систему. Это когда надо достать из коробки пустой сервер и ввести его в строй.

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

    И про маркетологов: pull считается «инвертированной» технологией. Вот цитата из документации, выделение моё: «Should you want to *invert the architecture of Ansible*, so that nodes check in to a central location, instead of pushing configuration out to them, you can». И не надо мне тут заливать про фигуры речи. Это официальная документация, а не «Капитанская дочка». К тому же, pull — это не просто инвертирование push. Есть нюансы, и они критически важны, особенно в тех случаях, когда есть внешние требования (соответствие условиям сертификации итп).

     
     
  • 8.41, RNZ (ok), 17:43, 15/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Достать пустой сервер из коробки и сделать ему опля это либо dhcp pxe с дистрибу... текст свёрнут, показать
     
  • 4.24, gaga (ok), 14:43, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сразу видно, что про Энсибл ты узнал из этой новости 5 минут назад.
     
     
  • 5.29, Аноним (-), 17:37, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Сразу видно, что про Энсибл ты узнал из этой новости 5 минут
    > назад.

    Сразу видно, что ты в небо пальцем. Я ещё помню те страшные времена, когда Ansible была "настоящей системой управления, а не какой-то там библиотекой" (почти точная цитата ДеХаана) и не работала в virtualenv вообще из-за захардкоженных путей в коде.

     
  • 3.19, avs (??), 10:08, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В принцыпе free... Но лично у меня плэйбуки для каждого хоста отдельные(потому как мне так удобнее), и соотв не актуально.
     
  • 2.15, й (?), 00:46, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Не так усложнена, как CFEngine, и настолько же неприменима ни для решения проблемы бутстрапа

    как раз ощутимо более, чем cfengine, puppet или chef. не?

    > ни для управления большим количеством серверов

    это с каким количеством серверов у вас cfengine не справляется?

     

  • 1.6, Михрютка (ok), 21:29, 12/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    самое главное забыли

    > * Releases are now named after Led Zeppelin songs, 1.9 will be the last Van Halen named release.

    так глядишь мало-помалу они и от питона откажутся.

     
     
  • 2.8, Аноним (-), 22:20, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Перепишут на го?
     
     
  • 3.11, Михрютка (ok), 22:48, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    на леди гого
     
     
  • 4.27, Аноним (-), 15:52, 13/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Gogo Blackwater?
     

  • 1.21, Аноним (-), 11:00, 13/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нужно, годно. Наконец-то с поддержкой python 3!
     
  • 1.30, alex (??), 18:54, 13/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И ещё поддержку Solaris 10 + 11 добавили.
    https://www.opencsw.org/packages/ansible/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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