Ansible что это за программа

Содержание
Читайте также:
Что за программа resolume

Что такое Ansible и как его использовать

Обложка: Что такое Ansible и как его использовать

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

Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.

  1. Ключевые особенности программы Ansible
  2. Установка и запуск
  3. Структура Ansible
  4. Демо «Реальное приложение»
  5. Дополнительные материалы

Ключевые особенности программы Ansible

  • Безагентное. В клиенте не установлено программное обеспечение или агент, который общается с сервером.
  • Идемпотентное. Независимо от того, сколько раз вы вызываете операцию, результат будет одинаковым.
  • Простое и расширяемое. Программа Ansible написанa на Python и использует YAML для написания команд. Оба языка считаются относительно простыми в изучении.

Установка и запуск

# ubuntu sudo apt-get install ansible
#mac-OS brew install ansible

Инструкцию по установке на другие ОС можно найти здесь.

01-Ansible. Начало. Что это и для чего?

Структура Ansible

Модули

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

sudo apt-get install htop

Мы можем использовать модуль apt и установить htop:

— name: Install htop apt: name=htop

Использование модуля даст вам возможность узнать, установлен он или нет.

Плагины

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

Инвентаризация хостов

В простейшем виде он может содержать одну строку:

35.178.45.231 ansible_ssh_user=ubuntu

Playbooks

Ansible playbooks — это способ отправки команд на удалённые компьютеры с помощью скриптов. Вместо того, чтобы индивидуально использовать команды для удалённой настройки компьютеров из командной строки, вы можете настраивать целые сложные среды, передавая скрипт одной или нескольким системам.

group_vars

Файл содержит набор переменных, например имя пользователя и пароль базы данных.

Роли

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

Обработчики

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

Что Такое Ansible И Зачем Он Нужен

Теги

Если у вас playbook с большим объёмом, может быть полезно иметь возможность запускать только определённую часть его конфигурации.

Демо «Реальное приложение»

Цель этой демонстрации — установить приложение Laravel в VPS. Для этого используем Lightsail.

Последовательность действий для создания и запуска Laravel APP:

  1. Создайте экземпляр Ubuntu Lightsail.
  2. Установите зависимости Ansible на ваш VPS.
  3. Добавьте SSH-ключи в Git.
  4. Выполните сборку хостов и ansible.cfg.
  5. Определите роль в Ansible.
  6. Определите обработчик.
  7. Установите модули PHP.
  8. Установите Nginx.
  9. Добавьте default-конфигурацию Nginx.
  10. Добавьте переменные для управления учётными данными БД, хоста, URL-адресом источника GitHub и переменными .env.
  11. Используйте Ansible-Vault.
  12. Создайте базу данных MySql, имя пользователя и пароль.
  13. Клонируйте кодовую базу в ваш VPS.
  14. Сгенерируйте .env.
  15. Создайте playbook.

Рассмотрим каждый пункт подробнее.

Создание экземпляра Ubuntu Lightsail

Перейдите на панель управления Lightsail и нажмите «Создать экземпляр».

Панель управления Lightsail

Выберите свою любимую ОС.

Выбор ОС в панели управления Lightsail

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

Добавления скрипта запуска и SSH ключа

Установка зависимостей Ansible на нашем VPS

Добавьте эти sh-команды для установки зависимостей:

sudo add-apt-repository ppa:deadsnakes/ppa -y sudo apt-get update sudo apt-get install -y python2.7 python3 python-pip

Скрипт установки зависимостей для программы AnsibleГотовый экземпляр VPS

Теперь у нас есть готовый экземпляр, перейдём к построению Ansible Project.

Добавление SSH-ключей в Git

Вы должны добавить свой сервер id_rsa.pub к своим ключам GitHub SSH, войдя в свой сервер.

# Подключитесь к вашему серверу через SSH и запустите ssh-keygen sudo chmod -R 644 .ssh/id_rsa cat .ssh/id_rsa.pub # Добавьте результат команды в аккаунт Git # github settings=> SSH keys => Add new Key # bitbucket settings=> ssh-keys => Add new Key

Введение в Git: от установки до основных команд

Введение в Git: от установки до основных команд

