Добро пожаловать в резюме, сериал, где я суммирую концепцию или инструмент для вас, чтобы вы могли понять своих коллег, когда они говорят об этом. В этом посте я охватываю Anbible: гладкий, мощный и универсальный инструмент автоматизации.
Аслыжные сияния самые яркие в двух полях. Первый это Управление конфигурацией , что является идеей сохранения конфигурации между кластером вычислительных устройств, согласующихся и предсказуемых. Другой — Автоматическое развертывание , который является процессом автоматически и постоянно развертывания программного обеспечения на целевую машину или машины, обычно для тестирования или демонстраций. Ваша идея Anisible не должна быть ограничена этими полями, однако, поскольку она способна намного больше.
Для управления любому количеству узлов (вычислительных устройств), Anisible требует основного узла. Узел Master — это машина, которая имеет доступ ко всем другим узлам, и она находится в том случае, если они проживают.
Главный узел должен быть запущен Linux; Однако дочерние узлы могут работать либо Windows или Linux. Помимо установки Anbible на главный узел, дочерние узлы должны иметь SSH и любую недавнюю версию Python. SSH — это механизм, который аналимый мастер использует для удаленного доступа дочерних узлов, в то время как Python — это то, что он используется для выполнения любых задач. Из-за использования обоих этих инструментов, неизбежный это агентом Значит, на дочерние узлы не требуется дополнительное несемоное программное обеспечение.
Несмысленные не волшебные и не знают, что являются его дочерними узлами, пока вы не настроите его самостоятельно. Файл инвентаризации — это то, что Anisible позволяет вам установить их. Это существует в /etc/ansible/hosts
и принимает либо форматы IILI или YAML. Вот пример того, что можно выглядеть (YAML):
all: children: devgroup: hosts: 10.0.0.133: 10.0.0.209: 10.0.0.103: demogroup: hosts: 10.0.0.182: 10.0.0.114: 10.0.0.235:
Существует корневой уровень «все» группа, которая может иметь любое количество дочерних групп. Дочерние группы также могут рекурсивно иметь детей и могут поделиться узлами. Инвентарь обеспечивает высокий уровень контроля и организации для вашей инфраструктуры, что большинство мелкомасштабных сред, возможно, никогда не понадобится, но, тем не менее, доступна.
При попытке выполнить любую задачу в Anisible, вам нужно будет предоставить группу дочерних узлов, на которых вы хотели бы выполнить его. Важно отметить, что если вы неправильно настраиваете файл инвентаризации, сложно сказать, поскольку Anisible не очень просты с его сообщениями об этом. Убедитесь, что дважды проверьте ваше форматирование после редактирования!
Для любого хоста, перечисленного в вашем файле инвентаризации, Anisible ожидает, что вы уже настроили его. Как я уже упоминал ранее, каждый ребенок хозяина должен иметь SSH и Python. Кроме того, SSH-доступ к ребенку от мастера должен быть без паролем через такой инструмент, как ssh-copy-id
. Если вы сможете вручную получить доступ к целевой машине с SSH без пароля, так что может быть ошибочным.
Anisible предназначен для того, чтобы быть легкими для новичков, так и для профессионалов для использования и для достижения этого, модули создали модули Ansible Team. Модули находятся в ядре Anbible и являются основным строительным блоком для любого действия. Они являются заранее определенными функциональными возможностями для практически любой задачи автоматизации, которые вы можете понять. Есть модули для сети, криптографии, баз данных, файлов и тонна. Есть много, и для меня было бы более чем непрактично перечислять их все здесь. Если вы хотите увидеть список всех модулей, предоставленных Anisible, нажмите эта ссылка Отказ
Модули предназначены для idempotent когда возможно. Это означает, что если вы запустите один и тот же модуль несколько раз подряд, модуль выполнит работу только один раз. Например, если вы попытаетесь перенести файл, который уже существует на цели, ничего не произойдет. Эта философия экономит неизбежным, и позволяет вам быть более либеральными с точки зрения того, какие модули вы запускаете. Если вы хотите перенести файл в группу узлов, в которых некоторые уже содержат его, это не повредит модуль, чтобы убедиться; Anisible будет выполнять только задачу для узлов, которые не.
Для небольших задач, таких как отправка файла или перезапуская служба по группе узлов, можно запустить модули в изоляции. Для этого вы можете запустить Anbible
Сама команда, указывая группу инвентаризации, имя пользователя на машинах (она должна быть передана среди них всех), а модуль для запуска. Например, «Hello World» Anisible состоит в том, чтобы пинг каждый узел дочернего ребенка, чтобы гарантировать, что мастер может связаться с ними с Anbible All -u Имя пользователя -M Ping
Отказ Однако в большинстве ситуаций модули должны работать в группах.
В типичной среде, когда несколько модулей должны работать подряд для достижения более значительной общей задачи, PlayBooks может быть использован. Обязательные требуют, чтобы пользователи пишут плейбов в yaml, и файл можно хранить в любом месте. PlayBook должна содержать целевую группу из файла Anisible Advantry, имя пользователя для использования для всех машин, и последовательный список модулей для запуска, называемого списком задач. Вот пример PlayBook для установки пакетов «TMUX» и «NEOVIM» с доп
:
--- - hosts: demogroup remote_user: username tasks: - name: Ensure tmux is installed apt: name: tmux state: present - name: Ensure neovim is installed apt: name: neovim state: present
Anisibile обнаруживает много информации о целевых узлах, включая какую операционную систему, которую они работают, и даже какой INTROUX IDRO он имеет, если это машина Linux. Несмысленные хранилище этих значений в переменных, называемых «фактами», которые доступны в плейговых п.. Можно использовать эти переменные для запуска задач на узлах, которые требуют разных инструментов избирательно. Например, можно использовать APT
Для Debian Systems и ДНФ
/ ням
для систем Redhat.
Ansible-Playbook
Команда доступна для запуска Anisible PlayBook. Playbook выполняется бегом Ansible-playbook x
, где Х
это путь Playbook для запуска.
Роли — это способ последовательно группировать группу задач, которые многократно используются между несколькими игровыми книгами. Например, компилируйте программное обеспечение с нуля. Компиляция программного обеспечения требует нескольких шагов. Это требует передачи многих файлов на целевую машину, установку нескольких пакетов и нескольких других команд для выполнения их задач. Несколько не связанные игровые книги могут потребовать компиляционного программного обеспечения, и повторно написать задачи для каждого PlayBook будет неэффективным. Вместо этого задачи, специфичные для компиляции, могут быть разделены и импортированы каждым PlayBook, который требует их.
Роли требуют бетонной структуры файлов для работы, и они попадают в Advanced Anbible. Тем не менее, никто, который использует Anbible регулярно, также следует использовать роли.
Чтобы узнать неспособное, я бы предложил смотреть на Официальная документация , как это хорошо написано. «Начало работы» Руководство это отличное место для начала. Ниже приведены концепции, покрытые в этом посте, а также ссылки документации для них:
- Инвентарь: https://docs.ansable.com/ansable/latest/user_guide/intro_inventory.html#intro-inventory.
- Модули: https://docs.ansable.com/ansible/latest/modules/modules_by_category.html.
- Playbooks: https://docs.ansable.com/ansable/latest/user_guide/playbooks.html#working-with-playbooks.
- Роли: https://docs.ansable.com/ansible/latest/user_guide/playbooks_reuse_roles.html.
- Лучшие практики: : https://docs.ansable.com/ansible/latest/user_guide/playbooks_best_practices.html.
Оригинал: «https://dev.to/rburmorrison/theoretically-ansible-2hde»