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

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

Определение :

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

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

Давайте пересмотрим наше понимание темы, создав визуальное представление того, что мы уже обсуждали.

Руководство :

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

Первый шаг :

  • мы создадим три узла, используя Vagrant (первый узел будет основным узлом, а два других будут подчиненными узлами)
  • мы назначим каждому из них три уникальных IP-адреса (я проведу вас через процесс изменения Vagrantfile, чтобы назначить эти адреса нашим узлам)

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

Как вы можете видеть на скриншоте выше, мы создали три папки. Каждая папка будет содержать одну из наших виртуальных машин. Мы создадим наши виртуальные машины внутри этих папок с помощью Vagrant, а затем настроим их для совместной работы в рамках нашей установки Ansible.

Во-первых, давайте начнем с узла сервера. Откройте приглашение PowerShell в папке узла сервера и выполните команду «vagrant init centos/7». Эта команда создаст Vagrantfile в папке.

Откройте Vagrantfile и назначьте IP-адрес виртуальной машине.

После того, как вы назначили IP-адрес виртуальной машине в Vagrantfile, сохраните файл и выполните команду «vagrant up», чтобы запустить виртуальную машину.

Мы продублируем инструкции в папках Node1 и Node2, но с разными адресами. Поскольку мы выделили IP-адрес 192.168.0.100 серверу, мы назначим 192.168.0.101 и 192.168.0.102 другим узлам.

Одно действие, которое я хотел бы выполнить в настоящее время, — это использовать команду hostnamectl для установки имени наших локальных машин.

hostnamectl set-hostname server_absible  (in the server machine)
hostnamectl set-hostname node1 (in the Node1)
hostnamectl set-hostname node2 (in the Node2)

У нас будет вид, похожий на скриншот, представленный выше.

В настоящее время мы требуем, чтобы Ansible был установлен на сервере. Я перечислю все необходимые команды для установки

Шаг 1. Обновите свою систему

yum update

Шаг 2: Установите репозиторий EPEL

yum install epel-release

Шаг 3: Установите Ansible

yum install ansible

Наш следующий шаг — установить SSH-соединение с двумя другими машинами. Поэтому наш следующий шаг — выполнить эти команды внутри Node1 и Node2.

vi /etc/ssh/ssh_config

Удалите комментарий из этой строки и установите значение no , измените его на yes .

Нам нужно перезапустить службу sshd :

service sshd restart 

Наш следующий шаг — изменить пароли root для Node1 и Node2, чтобы избежать проблем, с которыми мы можем столкнуться при подключении к этим машинам через SSH с серверной машины. пароли будут «client1» и «client2»

для достижения этой задачи:

passwd root 

В настоящее время нам нужно сгенерировать SSH-ключ на сервере:

ssh-keygen

Мы должны внедрить открытый ключ в Node1 и Node2. Для этого запустите эту команду на сервере:

ssh-copy-id [email protected]
ssh-copy-id [email protected]

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

ssh root@ip_machine 

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

Мы создадим группу компьютеров на сервере, определив их в файле, расположенном по адресу /etc/ansible/hosts.

Определив нашу группу машин в /etc/ansible/hosts, давайте приступим к запуску Ansible ping для группы с помощью следующей команды:

ansible -m ping 'test-servers' 

После выполнения результирующий вывод будет:

Заключение :

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