Недавно мы работали над проектом, который использует NEO4J для хранения и обработки данных больших графиков для нашего клиента. Нашему клиенту было предложено решение запуска, установки и настройки NEO4J Одиночный узел (Для среды разработки и Высокая доступность NEO4J Cluster (для производственной среды). Наша команда выбрала Ansible Чтобы реализовать это требование, если вы хотите знать, почему мы выбрали Ansible , Проверьте Эта статья Больше подробностей. Если вы хотели знать, почему мы выбрали Ansible , Проверьте Эта статья Анкет
Прежде чем начать работу, я просто хотел дать вам заметку, что есть пара вариантов для развертывания Neo4j на AWS , так что вы можете взглянуть, прежде чем искать детали или выбрать лучший вариант, который работает для вас:
- NEO4J Community Marketplace , простые в запуске экземпляров и настраивают сеть, такие как VPCS, Storage.
- NEO4J Enterprise Causal Cluster , которые развертывают многоязкие причинные кластеры.
В этой статье представлена пошаговая гильдия о том, как запустить, установить и настраивать кластер NEO4J высокой доступности (он же кластер HA) с использованием Ansible на AWS. Мы используем AWS Для демонстрации, но вы можете настраивать воспроизведения и конфигурации для других облачных поставщиков, таких как Google Cloud В Azure Анкет
До- реквизиты
Чтобы использовать этот Ansible Playbook на AWS, необходимо следующее:
- А AWS Учетная запись с ключом доступа пользователя и секретным ключом.
- Политика IAM, прикрепленная к вышеуказанному пользователю, которая позволяет запускать новые экземпляры EC2, авторизуйте порты в группах безопасности.
- Ключевой пары EC2, чтобы позволить экземпляру EC2 EC2.
- git установлен на вашей машине
Шаги
Для развертывания NEO4J, что мы собираемся построить, — это следующий поток развертывания:
- Настройка групп безопасности и авторизовать общение портов
- Запустить экземпляры EC2 — необязательно
- Обновление ОС
- Установить Neo4j Enterprise на экземпляры EC2 (ы)
- Установить 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:
- Развернуть Single NEO4J на AWS с использованием ANSIBLE
- Развернуть кластер HA neo4j на AWS с помощью Ansible
Если у вас есть какие -либо проблемы при практике этой инструкции, не стесняйтесь сообщить нам об этом, предоставив нам наши комментарии.
Посетите наш блог Для более интересных статей. Если у вас есть какие -либо вопросы или нужна помощь, вы можете связаться со мной через Twitter Анкет
Меня зовут Хол , Я Соучредитель и технический директор из Innomizetech . Мой название CTO Но я Разработчик с полным стеком и архитектор программного обеспечения , увлечен Облачные вычисления В Серверный , DevOps , Машинное обучение и IoT Анкет
Если вы ищете разработчиков, оффшорную команду или нуждаетесь в консультациях о облаке AWS, без серверной архитектуры и т. Д., Тогда нанять нас , Мы можем помочь тебе!
Спасибо, что прочитали мою статью.
Оригинал: «https://dev.to/innomize/quickly-installing-and-running-neo4j-using-ansible-on-aws-cloud-3fhc»