Приветствую, дорогой читатель. Я начинаю цикл статей о том, как мы искали решение для применения подхода Infrastructure-as-Code в нашем виртуальном окружении VMware VSphere.
Читать полностью »
Рубрика «Ansible» - 8
Опыт построения Infrastructure-as-Code в VMware. Часть 1: Обозначение проблемы
2016-12-08 в 19:39, admin, рубрики: Ansible, devops, powershell, terraform, VMware, виртуализация, системное администрированиеKitchenCI + Ansible для Windows и Linux
2016-12-02 в 9:35, admin, рубрики: Ansible, devops, kitchenciМой коллега написал прекрасный блог о локальном тестировании ролей Ansible с использованием KitchenCI. Очень быстрый и простой инструмент, состоящий из ruby gem'ов, доступный на каждой ОС, который также работает с разными инструментами тестирования (например Serverspec и Pester). Коллега разрабатывал это решение под нужды своих проектов (provision и deploy исключительно под Windows), что на первый взгляд стало проблемой, потому что:
- Я тоже люблю Ansible
- Ansible мне нужен, чтобы управлять Linux
- Я не хочу создавать еще один репозиторий на GitHub для отдельного тестирования Linux-ролей, потому что не хочу плодить сущности (Бритва Оккама наше все)
Кому интересно, что было дальше, прошу под кат.
Читать полностью »
Gitlab-CI и проверка корректности синтаксиса Ansible-lint
2016-09-20 в 5:07, admin, рубрики: Ansible, ansible-lint, devops, gitlab, Блог компании centos-admin.ru, ит-инфраструктура, системное администрированиеВсем привет! Мы продолжаем серию статей про DevOps и ищем наиболее эффективные способы управлять конфигурацией, делясь с вами опытом. В прошлых статьях мы рассматривали, как выстроить управление конфигурацией Ansible с помощью Jenkins и Serverspec, а теперь по вашим просьбам рассмотрим, как организовать управление конфигурацией с помощью GitLab-CI.
Ansible-lint — это утилита для проверки корректности синтаксиса плейбука и стиля кода, которую можно интегрировать в CI-сервис. В нашем случае мы внедряем её в gitlab-ci для проверки плейбуков на этапе принятия Merge-Request и выставления статуса проверок.
GitLab (GitLab Community Edition) — это opensource-проект, менеджер git-репозиториев, изначально разрабатывающийся как альтернатива платной корпоративной версии Github.
Читать полностью »
Gitlab-CI
2016-08-29 в 21:12, admin, рубрики: Ansible, centos-admin.ru, ci, devops, docker, gitlab, southbridge, Блог компании centos-admin.ru, ит-инфраструктура, Серверное администрирование, системное администрированиеВсем привет.
У нас не так много задач, которым необходим полноценный CI. Некоторое время мы использовали в качестве CI-сервиса Jenkins. Там всё довольно очевидно, он прост и гибок в настройке, имеет кучу плагинов, но пару раз мы столкнулись с OOM-убийцами агентов на слабых машинах и решили рассмотреть в качестве CI-сервиса Gitlab CI, потому что мы любим эксперименты и тем более в комментариях к нашей прошлой статье задавали такой вопрос.
Читать полностью »
Хранение конфига ssh в ansible проекте и решение проблемы с туннелями при использовании относительного пути
2016-08-08 в 7:43, admin, рубрики: Ansible, devops, ssh, ssh tunnel, Серверное администрирование, системное администрированиеAnsible — прекрасное средство управления серверами. Совместно с git он позволяет перейти в парадигму deploy as code со всеми вытекающими отсюда прелестями, такими как ревью кода, мердж (пулл) реквесты изменений и тому подобное. Особенно это актуально если над этим работает команда, а не единственный человек.
В этом свете становится очевидно удобным хранить настройки подключения к управляемым хостам прямо в этом же репозитории, помимо файла inventory/hosts (его вообще лучше вынести в какой-нибудь сервис вроде CMDBuild или похожие). То есть, если на хосте поменялся скажем порт подключения или IP адрес, остальные члены команды должны это получить при следующем подтягивании изменений из репозитория, а не вносили каждый изменения в свой файл ~/.ssh/config.
Причём большинство параметров будут работать должным образом без каких-то усилий, но не всё так просто если вы хотите использовать ssh-туннели.Читать полностью »
15 вещей, которые вы должны знать об Ansible
2016-08-03 в 8:37, admin, рубрики: Ansible, devops, перевод, системное администрированиеПредлагаю читателям «Хабрахабра» перевод опубликованной на codeheaven.io статьи «15 Things You Should Know About Ansible» за авторством Marlon Bernardes.
В последнее время я много работал с Ansible и решил поделиться некоторыми вещами, которые выучил по пути. Ниже вы найдете список из 15 вещей, которые, как я думаю, вы должны знать об Ansible. Что-то пропустил? Просто оставьте комментарий и поделитесь вашими личными советами.
Читать полностью »
Ansible-container: новый шаг в управление контейнерами
2016-07-27 в 5:59, admin, рубрики: Ansible, ansible-container, centos-admin.ru, devops, docker, southbridge, Блог компании centos-admin.ru, виртуализация, Серверное администрирование, системное администрированиеНедавно разработчики Ansible анонсировали новый проект Ansible Container. Проект нас очень сильно заинтриговал, и мы решили рассмотреть его поближе.
Ansible уже давно стал незаменимым инструментом в вопросах создания, сборки, деплоя образов docker-контейнеров и самих docker-контейнеров, благодаря соответствующему модулю.
Ранее для провиженинга docker-контейнеров с помощью Ansible необходим был запущенный в контейнере sshd, но в версии 2.1 в Ansible был добавлен Docker connection plugin, благодаря которому стало возможно запускать плейбуки не только на физических/виртуальных машинах, но и внутри docker-контейнеров и отпала необходимость использования sshd внутри docker-контейнера.
Настройка ssh callback на сервере в связке с Ansible
2016-07-26 в 6:08, admin, рубрики: Ansible, automatization, linux, ssh tunnel, Настройка Linux, системное администрированиеВсем известно, что с помощью ssh можно делать перенаправление портов (создавать туннели). Еще из мануала по ssh вы могли узнать, что OpenSSH умеет динамически открывать порты для удаленного перенаправления и выполнять строго определенные команды. Также всем известно, что для Ansible (не считая Tower) нет такого понятия как сервер и клиент (в смысле ansible-server/ansible-agent) — есть сценарий (playbook) который можно выполнить как локально, так и удаленно через ssh-соединение. Еще есть Ansible-pull, это скрипт который проверяет git-репозиторий с вашими плейбуками и при наличии изменений запускает плейбук для применения обновлений. Там где нельзя пушить в большинстве случаев можно использовать pull, но бывают исключения.
В статье я попробую рассказать о том как можно использовать динамическое выделение портов для ssh-туннелей в реализации подобия функции provisioning-callback для бедных на любом сервере с OpenSSH и Ansible, и как я до этого дошел.
Читать полностью »
Пособие по Ansible
2016-07-11 в 10:14, admin, рубрики: Ansible, configuration management, администрирование, ит-инфраструктура, Серверное администрирование, системное администрирование, управление конфигурацией
Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.
Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.
Пособие покрывает такие темы:
- Установка Ansible и Vagrant
- Файл инвенторизации
- Модули shell, copy, сбор фактов, переменные
- Запуск на группу хостов
- Плейбуки
- Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
- Обработка ошибок, откат
- Шаблоны конфигурации
- Роли
Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.
Этот режим интересен потому что вам не нужно иметь публично доступную главную машину для удаленной настройки узлов; это узлы должны быть доступны (позже мы увидим, что скрытые узлы также могут получать конфигурацию).Читать полностью »
Ansible: тестируем плейбуки (часть 2)
2016-07-06 в 5:02, admin, рубрики: Ansible, centos-admin.ru, Jenkins, kitchen-ci, serverspec, southbridge.ru, tdd, test-kitchen, Блог компании centos-admin.ru, ит-инфраструктура, Серверное администрирование, системное администрированиеИтак, в нашей прошлой статье мы рассмотрели как можно быстро и просто настроить среду для тестирования плейбуков и ролей Ansible. Это всё, конечно, очень хорошо и удобно, но почему бы нам не автоматизировать весь процесс внесения изменений в инфраструктуру от написания плейбука до внесения изменений на сервера?
Напомню несколько условий, при которых мы будем выполнять тестирование конфигураций:
1. Вся конфигурация хранится в git-репозитории;
2. Jenkins периодически опрашивает git-репозиторий с нашими ролями/плейбуками на предмет внесённых изменений;
3. При появлении изменений Jenkins запускает job с тестированием конфигурации. Тесты состоят из двух этапов:
3.1 Kitchen-CI берёт обновленный код из репозитория, запускает полностью свежий docker-контейнер, заливает в них обновлённые плейбуки из репозитория и запускает Ansible локально, в docker-контейнере;
3.2 Если первый этап прошёл успешно, в docker-контейнере запускается serverspec и проверяет, корректно ли встала новая конфигурация;
4. Если в Kitchen-CI все тесты прошли успешно, то Jenkins инициирует заливку новой конфигурации.
В идеале, весь процесс от написания плейбука и коммита в репозиторий до внесения изменений на сервера, должен проходить без нашего участия. Сильно углубляться в установку Jenkins и подробно расписывать о пайплайнах в данной статье не планируется. Первое делается без проблем из стандартных репозиториев, а второе — сугубо индивидуальное.
Читать полностью »