Ansible Provisioning: более умный и легкий способ обеспечения



В этом блоге Ansible Provisioning упоминается одна из самых полезных функций Ansible. Он демонстрирует, как настроить стек LAMP и разместить wensite на Ubuntu.

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

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





публичная строка tostring ()

Охватываемые темы:

Если вы хотите освоить DevOps, ' конечно, должен быть вашим вариантом.



Что такое Ansible?

DevOps - это культура, в которой автоматизации уделяется действительно высокий приоритет. Когда могут быть инструменты для автоматизации процесса развертывания и тестирования, почему бы не иметь инструменты для управления конфигурацией и обеспечения. Есть миллион способов стать умнее, и использование Ansible - один из них. Это один из наиболее широко используемых инструментов.

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

Что умеет Ansible Automate?

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



  1. Подготовка: Необходимо создать подходящую среду для работы приложения / программного обеспечения. Ansible позволяет автоматизировать среду, созданную для существования приложения.
  2. Управление конфигурацией: Выполнять широкий спектр задач настройки, таких как запуск / остановка служб, изменение конфигурации системы, устройства или приложения и т. Д.
  3. Развертывание приложения: Автоматизируйте определение развертывания с помощью Ansible и управляйте развертыванием с помощью Ансибл башня . Это делает весь цикл приложения от производства до развертывания эффективным и управляемым.
  4. Непрерывная доставка: Создание и управление конвейером непрерывной интеграции / непрерывной доставки может стать обременительным. Здесь на помощь приходит Ansible, который упрощает жизнь разработчикам.
  5. Безопасность и соответствие: Работа с проектами всегда устанавливает границы и интегрируется с политиками безопасности компании. Автоматическая интеграция политик безопасности с развертыванием может упростить соблюдение политик.
  6. Оркестровка: Весь проект - это совокупность множества разных экземпляров, имеющих разную конфигурацию. Ansible объединяет эти разные экземпляры и управляет ими как единое целое.

Потребность в Ansible Provisioning

Как упоминалось ранее, первый шаг кавтоматизация жизненного цикла приложенийготовит среду, то есть инициализирует. Для больших развертываний требуется несколько хостов с одинаковыми конфигурациями. После инициализации одного хоста, каковы шансы, что следующие 10 хостов будут иметь точно такие же конфигурации, если это будет сделано вручную? И сколько времени вы будете тратить на выполнение одной и той же повторяющейся задачи? Здесь к нам на помощь приходит Ansible. Вы можете подготовить сотни хостов, просто выполнив одну playbook. Магия? Ха-ха! Нет, просто эволюция в автоматизации.

Демонстрация: создание стека LAMP и развертывание веб-страницы

Предположим, вы пытаетесь развернуть веб-сайт в 30 системах, каждое развертывание веб-сайта потребует базовой ОС, веб-сервера, базы данных и PHP. Мы используем ansible playbook, чтобы установить эти предварительные требования на всех 30 системах одновременно.

В этой демонстрации обеспечения Ansible я покажу вам, как подготовить среду хостинга веб-сайтов с помощью Ansible. Мы устанавливаем стек LAMP (Linux, Apache, MySQL и PHP), а затем развертываем веб-сайт.

Для этой демонстрации я использовал Linux VirtualBox с версией Ubuntu 17.04. Я использовал две виртуальные машины, одну как сервер, на котором установлен Ansible, а другую как удаленный хост. Начнем с настройки Ansible на сервере.

Я создал простую статическую веб-страницу, сохраненную в папке показатель в котором есть два файла: index.html и style.css.

index.html:

  Веб-сайт с использованием HTML и CSS                Принять сейчас        

style.css

* { маржа: 0 заполнение: 0 } header { фоновое изображение: линейный градиент (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') высота: 100vh background-size: cover background-position: center } .nav-menu { плавать: вправо стиль списка: нет margin-top: 30 пикселей } .nav-menu li { дисплей: встроенный блок } .nav-menu li a { цвет: бирюзовый текст-украшение: нет отступ: 5 пикселей 20 пикселей семейство шрифтов: 'Verdana', 'sans-serif' размер шрифта: 20 пикселей } .homebtn a { граница: сплошной серый 1px цвет фона: белый } .nav-menu li a: hover { граница: сплошной серый 1px цвет фона: белый } .tagline { позиция: абсолютная ширина: 1200 пикселей маржа слева: 0 margin-top: 0 } h1 { цвет белый размер шрифта: 50 пикселей семейство шрифтов: 'Verdana', 'sans-serif' выравнивание текста: центр margin-top: 275 пикселей } .adopt { margin-top: 30 пикселей маржа слева: 540 пикселей } .bttn { граница: сплошной белый 1px отступ: 10 пикселей 30 пикселей цвет: желтый семейство шрифтов: 'Verdana', 'sans-serif' размер шрифта: 22 пикс. текст-украшение: нет } .adopt a: hover { цвет фона: бурливуд }

Шаг 1: Выполните следующие команды, чтобы обновить репозитории, добавить необходимые репозитории и настроить PPA на вашем компьютере для установки Ansible:

$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible

Нажмите Enter, чтобы принять добавление PPA, а затем, наконец, установите Ansible после обновления репозиториев.

$ sudo apt-get update $ sudo apt-get install ansible

Шаг 2: Перейдите в файл / etc / hosts вашего сервера и добавьте имя хоста и IP-адрес хоста.

и т.д. хосты - Ansible Provisioning - EdurekaРис.1 - Добавление удаленных хостов в файл / etc / hosts - Ansible Provisioning

Шаг 3: Поскольку Ansible работает над безагентной архитектурой с использованием SSH для связи со своими хостами, настройте ключи ssh. В основном у нас один сервер и один хост. Мы управляем хостом с помощью нашего сервера, поэтому мы создаем открытый ssh-ключ на сервере и копируем его на хост-машину. Выполните на сервере следующую команду:

$ ssh-keygen

Вам будет предложено ввести имя файла.где явы хотите сохранить свой ключ, а также попросить вас создать пароль для доступа к сгенерированному ключу, что необязательно. По умолчанию открытый ключ сохраняется в файле .ssh / id_rsa.pub, а закрытый ключ сохраняется в .ssh / id_rsa.

Рис.2 - Создание ключа ssh - Ansible Provisioning

Теперь этот сгенерированный ключ должен присутствовать на вашем хосте. Копирование ключа на хост можно выполнить двумя способами: либо вручную скопировать на хост, либо использовать команду ssh-copy-id. В этом случае я собираюсь скопировать его с помощью команды ssh-copy-id root @ IP_of_host.

$ ssh-идентификатор-копии root@192.168.56.104

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

Шаг 4: Настройте Ansible-хосты. Перейдите в файл / etc / ansible / hosts и добавьте имя хоста. Это будет зависеть от количества хостов и серверов, которые у вас есть. Вы также можете иметь болееодин серверВот.

Рис. 3 - Добавление удаленных хостов в файл инвентаризации - Ansible Provisioning

Шаг 5: Проверьте, готовы ли ваши хосты. Выполните эту команду, вы должны получить аналогичный результат.

$ ansible -m пинговать все

Рис. 4 - Проверка статуса удаленного хоста - готовность к работе

Шаг 6: Теперь наш Ansible готов, давайте подготовим среду для развертывания веб-сайта. Мы собираемся использовать единое руководство для Ansible для установки Apache, MySql и PHP. Давай посмотрим.

Примечание. Если вы новичок, обратите внимание на этот блог, в котором объясняется, как написать пьесу.

--- # Настроить стек LAMP - hosts: host1 tasks: - name: Добавить репозиторий ppa стать: yes apt_repository: repo = ppa: ondrej / php - name: Установить стек ламп стать: yes apt: pkg: - apache2 - mysql-server - php7.0 - состояние php7.0-mysql: текущий кеш обновлений: да - имя: запуск сервера apache становится: да служба: имя: состояние apache2: запущено включено: да - имя: запуск службы mysql становится: да службы: имя: состояние mysql: запущено включено: да - имя: создать целевой файл каталога: путь = / var / www / html state = directory mode = 0755 - имя: развернуть index.html стало: да копировать: src: / etc / ansible / index / index.html dest: var / www / html / index / index.html

Как видите, у нас 6 задач, каждая из которых выполняет определенную функцию.

  • Первая задача добавляет репозиторий, необходимый для установки MySQL и PHP.
  • Вторая задача устанавливает apache2, MySQL-сервер, PHP и PHP-MySQL.
  • Третья и четвертая задачи запускают службу Apache и MySQL.
  • Пятая задача создает целевой каталог на хост-машине и
  • Наконец, шестая задача выполняет файл index.html, берет файл с сервера и копирует его на хост-машину.

Выполните эту книгу с помощью следующей команды:

$ ansible-playbook lamp.yml -K

Линии стать: да в playbook говорит, что он должен выполняться от имени пользователя root и, следовательно, когда вы выполняете команду, он запрашивает пароль sudo.

Рис.5 - Execute Ansible Playbook - Ansible Provisioning

Теперь вы можете войти в хост-машину и проверить, размещен ли веб-сайт.

Рис.6 - Размещение веб-сайта на локальном хосте - Ansible Provisioning

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

На этом мы подошли к концу блога Ansible Provisioning. Если вы найдете эту статью полезной, ознакомьтесь с ' автор: Edureka. Он охватывает все инструменты, которые сделали ИТ-отрасль умнее.

что такое вектор в Java

Есть вопрос к нам? Пожалуйста, разместите это на и мы свяжемся с вами.