Сборка хостов и ansible.cfg

[aws] # Ваш IP сервера 127.0.0.39
[defaults] hostfile = hosts.ini # configure log dir log_path= logs/ansible-log.log

Определение роли в Ansible

Используем модуль Ping, чтобы убедиться, что хост работает, после чего нужно обновить все пакеты и установить два модуля: git и htop.

— — ping: ~ ### — name: Update apt packages apt: update_cache: yes ## — name: Install GIT VCS apt: name: git state: latest ## — name: Install htop apt: name=htop

Определение обработчика

— — name: Restart PHP-FPM service: name: php>-fpm state: restarted #### — name: Restart Nginx service: name: nginx state: restarted

Установка модулей PHP

Чтобы вызвать обработчик, мы должны использовать notify: Restart PHP-FPM, имена обработчиков должны быть уникальными.

В этом руководстве мы определили php как тег, поэтому, например, если вы хотите запустить только эту задачу из своего playbook, вам необходимо выполнить её с —tags = ”php”, которая будет исполнять только её.

— — name: Install PHP > PPA Repo apt_repository: repo: ‘ppa:ondrej/php’ tags: — php ## — name: Install PHP > apt: name=php> state=latest ## — name: Install PHP packages become: true apt: name: «>» state: latest with_items: — php>-curl — php>-fpm — php>-intl — php>-mysql — php>-xml — php>-mbstring notify: Restart PHP-FPM tags: — php

Установка Nginx

— name: Install Nginx web server apt: name: nginx state: latest notify: Restart Nginx tags: — nginx ### — name: Update nginx config files become: true template: src: templates/nginx.conf dest: «/etc/nginx/sites-available/default» tags: — nginx notify: Restart Nginx ### — name: link nginx config become: true file: src: «/etc/nginx/sites-available/default» dest: «/etc/nginx/sites-enabled/default» state: link tags: — nginx notify: Restart Nginx

Добавление default-конфигурации Nginx

server < listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name >; root >public; location / < try_files $uri $uri/ /index.php?$args; index index.php index.html index.htm; >if (!-d $request_filename) < rewrite ^/(.*)/$ /$1 permanent; >location = /favicon.ico < access_log off; log_not_found off; >location ~ .php$ < try_files $uri $uri/ /index.php?$args; index index.php index.html index.htm; fastcgi_pass unix:/var/run/php/php>-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME >public$fastcgi_script_name; fastcgi_param APPLICATION_ENV testing; fastcgi_param PATH /usr/bin:/bin:/usr/sbin:/sbin; fastcgi_intercept_errors on; include fastcgi_params; > >

vars.yml

Примечание: Рекомендуется использовать ansible-vault для шифрования и дешифрования переменных.

Как использовать Ansible-Vault

Создайте секретный файл хранилища, содержащий ключ шифрования, который шифрует ваши переменные.

touch .vault_pass.txt echo ‘YOUR_CONFIG_PASS’ > .vault_pass.txt

Чтобы зашифровать переменные, используйте:

ansible-vault encrypt group_vars/vars.yml —vault-password-file .vault_pass.txt

Чтобы расшифровать переменные, используйте:

ansible-vault decrypt group_vars/vars.yml —vault-password-file .vault_pass.txt

Создание базы данных MySql, имени пользователя и пароля

— mysql_user: name: «>» password: «>» priv: ‘*.*:ALL’ state: present tags: — mysql-db ## — name: Create APP DB database mysql_db: name=»>» state=present login_user=»>» login_password=»>»

mysql_user и mysql_pass определены внутри vars.yml.

Клонирование кодовой базы

— name: update repo — pull the latest changes git: repo: «>» dest: «>» update: yes version: master accept_hostkey: yes key_file: /home/>/.ssh/id_rsa tags: — code-deploy

repo_git_url и app_work_dir определены внутри vars.yml.

Генерирование .env

Ansible использует шаблонизатор Jinja2 для динамических выражений и доступа к переменным. Создадим файл env.conf.

APP_ENV=> APP_DEBUG=> APP_KEY=> APP_URL=> APP_NAME=> DB_HOST=> DB_DATABASE=> DB_USERNAME=> DB_PASSWORD=> CACHE_DRIVER=> SESSION_DRIVER=>

