Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Category:

Открыл для себя Ansible и Alpine Linux

Alpine Linux объяснить проще. Это линукс на musl и busybox. Чуть менее минималистичный и менее упоротый, чем TinyCore. Годится для всяких служебных виртуалок и контейнеров, от которых не требуется ни глибц-шной полноценности, ни арчевского обилия хипсторского ПО.

Ansible - это configuration management over SSH. Собственно, механизм для массового копирования по sftp и запуска скриптов. Большинство из готовых скриптов на python2, поэтому на кореосе (где вырезан не только перл, но и питон) приходится приседать (скриптом).

Хорош тем (в отличие от puppet и salt), что

а) можно использовать для установки софта на свежекупленные дешёвые VPS
б) "центр управления" практически неуязвим для атак

Дешёвые VPS (я говорю о ценах в разы ниже достаточно демпингующего DigitalOcean) в 100% (известных мне) случаев не поддерживают third-party images и даже SSH keys. Т.е. по-старинке как в 90-е сервер закупается вручную в шоппинг-карте и приходит емейл с адресом и рутовым паролем. Как правило, стоит панель вроде SolusVM, предоставляющая сервис переустановки и recovery console, и всё.

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

"Центр управления" Ansible основное время (когда конфигурация не меняется) вообще в оффлайне, а когда в онлайне - не слушает порты и может быть скрыт за NAT, работать под нерутом и достаточно легко зацементирован средствами Mandatory Access Control. А секреты лежать в ссш-агенте. Т.е. поверхность атаки очень мала, и надо суметь скрыть атаку от интерактивно присутствующего администратора. Конечно, тут есть много "но" - например, могут какие-то операции выполняться скриптами, что потребует постоянно запущенного демона, но всё равно обеспечить принцип минимальных привилегий легче, чем у конкурентов.

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

Puppet и Salt же:

а) имеют центральный сервер, постоянно находящийся в сети и доступный для exploitation. Причём сервер засекурен не через OpenSSH, а через самописные хипсторские сервера, что существенно повышает вероятность zero-day.

б) требуют для работы бутстрапа (вручную или с помощью инструментов, аналогичных Ansible) - установки агента и постоянной его работы в качестве демона.

Паппет с приседаниями можно заставить работать без центрального сервера. Но это не рекомендовано для массового деплоя, поскольку много надо писать самому. А в ансибле это основной поддерживаемый сценарий.

Короче, надо теперь смотреть, сможет ли ансибле поменять локаль :) [Upd: библиотека есть, вопрос работает ли] Ну, и учить их кукбуки - может это окажется полной парашей (в стиле chef) говорят, более-менее то же самое по сравнению с довольно сияющими декларативностью, идемпотентностью и augeas из паппета.
Tags: programming, до чего техника дошла
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 22 comments