[DevOps, Kubernetes] Ansible с AWS и EC2 (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
31-Окт-2020 04:30

Перевод статьи подготовлен в преддверии старта курса "Инфраструктурная платформа на основе Kubernetes".
Предлагаю вам засучить рукава и погрузиться в задачи Ansible с использованием AWS EC2. Мы рассмотрим, как установить и удалить пакет с помощью Ansible.Несколько месяцев назад мне довелось поработать с RnD задачами в VizuaMatixc использованием 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.8–0-gf350b6b5a7).Удаление пакета с помощью PlaybookЧтобы удалить пакет, нам просто нужно использовать тот же синтаксис, что и в инструкции по установке, за исключением:
state: absent
Создайте новый playbook и убедитесь, что его state изменен. Также у задачи должно быть информативное имя, чтобы вы могли различать задачи. Запускайте этот playbook как ansible-playbook uninstallvlc.yamlЗаключениеAnsible - отличный инструмент для решения задач автоматизации. Нам не нужно самому идти и вносить изменения во все узлы, просто измените yaml файл и запустите playbook. Это базовые задачи, но ansible можно использовать для настройки маршрутизаторов, устройств IoT и многого другого.Здесь я показывал, как установить и удалить пакет с помощью ansible. В следующих руководствах мы займемся вещами посложнее, такими как добавление патчей, изменение конфигураций и т. д.Бесплатный Demo-урок по теме: "Повышаем надежность развертывания в Kubernetes"
===========
Источник:
habr.com
===========

===========
Автор оригинала: Sachith Muhandiram
===========
Похожие новости: Теги для поиска: #_devops, #_kubernetes, #_aws, #_devops, #_kubernetes, #_ansible, #_blog_kompanii_otus._onlajnobrazovanie (
Блог компании OTUS. Онлайн-образование
)
, #_devops, #_kubernetes
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 13:21
Часовой пояс: UTC + 5