Определим role , чтобы переместить этот шаблон в директорию нашего приложения.

— — name: Copy lara env file become: true template: src: templates/env.conf dest: «>/.env» tags: — env-file

Создание playbook

— — hosts: aws #common options between modules sudo: yes gather_facts: no vars_files: — ./group_vars/vars.yml roles: — misc — php — mysql — redis — nginx — bootstrap-app — code-deploy ### handlers: — include: handlers/main.yml

Читайте также:
Gboard что это за программа на Андроид как удалить

Как видно, мы определили aws как хост для этого playbook, и sudo yes даёт нам возможность выполнять команду как пользователю sudo.

У нас есть vars_files, где мы храним наши vars. Мы установили roles, каждая role выполняет определённую задачу. И, наконец, у нас есть handlers, которые содержат все обработчики проекта.

Запуск playbook

#ansible-playbook playbookName ansible-playbook code-deploy.yml # Запуск с конкретными тегами ansible-playbook playbook.yml —tags=»env-files,php» # Если вы используете ansible-vault ansible-playbook code-deploy.yml —vault-password-file .vault_pass.txt

Полная структура проекта

├── ansible.cfg ├── code-deploy.yml ├── files │ └── dump.sql ├── group_vars │ └── vars.yml ├── handlers │ └── main.yml ├── hosts.ini ├── logs │ └── ansible-log.log ├── roles │ ├── bootstrap-app │ │ └── tasks │ │ └── main.yml │ ├── code-deploy │ │ ├── tasks │ │ │ ├── config-files.yml │ │ │ └── main.yml │ │ └── templates │ │ └── env.conf │ ├── misc │ │ └── tasks │ │ └── main.yml │ ├── mysql │ │ └── tasks │ │ ├── config.yml │ │ └── main.yml │ ├── nginx │ │ ├── tasks │ │ │ └── main.yml │ │ └── templates │ │ └── nginx.conf │ ├── php │ │ └── tasks │ │ └── main.yml │ └── redis │ └── tasks │ └── main.yml ├── scripts │ ├── install_composer.sh │ └── startup.sh └── site.yml

Дополнительные материалы для начинающих изучать Ansible

  • Репозиторий на GitHub, который содержит полный исходный код.
  • Этот сайт запущен и работает с использованием этой кодовой базы.
  • Советы по использованию Ansible playbooks.
  • Описание архитектуры программы Ansible.
  • Статья «How to Use Ansible to Automate Initial Server Setup on Ubuntu».
  • О других инструментах сисадмина и DevOps читайте в нашей подборке.

Источник: tproger.ru

Что такое Ansible? Ansible Tutorial Guide для начинающих

Что такое Ansible? Ansible Tutorial Guide для начинающих

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

Это бесплатный инструмент, который может работать в нескольких операционных системах, таких как MAC, Linux, BSD и т. Д. Помимо бесплатной версии, существует также одна версия для предприятий, которая называется Ansible Tower и обычно используется для получения максимальных преимуществ в различных отраслях промышленности. , Основные моменты блога включают как показано ниже.

Что такое Ansible?

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

В Ansible playbooks используются для описания задач автоматизации на очень простом языке программирования, то есть YAML. Ansible был запрограммирован для многоуровневого развертывания, которое может управлять несколькими взаимосвязанными системами вместе.

Зачем нужен Ansible?

Прежде чем мы углубимся в тему, давайте сначала поймем, почему компании нужны Ansible?

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

С одной стороны, когда команда разработчиков часто выпускала программные продукты, инженеры не могли управлять нагрузкой управления конфигурацией. Это причина, почему инструмент автоматизации был необходим для управления конфигурацией и подготовки сервера. Здесь роль инструмента Ansible входит в картину, которая делает утомительную рутину администратора более захватывающей и легкой.

Learn Ansible Online — Каковы преимущества?

1). Легко учить

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

2). Безагентный инструмент

Инструмент не использует никаких агентов, так как именно он работает? Ansible работает путем соединения нескольких узлов вместе и выталкивает мини-программы, которые называются «Ansible Modules». Инструмент выполняет модуль над «SSH» и удаляет их по завершении. Модули могут храниться на любом компьютере, и нет необходимости в базах данных, демонах, серверах и т. Д.

