Русский
Русский
English
Статистика
Реклама

Перевод Ansible с AWS и EC2

Перевод статьи подготовлен в преддверии старта курса "Инфраструктурная платформа на основе Kubernetes".


Предлагаю вам засучить рукава и погрузиться в задачи Ansible с использованием AWS EC2. Мы рассмотрим, как установить и удалить пакет с помощью Ansible.

Несколько месяцев назад мне довелось поработать с RnD задачами в VizuaMatix c использованием ansible. С тех пор я не использовал Ansible для чего-нибудь более-менее полезного, но сегодня через YouTube я получил предложение вернуться к ansible снова. После просмотра я подумал, что стоит опять закатать рукава и взяться за Ansible. Я решил выполнить несколько задач Ansible с помощью AWS EC2.

Для этого я использовал управляющий (master node, далее мастер) и подчиненный рабочий (worker node, далее воркер) узлы. Оба работают под управлением Ubuntu 18.04.4. Задача была очень простой. Установить медиаплеер VLC на наш рабочий узел, а затем удалить его.


Для начала у нам нужно установить Ansible на мастера и воркера(-ов). Для установки просто используйте:

sudo apt install ansible

Затем нам нужно поделиться публичным ключом нашего мастера с воркером. Мы создаем ssh-ключ из мастера и передаем его воркерам.

ssh-keygen -t rsa -N  -f /home/ubuntu/.ssh/idrsa

Затем запустите cat и скопируйте содержимое cat .ssh/idrsa.pub

Перейдите в терминал воркера и vim ~/.ssh/authorized_keys вставьте содержимое вниз этого файла, сохраните и выйдите. Этот шаг объяснен здесь.

Проверьте подключение, из мастера попробуйте:

ssh -i ~/.ssh/id_rsa username@instance_ip

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

Затем давайте добавим наших воркеров в ansible. На мастере откройте файл /etc/ansible/hosts и добавьте в него группу. Я назвал ее [workers]. Теперь, когда вы указываете workers в своем playbook, ansible знает, какие хосты использовать при запуске playbook.

[workers]

[workers]node_ip_address

Сохранитесь, а затем мы попробуем проверить связь с нашими воркерами: ansible workers -m ping

Это должно вернуть результат, аналогичный следующему с SUCCESS и pong

| SUCCESS => {    "changed": false,     "ping": "pong"}

Если вы получите что-то еще, вам следует перепроверить все свои настройки. До сих пор мы не меняли никаких настроек по умолчанию в AWS-EC2 или Ansible. Теперь мы готовы к установке VLC.


Установка пакета с помощью Playbook

Для работы с пакетами Ansible использует playbook. Он написан на yaml и имеет достаточно прямолинейную структуру. Вы можете узнать больше о playbooks из официального руководства ansible.

Это наш новый playbook для установки vlc: installvlc.yaml

---  - name: installvlc      # имя playbook    hosts: workers        # куда нужно устанавливать    become: true          # запускать как sudo user   tasks:      - name: Install VLC Media Player        apt:                            # управление пакетами          name: vlc-bin          state: latest                # если вам нужна конкретная версия, вы можете указать это в state: 3.0.0

Если playbook успешно запустился, просто используйте

ansible-playbook installvlc.yaml

Если все работает правильно, вы увидите что-то вроде этого:

PLAY [installvlc] *********************************************************************************************************************TASK [Gathering Facts] ****************************************************************************************************************ok: []TASK [Install VLC Media Player] *******************************************************************************************************changed: []PLAY RECAP **************************************************************************************************************************** : ok=2    changed=1    unreachable=0    failed=0

changed=1 здесь означает, что playbook внес изменения в воркера. Если мы снова запустим playbook, вы увидите changed=0. Это означает, что изменения состояния (state) не происходило.

Из воркера: когда вы введете vlc в терминале, он должен вернуть вам что-то вроде VLC media player 3.0.8 Vetinari (revision 3.0.80-gf350b6b5a7).

Удаление пакета с помощью Playbook

Чтобы удалить пакет, нам просто нужно использовать тот же синтаксис, что и в инструкции по установке, за исключением:

state: absent

Создайте новый playbook и убедитесь, что его state изменен. Также у задачи должно быть информативное имя, чтобы вы могли различать задачи. Запускайте этот playbook как ansible-playbook uninstallvlc.yaml

Заключение

Ansible - отличный инструмент для решения задач автоматизации. Нам не нужно самому идти и вносить изменения во все узлы, просто измените yaml файл и запустите playbook. Это базовые задачи, но ansible можно использовать для настройки маршрутизаторов, устройств IoT и многого другого.

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


Бесплатный Demo-урок по теме: "Повышаем надежность развертывания в Kubernetes"


Источник: habr.com
К списку статей
Опубликовано: 31.10.2020 02:23:47
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании otus. онлайн-образование

Devops

Kubernetes

Aws

Ansible

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru