Рубрики
Uncategorized

Быстрая установка и запуск neo4j с помощью Ansible на AWS Cloud

Недавно мы работали над проектом, который использует NEO4J для хранения и обработки данных больших графиков для нашего … с меткой Ansible, DevOps, AWS, базой данных.

Недавно мы работали над проектом, который использует NEO4J для хранения и обработки данных больших графиков для нашего клиента. Нашему клиенту было предложено решение запуска, установки и настройки NEO4J Одиночный узел (Для среды разработки и Высокая доступность NEO4J Cluster (для производственной среды). Наша команда выбрала Ansible Чтобы реализовать это требование, если вы хотите знать, почему мы выбрали Ansible , Проверьте Эта статья Больше подробностей. Если вы хотели знать, почему мы выбрали Ansible , Проверьте Эта статья Анкет

Прежде чем начать работу, я просто хотел дать вам заметку, что есть пара вариантов для развертывания Neo4j на AWS , так что вы можете взглянуть, прежде чем искать детали или выбрать лучший вариант, который работает для вас:

В этой статье представлена пошаговая гильдия о том, как запустить, установить и настраивать кластер NEO4J высокой доступности (он же кластер HA) с использованием Ansible на AWS. Мы используем AWS Для демонстрации, но вы можете настраивать воспроизведения и конфигурации для других облачных поставщиков, таких как Google Cloud В Azure Анкет

До- реквизиты

Чтобы использовать этот Ansible Playbook на AWS, необходимо следующее:

  • А AWS Учетная запись с ключом доступа пользователя и секретным ключом.
  • Политика IAM, прикрепленная к вышеуказанному пользователю, которая позволяет запускать новые экземпляры EC2, авторизуйте порты в группах безопасности.
  • Ключевой пары EC2, чтобы позволить экземпляру EC2 EC2.
  • git установлен на вашей машине

Шаги

Для развертывания NEO4J, что мы собираемся построить, — это следующий поток развертывания:

  1. Настройка групп безопасности и авторизовать общение портов
  2. Запустить экземпляры EC2 — необязательно
  3. Обновление ОС
  4. Установить Neo4j Enterprise на экземпляры EC2 (ы)
  5. Установить Haproxy и настройка кластера HA на экземпляре EC2 — требуется только для кластера HA

Начиная

Перед развертыванием необходимо создать группу безопасности, которую будет использовать кластер/экземпляр NEO4J. Фактически, вы можете создавать несколько групп безопасности для различных целей, таких как SSH, разрешить NEO4J связь между друг другу. Но чтобы упростить процесс, мы будем использовать одну группу безопасности, которые разрешают следующие порты:

  • 22 (SSH)
  • Neo4j Порты перечислены на этом страница
  • 8000 — HA Admin Port для развертывания кластера HA

Войти в Управление консоли AWS Портал и создайте группу безопасности и откройте вышеуказанные порты, как на скриншоте ниже:

Структура проекта

Четко определенное Структура проекта поможет нам легко понять каждую часть решения, разрешить повторное использование и настраиваться. Если у вас есть опыт работы с Ansible, вы должны знать, как организовать Ansible Project. Я следил за альтернативным подходом, упомянутым в это Статья, не стесняйтесь выбирать свой собственный подход.

Ansible Project Structure

Приведенная выше структура проекта содержит следующее:

  • Расширение/Настройка : содержать сценарии для установки Ansible и обязательно Python Packages
  • Инвентаризация/[env] : Определите все переменные для пьес, которые позволяют нам пользователь для каждой среды
  • Роли: Предопределенные и многоразовые роли для наших пьес. В этом решении мы используем следующие роли:

    • общий : Общая роль для установки общего пакета или обновления последней версии ОС.
    • Хапрокс : Роль для установки и настройки HAPROXY.
    • Запуск-EC2 : Роль для запуска экземпляров EC2 в нескольких AZ.
    • neo4j : Установите и настройте NEO4J на один экземпляр.
  • Шаблоны: Файлы шаблонов для настройки экземпляров NEO4J, а также Файлы конфигурации HAPROXY
  • Есть две основные пьесы:
    • neo4j.single.yml: Playbook для запуска и установки одного узла NEO4J.
    • neo4j.cluster.yml: Playbook для запуска и установки кластера Ha neo4j.

Подготовка

Шаг 1 — Клон/Загрузите исходный код из GitHub, используя git

clone https://github.com/innomizetech/neo4j-ansible.git

Изменить каталог в недавно созданный каталог

cd neo4j-ansible

Шаг 2 — Установите Ansible и необходимые пакеты Python

chmod +x extension/setup/setup.sh
./extension/setup/setup.sh

Шаг 3 — расшифровка Ansible Vault файл

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

Запустить ниже команду, чтобы расшифровать Vault.yml Файл в каталоге инвентаризации:

ansible-vault decrypt inventories/dev/group_vars/vault.yml --vault-password-file ansible-vault.pass

Шаг 4 — Обновление файла vault.yml

---
# Sensitive variables here are applicable to deploy application

aws_access_key: <>
aws_secret_key: <>

# The security group id to be attached to new instance
security_group: <>
# An Amazone Linux image
image: <>
# The first subnet to launch instance, it should be public subnet if you allowed public access
vpc_az1_subnet_id: <>
# The second subnet to launch instance, it should be public subnet if you allowed public access
vpc_az2_subnet_id: <>

# Set initial password for Neo instances
initial_password: <>

# HAProxy configuration (requires for cluster mode with HAProxy)
stats_user: <>
stats_pass: <>

Развернуть один узел NEO4J

Шаг 1 — Обновление групп переменных

Просмотреть и обновлять переменные в Инвентаризация \ dev \ Group_vars \ neo4j-single.yml Файл ниже приведен несколько важных переменных:

  • регион : регион AWS для запуска и развертывания NEO4J
  • клавиатура : Существующая ключевая пара в вышеупомянутом регионе
  • Другие переменные : Не стесняйтесь обновлять в соответствии с вашим требованием

Шаг 2- запустите Ansible Playbook

Запустить ниже команду, чтобы развернуть один экземпляр NEO4J для Dev Окружающая среда. Заменить Dev на любой существующий инвентарь в запасы каталог (то есть постановка, Prod)

ansible-playbook neo4j.single.yml -e env=dev --vault-password-file ansible-vault.pass

#  or we can use -b -K to enter SUDO password (sudo su)
ansible-playbook neo4j.single.yml -e env=dev --vault-password-file ansible-vault.pass -b -K

Подождите, пока команда не закончится, и получить доступ к браузере Neo4j по адресу http://public-ip: 7474

Развернуть кластер HA neo4j

Выполнить те же шаги выше с

  • neo4j-cluster.yml Групповые переменные файл
  • neo4j.single.yml Ansible Playbook

Проверьте результат каждого случая, посмотрев эти видео на нашем канале YouTube:

Если у вас есть какие -либо проблемы при практике этой инструкции, не стесняйтесь сообщить нам об этом, предоставив нам наши комментарии.

Посетите наш блог Для более интересных статей. Если у вас есть какие -либо вопросы или нужна помощь, вы можете связаться со мной через Twitter Анкет

Меня зовут Хол , Я Соучредитель и технический директор из Innomizetech . Мой название CTO Но я Разработчик с полным стеком и архитектор программного обеспечения , увлечен Облачные вычисления В Серверный , DevOps , Машинное обучение и IoT Анкет

Если вы ищете разработчиков, оффшорную команду или нуждаетесь в консультациях о облаке AWS, без серверной архитектуры и т. Д., Тогда нанять нас , Мы можем помочь тебе!

Спасибо, что прочитали мою статью.

Оригинал: «https://dev.to/innomize/quickly-installing-and-running-neo4j-using-ansible-on-aws-cloud-3fhc»