Что такое Ansible и как он работает?

  • Ansible — инструмент без агента, и он работает, соединяя несколько узлов вместе и выполняя модули через ssh-соединение.
  • Прелесть инструмента в том, что модули будут удалены для оптимизации памяти, как только закончится выполнение.

3). Очень эффективным

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

4). Мощные функции

Ansible — это мощный инструмент, который также помогает моделировать самые сложные ИТ-процессы. Он имеет возможность управлять службами, сетями, операционными системами или инфраструктурой, которые вы уже используете, с помощью модулей Ansible. Вкратце, Ansible предлагает полную оркестровку ИТ вместо среды, в которой она развернута.

Ansible Tutorial Guide — Технические преимущества

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

Подготовка сервера

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

Управление конфигурацией

Этот инструмент помогает настроить и записать подробную информацию о множестве программных или аппаратных пакетов во всех системах. Возьмите пример, если вы хотите настроить FTP-сервер на всех машинах вместе, но процесс будет нелегким, если вы пойдете вручную. Этот инструмент является решением, которое помогает вам настроить FTP-сервер для всех систем за один проход. Вам просто нужно запрограммировать Ansible playbooks на простом языке, то есть YAML, и перечислить IP-адрес, на котором вам нужен сервер с установленными настройками конфигурации.

Ускоренное развертывание приложений

Жизненный цикл всего приложения, от проектирования до разработки и развертывания, позволяет легко управлять всем с помощью Ansible Tower. Все, что вам нужно сделать, это описать все команды вместе в playbook и выполнить их, чтобы ускорить общий уровень развертывания приложения.

Соответствие безопасности

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

IT оркестровка

Одно только управление конфигурацией не может выполнить вашу работу, но вы должны знать, как несколько конфигураций могут взаимодействовать друг с другом или как они управляются в целом. С Ansible вы можете управлять сложными конфигурациями и обеспечивать оркестровку для согласования бизнес-процессов с другими ИТ-ресурсами, такими как сеть, службы, приложения, данные и т. Д.

Что такое Ansible Architecture?

Ansible Tutorial Guide

Архитектура Ansible проста для понимания, как показано на рисунке. Существует один механизм автоматизации, который напрямую взаимодействует с пользователем, который пишет playbook и выполняет их. Он также может взаимодействовать со службами, размещенными в облаке, инструментами управления конфигурацией или базами данных. Основными компонентами механизма автоматизации являются инвентаризация, подключаемые модули, модули, API-интерфейсы, работа в сети, облако, игровые книги, хосты или ИТ-склад и т. Д.

Ansible https://dataenginer.ru/?p=5640″ target=»_blank»]dataenginer.ru[/mask_link]

Что такое Ansible?

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

Ansible — система с открытым исходным кодом. Задача Ansible — автоматизация поставки ПО, развертывание приложений и управление конфигурацией.

Особенности:

• безагентность. В клиенте не установлено ПО либо агент, который общается с сервером; • идемпотентность. Вне зависимости от того, сколько раз вызывается операция, результат не меняется; • простота и расширяемость. Ansible написан на Python и использует для написания команд YAML. Два этих языка считают довольно простыми в изучении.

Установка и запуск, как правило, затруднений не вызывают:

Screenshot_1-1801-253875.png

Если у вас другая ОС, добро пожаловать на страницу с инструкцией.

Структура

Модули

Небольшие программы, которые выполняют на сервере определенную работу. Допустим, вместо запуска команды sudo apt-get install htop , мы можем задействовать модуль apt и установить htop:

Screenshot_2-1801-d277d8.png

Применение модуля позволит узнать, установлен он либо нет.

Screenshot_4-1801-70bd6a.png

Плагины

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

Инвентаризация хостов

Screenshot_3-1801-093ad0.png

Playbooks

Ansible playbooks представляет собой метод отправки команд на удаленные ПК посредством скриптов. Таким образом, не обязательно персонально применять Ansible-команды для удаленной настройки ПК из командной строки — можно сразу настраивать целые сложные среды и передавать скрипт одной либо нескольким системам.

group_vars

Это файл, содержащий набор переменных, к примеру, имя пользователя и пароль БД.

Роли

Это способ сгруппировать ряд задач в один контейнер, что позволит эффективно автоматизировать работу посредством понятной структуры каталогов.

Обработчики

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

Теги

Если речь идет о playbook с большим объемом, бывает полезно запускать лишь определенную часть конфигурации.

Архитектура Ansible

Архитектура относительно проста для понимания, что можно видеть из рисунка ниже:

3_7_1-1801-455fe3.png

Существует один механизм автоматизации, напрямую взаимодействующий с пользователем, который пишет и выполняет playbooks. Также он способен взаимодействовать со службами (размещены в облаке), инструментами управления конфигурацией либо БД. Основные компоненты механизма автоматизации — инвентаризация, подключаемые модули, API-интерфейсы, облако, хосты и т. д.

Источник: otus.ru

Установка и настройка Ansible: пошаговая инструкция

Ansible — это система управления конфигурациями с сервера. Мы можем развертывать и конфигурировать приложения, управляя ими с Ansible-сервера.

Собираем на дрон для штурмовиков Николаевской области. Он поможет найти и уничтожить врага

WOMEN IN LEADERSHIP

Дізнайтеся, як утримувати work-life-баланс, від топменеджерки з досвідом в NPR, Microsoft, IBM та Amazon Alexa.

women

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

Существует графическая оболочка, которая называется Ansible Tower (платная от RedHat) и Ansible AWX (бесплатная). Ansible поддерживает как Windows, так и Linux-платформы, но версия под Windows ограничена в возможностях и часто не работает как нужно.

Установка Ansible для управления конфигурациями с сервера

Чтобы установить Ansible на Ubuntu, откройте терминал и для начала проверьте, установлен ли Python и Ansible:

[email protected]:~# python3 —version Python 3.9.5 [email protected]:~# ansible —version

Если ничего из перечисленного не установлено, давайте начнем с Python:

А затем установим Ansible:

Если команда ansible не найдена, ее можно установить с помощью:

apt install ansible-base [email protected]:~# apt install ansible-base

После установки мы видим:

[email protected]:~# ansible —version ansible 2.10.5 config file = None configured module search path = [‘/root/.ansible/plugins/modules’, ‘/usr/share/ansible/plugins/modules’] ansible python module location = /usr/lib/python3/dist-packages/ansible executable location = /usr/bin/ansible python version = 3.9.5 (default, May 11 2021, 08:20:37) [GCC 10.3.0] [email protected]:~#

Строчка config file = None говорит о том, что наш конфигурационный файл пока отсутствует. В принципе, создавать конфигурационный файл не нужно. Но следует помнить, что при каждом запуске ansible-плейбуков настройки будут автоматически активированы и такой файл будет создан. Чтобы создать конфигурационный файл, переходим в домашнюю директорию и создаем его с помощью vi :

[email protected]:~# pwd /root [email protected]:~# vi ansible.cfg

Далее прописываем настройки по умолчанию:

[defaults] inventory = /root/ansible/hosts/ host_key_checking = false :wq

В /root/ansible/hosts/ будет лежать файл, в котором будет записана информация о наших клиентах. Проверим ключи при подключении по SSH. Если указать в конфигурационном файле host_key_checking = false , проверка будет отключена.

Теперь сделаем в окне терминала такой запрос:

[email protected]:~# ansible —version ansible 2.10.5 config file = /root/ansible.cfg

Мы указали расположение файла inventory в папке ansible . Создадим ее:

[email protected]:~# mkdir ansible [email protected]:~# cd ansible/ [email protected]:~/ansible# touch hosts [email protected]:~/ansible# ll итого 8 drwxr-xr-x 2 root root 4096 сен 6 10:41 ./ drwx—— 6 root root 4096 сен 6 10:40 ../ -rw-r—r— 1 root root 0 сен 6 10:41 hosts

Настройка хостов и групп

Предположим, мы имеем дело с сервером и тремя клиентами. IP-адреса этих клиентов:

  • 192.168.178.109;
  • 192.168.178.110;
  • 192.168.178.111.

Зайдем в этот файл:

client01 ansible_host=192.168.172.109 client02 ansible_host=192.168.172.110 192.168.172.111

Параметр ansible_host указывать необязательно, если у вас работают DNS. Далее необходимо указать пользователей и пароли, доступ к которым возможен по SSH. Добавим пароль:

client01 ansible_host=192.168.172.109 ansible_user=root ansible_password=ptest client02 ansible_host=192.168.172.110 ansible_user=utest ansible_password=ptest 192.168.172.111 ansible_user=root

Для третьего хоста сделаем доступ по ключу SSH:

client01 ansible_host=192.168.172.109 ansible_user=root ansible_password=ptest client02 ansible_host=192.168.172.110 ansible_user=utest ansible_password=ptest 192.168.172.111 ansible_user=root ansible_ssh_private_key_file=

Сохраним файл и перейдем в терминал, чтобы создать ключ:

[email protected]:~/ansible# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory ‘/root/.ssh’. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa Your public key has been saved in /root/.ssh/id_rsa.pub The key fingerprint is: SHA256:5p921mHEIN9xR9cnD9WN9yKy4ixzJxXmZ2/wrTjQhk0 [email protected] The key’s randomart image is: +—[RSA 3072]—-+ | +B| | . . = X| | o + B+| | + E = o| | So O o . | | o. * B o | | o.o = * o | | o =.o.+.= .| | + +oo.o.. | +—-[SHA256]——+ [email protected]:~/ansible#

Если мы перейдем в папку .ssh мы увидим наши два ключа – публичный и частный:

[email protected]:~/ansible# cd [email protected]:~# cd .ssh/ root[email protected]:~/.ssh# ll итого 16 drwx—— 2 root root 4096 сен 6 11:15 ./ drwx—— 7 root root 4096 сен 6 11:14 ../ -rw——- 1 root root 2610 сен 6 11:15 id_rsa -rw-r—r— 1 root root 575 сен 6 11:15 id_rsa.pub [email protected]:~/.ssh#

Прочитаем его и скопируем, чтобы занести в файл:

[email protected]:~/.ssh# cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDDTwp+rR2W0ZPR+1mzXFfHbAISw0nIv+aW0Jg7R+kLM9lIVRFHcV+D58XUGl+NnJL6vvv1JsfIvyBSd2gOWT/pKlxnii/ufOU+HF8TgHbBHVOC4c97mb3qrLxqXbdSFxTGmxGYH44KSzYzrv7YSakhnttqoAM1J3XdxRRsTWS7GfUMGGGhYBjLM1/ddR4QQkJshFGKQ3WnXwMS16o+E/qwUppyov4RhxITm7YMRS3Yep56qEF/+z0zTXxJredGckK7kXOj7vXWXW5Bik+svD1Aadwoz9Fojbkz/Q7n9bF4wxDNzL0rfX9LkCnkaofoIaRuIFqkiBmPPEU/hk8Tx7zBXm5wYin1yFhTVuUUGE6R/542BAv+YcKerYXOqsa11jnKjH70bEh9CQ8Nc/MX9MR/vjIevqVPaaP/6hY6U9yoCLYb+INMHEHl+NfUFSksEGGHUQRBCUxGFvZsu6s9zpXCBdv0EMBMg6tApyNN9BnpLGGJPNpmZ/w0apjdRqHD450=

Скопируем значение ключа и вставим на третий хост, открыв файл:

Сохраним его. Переименуем имя ключа командой mv id_rsa client03 и внесем соответствующие изменения в файл:

client01 ansible_host=192.168.172.109 ansible_user=root ansible_password=ptest client02 ansible_host=192.168.172.110 ansible_user=utest ansible_password=ptest 192.168.172.111 ansible_user=root ansible_ssh_private_key_file=/root/.shh/client03

Сохраним его (команда :wq ) и проверим, все ли работает:

Нам выдается сообщение, что третий хост прошел нормально, а для первых двух необходимо установить дополнительный пакет sshpass . Установим его с помощью команды apt install ssh . Снова запустим пинг:

192.168.178.111 | SUCCESS => < «ansible_facts»: < «discovered_interpreter_python»: «/usr/bin/python3» >, «changed»: false, «ping»: «pong» > client01 | SUCCESS => < «ansible facts»: < «discovered_interpreter_python»: «/usr/bin/python3» >, «changed»: false, «ping»: «pong» > client02 | SUCCESS => < «ansible facts»: < «discovered_interpreter_python»: «/usr/bin/python3» >, «changed»: false, «ping»: «pong» >

Что ж, как видим, клиенты все работают.

Модули Ansible и их использование

Ansible позволяет использовать модули, которые расширяют стандартные функции программы. Вот основные из них:

  • Cloud: подерживает облачные технологии, в частности Amazon EC2/ECS/S3, Azure, Cloudstack, Digital Ocean, Docker, LXC, OpenStack, Rackspace, VMware и другие.
  • Clustering: поддерживает автоматизацию, развертывание, масштабирование и координацию в условиях кластера. Совместим с Consul, ZooKeeper, Kubernetes.
  • Command: предназначен для выполнения консольных команд и скриптов.
  • Database: модуль для работы с базами данных. Поддерживает MySQL, PostgreSQL, Vertica, MongoDB, Redis, Riak.
  • File: модуль для выполнения различных операций с файлами, такими как копирование, синхронизация, изменение, проверка, архивирование.
  • Inventory: модуль для работы с именами хостов или их ip-адресами.
  • Messaging: поддержка RabbitMQ.
  • Monitoring: совместимость с различными системами мониторинга — DataDog, Nagios, Zabbix и прочими.
  • Network: поддержка сетевого аппаратного обеспечения, Cisco IOS/NXOS, Juniper JunOS, OpenSwitch, Cumulus Linux, Mikrotik RouterOS.
  • Notification: с помощью данного модуля можно отсылать сообщения в Campfire, HipChat, Jabber, Pushbullet, Slack, через email/sms.
  • Packaging: работа с менеджерами пакетов apt, FreeBSD Ports, Gentoo, homebrew, pacman, opkg, Red Hat software channels, yum, xbps, zypper.
  • Source Control: модуль, обеспечивающий работу с системами контроля версий git, mercurial, subversion.
  • System: работа с компонентами Linux/Unix систем — cron, iptables, LVM, SELinux, sshd, zfs.
  • Utilities: реализуют внутреннюю логику плейбуков.
  • Web Infrastructure: работа с Apache, Django, JBoss, JIRA.
  • Windows: работа с некоторыми компонентами Windows, в частности с IIS, Windows Firewall, системным реестром.

Что еще почитать по Ansible

  • Репозиторий на GitHub.
  • Документацию, как использовать Ansible playbooks.
  • Документацию с описанием архитектуры Ansible.
  • Статью на английском «Как использовать Ansible для автоматизации начальной настройки сервера в Ubuntu».

Источник: highload.today

Ansible для новичков: начните с автоматизации ИТ

bestprogrammer.ru

Ansible для новичков

Программирование и разработка

На чтение 7 мин Просмотров 1.4к. Опубликовано 19.04.2021

Ansible — это простой, мощный инструмент без агентов, который упрощает процесс автоматизации ИТ и ускоряет усилия DevOps. Ansible помогает автоматизировать и настраивать инфраструктуру, чтобы сэкономить время и повысить производительность. Это простой, безопасный и мощный инструмент, который легко изучить и внедрить в вашей организации. Сегодня мы обсудим, что такое Ansible, что он делает, ключевые термины и с чего начать.

Что такое Ansible?

Ansible — это инструмент оркестрации и автоматизации с открытым исходным кодом, используемый для подготовки программного обеспечения, управления конфигурацией и развертывания приложений. Впервые Ansible был разработан в 2012 году Майклом ДеХааном, создателем Cobbler and Func. Компания, финансирующая Ansible, была приобретена RedHat, Inc. в 2015 году. RedHat была приобретена IBM в 2019 году, так что теперь Ansible живет под эгидой IBM.

Ansible работает в Windows и Unix-подобных операционных системах, предоставляя инфраструктуру в виде кода. Имеет собственный декларативный язык программирования для управления и настройки системы. Он может подключаться к облачным средам, таким как Amazon AWS и Microsoft Azure, чтобы помочь вам управлять инфраструктурой и развертыванием кода и автоматизировать их.

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

Имена хостов, IP-адреса и порты SSH хранятся в файлах инвентаризации. Как только файл инвентаризации создан и заполнен, Ansible может его использовать.

Преимущества Ansible для DevOps

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

  • Открытый исходный код, бесплатное использование
  • Не требует специальных навыков системного администрирования для установки и использования
  • Полностью настраиваемый
  • Последовательный и легкий
  • Очень безопасен благодаря безагентным возможностям и использованию безопасности OpenSSH
  • Полная документация
  • Плавная кривая обучения
  • Создан на Python, одном из самых быстрых и надежных языков программирования.
  • Контроль версий и управление конфигурацией
  • Надежное развертывание

Распространенные варианты использования Ansible

Ansible — это мощный инструмент, который имеет широкий спектр приложений и применений, особенно для подключения к средам Docker или облачным сервисам, таким как AWS. Вот некоторые из основных вариантов использования Ansible:

  • Управление конфигурацией
  • Разработка и развертывание приложений
  • Программное обеспечение и инфраструктура
  • ИТ, безопасность и автоматизация сети
  • Массовое управление виртуальными машинами, чтобы убедиться, что каждая виртуальная машина имеет одинаковую конфигурацию
  • Определите конфигурацию вашего сервера, работающего в облаке, чтобы другие могли легко ее прочитать и использовать
  • Используйте Ansible Tower или AWX для создания графического пользовательского интерфейса

Ключевые термины Ansible

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

  • Сервер Ansible: машина с установленным Ansible, на которой выполняются все задачи и сценарии.
  • Хосты: устройства, которыми вы управляете с помощью Ansible.
  • Пособие: фреймворк, в котором определены задачи автоматизации Ansible (написаны на YAML).
  • Играть: исполнение пьесы
  • Модули: команда или набор команд, предназначенных для выполнения на стороне клиента.
  • Задача: раздел, содержащий одну процедуру, которую вы хотите выполнить.
  • Тег: имя, которое вы можете присвоить задаче.
  • Обработчик: задача, которая вызывается только при наличии уведомителя.
  • Уведомитель: раздел, назначенный задаче, которая вызывает обработчик, если вывод изменен.
  • Инвентарь: файл, содержащий данные клиент-сервер Ansible.
  • Факт: информация, полученная от клиента из глобальных переменных с помощью операции сбора фактов.

Начало работы с Ansible

Пришло время узнать об основных принципах работы этого инструмента. Мы расскажем, как приступить к работе с Ansible, Ansible playbooks и специальными командами Ansible.

Помните, что с Ansible у вас есть сервер и хосты Ansible. Сервер Ansible — это машина, на которой установлен Ansible, а хосты — это машины, обрабатываемые Ansible через сервер Ansible. Сервер Ansible может обрабатывать несколько хостов.

Требования к серверу Ansible:

  • Python 2 (2.7) или 3 (3.5 или выше)
  • Ansible не поддерживает Windows в качестве управляющего узла, но вы можете использовать WSL для его настройки в Windows 10.

Требования к хосту:

  • Python 2 (2.7) или 3 (3.5 или выше)

Примечание. Способ настройки среды Ansible зависит от требований вашего устройства. Следующими вашими шагами будет загрузка Ansible, а затем настройка и автоматизация работы.

Ansible playbooks

Playbook — это основа управления конфигурацией и управляемой автоматизации с помощью Ansible. Здесь вы создаете инструкции для определения задач, которые хотите выполнять на разных хостах.

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

Каждая игра определяет как минимум две вещи:

  • Одна или несколько задач для выполнения
  • Хосты, на которые вы хотите настроить таргетинг

Игра начинается с определения hostsлинии, которая представляет собой список из одного или нескольких шаблонов или групп хоста, разделенных двоеточиями. За hostsстрокой следует tasksсписок. Ansible будет выполнять задачи на назначенных хостах по порядку, по одной за раз.

Например, взгляните на пьесу ниже:

Источник: bestprogrammer.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru